Utilizzare gli schemi gs-ac-schemas
La struttura fisica e logica dei dati trasferiti nell’applicazione è descritta in XML. Rispetta una grammatica specifica di Adobe Campaign, denominata schema.
Uno schema è un documento XML associato a una tabella di database. Definisce la struttura dati e descrive la definizione SQL della tabella:
- Nome della tabella
- Campi
- Collegamenti con altre tabelle
Descrive inoltre la struttura XML utilizzata per memorizzare i dati:
- Elementi e attributi
- Gerarchia di elementi
- Tipi di elementi e attributi
- Valori predefiniti
- Etichette, descrizioni e altre proprietà
Gli schemi consentono di definire un’entità nel database. Esiste uno schema per ogni entità.
Adobe Campaign utilizza gli schemi di dati per:
- Definire il modo in cui l'oggetto dati all'interno dell'applicazione viene associato alle tabelle di database sottostanti.
- Definire i collegamenti tra i diversi oggetti dati all’interno dell’applicazione Campaign.
- Definire e descrivere i singoli campi inclusi in ciascun oggetto.
Per informazioni sulle tabelle integrate di Campaign e sulla loro interazione, consulta questa sezione.
Sintassi degli schemi syntax-of-schemas
L'elemento radice dello schema è <srcschema>
. Contiene i sottoelementi <element>
e <attribute>
.
Il primo sottoelemento <element>
coincide con la radice dell'entità.
<srcSchema name="recipient" namespace="cus">
<element name="recipient">
<attribute name="lastName"/>
<attribute name="email"/>
<element name="location">
<attribute name="city"/>
</element>
</element>
</srcSchema>
I tag <element>
definiscono i nomi degli elementi di entità. <attribute>
tag dello schema definiscono i nomi degli attributi nei tag <element>
a cui sono stati collegati.
Identificazione di uno schema identification-of-a-schema
Uno schema di dati è identificato dal nome e dallo spazio dei nomi.
Uno spazio dei nomi consente di raggruppare un set di schemi per area di interesse. Ad esempio, lo spazio dei nomi cus viene utilizzato per la configurazione specifica del cliente (clienti).
Spazi dei nomi riservati reserved-namespaces
Alcuni spazi dei nomi sono riservati alle descrizioni delle entità di sistema necessarie per il funzionamento dell’applicazione Adobe Campaign. Il seguente spazio dei nomi non deve essere utilizzato per identificare un nuovo schema, in qualsiasi combinazione maiuscola/minuscola:
- xxl: riservato agli schemi di database Cloud
- xtk: riservato ai dati di sistema della piattaforma
- nl: riservato all'utilizzo generale dell'applicazione
- nms: riservato alle consegne (destinatario, consegna, tracciamento, ecc.)
- ncm: riservato alla gestione dei contenuti
- temp: riservato a schemi temporanei
- crm: riservato all'integrazione dei connettori CRM
La chiave di identificazione di uno schema è una stringa creata utilizzando lo spazio dei nomi e il nome separato da due punti, ad esempio: nms:recipient.
Creare o estendere gli schemi di Campaign create-or-extend-schemas
Per aggiungere un campo o un altro elemento a uno degli schemi di dati di base in Campaign, ad esempio la tabella dei destinatari (nms:recipient), devi estendere tale schema.
Per ulteriori informazioni, consulta Estendere uno schema.
Per aggiungere un tipo di dati completamente nuovo che non esiste in Adobe Campaign (ad esempio, una tabella di contratti) puoi creare direttamente uno schema personalizzato.
Per ulteriori informazioni, consulta Creare un nuovo schema.
Dopo aver creato o esteso uno schema in cui lavorare, la best practice consiste nel definire gli elementi di contenuto XML nello stesso ordine in cui vengono visualizzati di seguito.
Enumerazioni enumerations
Le enumerazioni vengono definite prima, prima dell’elemento principale dello schema. Consentono di visualizzare i valori in un elenco per limitare le scelte dell’utente per un determinato campo.
Esempio:
<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>
Quando definisci i campi, puoi quindi utilizzare questa enumerazione nel modo seguente:
<attribute desc="Type of Transaction" label="Transaction Type" name="transactionType"
type="string" enum="exTransactionTypeEnum"/>
Chiavi keys
Ogni tabella deve avere almeno una chiave e spesso viene stabilita automaticamente nell'elemento principale dello schema utilizzando l'attributo autopk impostato su true.
Inoltre, nel contesto di una distribuzione Enterprise (FFDA), utilizzare @autouuid e impostarlo su true.
La chiave primaria può essere definita anche utilizzando l'attributo internal.
Esempio:
<key name="householdId" internal="true">
<keyfield xpath="@householdId"/>
</key>
In questo esempio, invece di consentire all'attributo @autopk o @autouuid di creare una chiave primaria predefinita denominata "id", si sta specificando la propria chiave primaria "familyId".
Ulteriori informazioni sulle chiavi in questa sezione.
Attributi (Campi) attributes--fields-
Gli attributi consentono di definire i campi che compongono l’oggetto dati. È possibile utilizzare il pulsante Insert nella barra degli strumenti dell'edizione dello schema per rilasciare modelli di attributi vuoti nel file XML in cui si trova il cursore. Per ulteriori informazioni, consulta questa sezione.
L'elenco completo degli attributi è disponibile nella sezione dell'elemento <attribute>
della documentazione di Campaign Classic v7. Di seguito sono riportati alcuni degli attributi più comunemente utilizzati: @advanced, @dataPolicy, @default, @desc, @enum, @expr, @label, @length, @name, @notNull, @required, @ref, @xml, @type.
Per ulteriori informazioni su ciascun attributo, consulta la descrizione dell'attributo nella documentazione di Campaign Classic v7.
Esempi examples
Esempio di definizione di un valore predefinito:
<attribute name="transactionDate" label="Transaction Date" type="datetime" default="GetDate()"/>
Esempio di utilizzo di un attributo comune come modello per un campo contrassegnato come obbligatorio:
<attribute name="mobile" label="Mobile" template="nms:common:phone" required="true" />
Esempio di un campo calcolato nascosto utilizzando l'attributo @advanced:
<attribute name="domain" label="Email domain" desc="Domain of recipient email address" expr="GetEmailDomain([@email])" advanced="true" />
Esempio di un campo XML memorizzato anche in un campo SQL e con un attributo @dataPolicy.
<attribute name="secondaryEmail" label="Secondary email address" length="100" xml="true" sql="true" dataPolicy="email" />
Un campo XML viene memorizzato in un campo Memo ("mData") della tabella.
Un campo calcolato, tuttavia, viene creato in modo dinamico ogni volta che viene avviata una query, pertanto esiste solo nel livello applicativo.
Collegamenti links
I collegamenti sono alcuni degli ultimi elementi nell’elemento principale dello schema. Definiscono il modo in cui tutti i diversi schemi nella tua istanza si relazionano tra loro.
I collegamenti sono dichiarati nello schema che contiene la chiave esterna della tabella a cui è collegato.
Esistono tre tipi di cardinalità: 1-1, 1-N e N-N. È il tipo 1-N utilizzato per impostazione predefinita.
Esempi examples-1
Un esempio di collegamento 1-N tra la tabella dei destinatari (schema predefinito) e una tabella di transazioni personalizzate:
<element label="Recipient" name="lnkRecipient" revLink="lnkTransactions" target="nms:recipient" type="link"/>
Un esempio di collegamento 1-1 tra uno schema personalizzato "Car" (nello spazio dei nomi "cus") e la tabella dei destinatari:
<element label="Car" name="lnkCar" revCardinality="single" revLink="recipient" target="cus:car" type="link"/>
Esempio di join esterno tra la tabella dei destinatari e una tabella di indirizzi basata sull'indirizzo e-mail e non su una chiave primaria:
<element name="emailInfo" label="Email Info" revLink="recipient" target="nms:address" type="link" externalJoin="true">
<join xpath-dst="@address" xpath-src="@email"/>
</element>
Qui "xpath-dst" corrisponde alla chiave primaria nello schema di destinazione e "xpath-src" corrisponde alla chiave esterna nello schema di origine.
Audit trail audit-trail
Un elemento utile che puoi includere nella parte inferiore dello schema è un elemento di tracciamento (Audit trail).
Utilizza l’esempio seguente per includere nella tabella campi relativi alla data di creazione, all’utente che ha creato i dati, alla data e all’autore dell’ultima modifica per tutti i dati:
<element aggregate="xtk:common:auditTrail" name="auditTrail"/>
Aggiornamento della struttura del database updating-the-database-structure
Una volta completate e salvate le modifiche, è necessario applicare al database tutte le modifiche che possono influire sulla struttura SQL. A tale scopo, utilizzare l'Assistente all'aggiornamento del database.
Per ulteriori informazioni al riguardo, consulta questa sezione.