Arbeta med scheman gs-ac-schemas
Den fysiska och logiska strukturen hos de data som medföljer programmet beskrivs i XML. Den lyder under en grammatik som är specifik för Adobe Campaign och som kallas schema.
Ett schema är ett XML-dokument som är associerat med en databastabell. Den definierar datastrukturen och beskriver tabellens SQL-definition:
- Tabellens namn
- Fält
- Länkar till andra tabeller
Här beskrivs också XML-strukturen som används för att lagra data:
- Element och attribut
- Elementhierarki
- Element- och attributtyper
- Standardvärden
- Etiketter, beskrivningar och andra egenskaper.
Med scheman kan du definiera en enhet i databasen. Det finns ett schema för varje entitet.
Adobe Campaign använder datascheman för att
- Definiera hur dataobjekt i programmet kopplas till underliggande databastabeller.
- Definiera länkar mellan olika dataobjekt i programmet Campaign.
- Definiera och beskriva de enskilda fälten som ingår i varje objekt.
Mer information om inbyggda tabeller i Campaign och hur de fungerar finns i det här avsnittet.
Syntax för scheman syntax-of-schemas
Schemats rotelement är <srcschema>
. Den innehåller underelementen <element>
och <attribute>
.
Det första <element>
-underelementet sammanfaller med entitetens rot.
<srcSchema name="recipient" namespace="cus">
<element name="recipient">
<attribute name="lastName"/>
<attribute name="email"/>
<element name="location">
<attribute name="city"/>
</element>
</element>
</srcSchema>
<element>
-taggarna definierar namnen på entitetselementen. <attribute>
taggar i schemat definierar namnen på attributen i <element>
-taggarna som de har länkats till.
Identifiering av ett schema identification-of-a-schema
Ett dataschema identifieras med sitt namn och namnutrymme.
Med ett namnutrymme kan du gruppera en uppsättning scheman efter intresseområde. Namnområdet cus används till exempel för kundspecifik konfiguration (kunder).
Reserverade namnutrymmen reserved-namespaces
Vissa namnutrymmen är reserverade för beskrivningar av de systemenheter som krävs för att Adobe Campaign-programmet ska fungera. Följande namnrymd får inte användas för att identifiera ett nytt schema, i kombinationer med versaler och gemener:
- xxl: reserverad för Cloud-databasscheman
- xtk: reserverad för plattformssystemdata
- nl: reserverad för programmets övergripande användning
- nms: reserverad för leveranser (mottagare, leverans, spårning osv.)
- ncm: reserverad för innehållshantering
- temp: reserverad för temporära scheman
- crm: reserverad för integrering av CRM-anslutningar
Identifieringsnyckeln för ett schema är en sträng som skapats med namnutrymmet och namnet avgränsat med ett kolon, till exempel: nms:mottagare.
Skapa eller utöka kampanjscheman create-or-extend-schemas
Om du vill lägga till ett fält eller något annat element i ett av de centrala dataroderna i Campaign, t.ex. mottagartabellen (nms:mottagare), måste du utöka det schemat.
Mer information finns i Utöka ett schema.
Om du vill lägga till en helt ny typ av data som inte finns i Adobe Campaign (till exempel en kontraktstabell) kan du skapa ett anpassat schema direkt.
Mer information finns i Skapa ett nytt schema.
När du har skapat eller utökat ett schema som ska fungera i är det bästa sättet att definiera elementen för XML-innehållet i samma ordning som de visas nedan.
Uppräkningar enumerations
Uppräkningar definieras först, före huvudelementet i schemat. De gör att du kan visa värden i en lista för att begränsa vilka val användaren har för ett visst fält.
Exempel:
<enumeration basetype="byte" name="exTransactionTypeEnum" default="store">
<value label="Website" name="web" value="0"/>
<value label="Call Center" name="phone" value="1"/>
<value label="In Store" name="store" value="2"/>
</enumeration>
När du definierar fält kan du sedan använda den här uppräkningen så här:
<attribute desc="Type of Transaction" label="Transaction Type" name="transactionType"
type="string" enum="exTransactionTypeEnum"/>
Tangenter keys
Alla tabeller måste ha minst en nyckel och upprättas ofta automatiskt i schemats huvudelement med attributet autopk inställt på true.
I kontexten för en Enterprise-distribution använder du @autouid och anger true.
Primärnyckeln kan också definieras med attributet internal.
Exempel:
<key name="householdId" internal="true">
<keyfield xpath="@householdId"/>
</key>
I det här exemplet, i stället för att låta attributet @autopk eller @autouid skapa en standardprimärnyckel med namnet"id", anger vi vår egen primärnyckel för"houseId".
Läs mer om nycklar i det här avsnittet.
Attribut (fält) attributes--fields-
Med attribut kan du definiera fälten som utgör dataobjektet. Du kan använda knappen Insert i verktygsfältet för schemaversionen för att släppa tomma attributmallar i XML-filen där markören finns. Läs mer i det här avsnittet.
Den fullständiga listan med attribut finns i elementavsnittet <attribute>
i Campaign Classic v7-dokumentationen. Här är några av de vanligaste attributen: @advanced, @dataPolicy, @default, @desc, @enum, @expr, @label, @length, 16}@name, @notNull, @required, @ref, @xml, @type.
Mer information om de olika attributen finns i attributbeskrivningen i Campaign Classic v7-dokumentationen.
Exempel examples
Exempel på hur du definierar ett standardvärde:
<attribute name="transactionDate" label="Transaction Date" type="datetime" default="GetDate()"/>
Exempel på hur du använder ett gemensamt attribut som mall för ett fält som också är markerat som obligatoriskt:
<attribute name="mobile" label="Mobile" template="nms:common:phone" required="true" />
Exempel på ett beräknat fält som är dolt med attributet @advanced:
<attribute name="domain" label="Email domain" desc="Domain of recipient email address" expr="GetEmailDomain([@email])" advanced="true" />
Exempel på ett XML-fält som också lagras i ett SQL-fält och som har ett @dataPolicy -attribut.
<attribute name="secondaryEmail" label="Secondary email address" length="100" xml="true" sql="true" dataPolicy="email" />
Ett XML-fält sparas i ett PM-fält ("mData") i tabellen.
Ett beräknat fält skapas dock dynamiskt varje gång en fråga startas, och därför finns det bara i det aktuella lagret.
Länkar links
Länkar är några av de sista elementen i huvudelementet i schemat. De definierar hur alla olika scheman i din instans relaterar till varandra.
Länkarna deklareras i schemat som innehåller sekundärnyckeln för den tabell som den är länkad till.
Det finns tre typer av kardinalitet: 1-1, 1-N och N-N. Det är typen 1-N som används som standard.
Exempel examples-1
Ett exempel på en 1-N-länk mellan mottagartabellen (ett schema som inte är installerat) och en tabell med anpassade transaktioner:
<element label="Recipient" name="lnkRecipient" revLink="lnkTransactions" target="nms:recipient" type="link"/>
Ett exempel på en 1-1-länk mellan det anpassade schemat "Car" (i "cus"-namnutrymmet) och mottagartabellen:
<element label="Car" name="lnkCar" revCardinality="single" revLink="recipient" target="cus:car" type="link"/>
Exempel på en extern koppling mellan mottagartabellen och en adresstabell som baseras på e-postadressen och inte på en primärnyckel:
<element name="emailInfo" label="Email Info" revLink="recipient" target="nms:address" type="link" externalJoin="true">
<join xpath-dst="@address" xpath-src="@email"/>
</element>
Här motsvarar "xpath-dst" primärnyckeln i målschemat och "xpath-src" den externa nyckeln i källschemat.
Granskningskedja audit-trail
Ett användbart element som du kanske vill ta med längst ned i schemat är ett spårningselement (granskningsspår).
Använd exemplet nedan för att inkludera fält som relaterar till datumet då data skapades, användaren som skapade data, datumet och författaren till den senaste ändringen för alla data i tabellen:
<element aggregate="xtk:common:auditTrail" name="auditTrail"/>
Uppdatera databasstrukturen updating-the-database-structure
När ändringarna är klara och sparade måste alla ändringar som kan påverka SQL-strukturen tillämpas på databasen. Använd databasuppdateringsassistenten för att göra detta.
Mer information om detta finns i det här avsnittet.