[Applicabile anche a v8]{class="badge positive" title="Applicabile anche a Campaign v8"}
Arricchimento del contenuto enriching-content
Gli aggregatori consentono di arricchire il contenuto con dati esterni. Questi dati provengono da query generiche o tabelle collegate.
Query generiche generic-queries
Le query sono configurate tramite il modello di pubblicazione nella scheda Aggregator.
I dati recuperati arricchiscono il documento di output XML tramite il relativo elemento principale.
Esempio di ritorno da una query nello schema destinatario (nms:recipient):
<book name="Content Management">
...
<collection-recipient>
<recipient lastName="Doe" firstName="John" email="john.doe@aolf.com">
...
</collection-recipient>
</book>
L'elemento <collection-recipient>
rappresenta l'elemento di input del documento risultante da una query. I dati recuperati vengono restituiti sotto questo elemento; nel nostro esempio, un elenco di destinatari.
Aggiunta di una query adding-a-query
I parametri di query vengono modificati utilizzando un assistente.
-
Nella prima pagina, specifica l’etichetta e lo schema contenenti i dati da recuperare.
note note NOTE Il campo di modifica Percorso viene utilizzato per rinominare l'elemento di output della query. -
La pagina successiva consente di selezionare i dati da recuperare.
-
La pagina successiva definisce la condizione del filtro.
-
Nell’ultima pagina viene avviata un’anteprima dei dati restituiti dalla query.
Tabelle collegate linked-tables
I collegamenti ti consentono di recuperare dati esterni collegati al contenuto.
Esistono due tipi di dati collegati:
- Collegamenti ai contenuti: questa è la modalità di gestione dei contenuti nativi. Il contenuto del collegamento viene automaticamente integrato nel documento di output XML.
- I collegamenti a tabelle esterne consentono di accedere a tutte le altre tabelle del database con il vincolo di recuperare i dati del collegamento selezionato con un aggregatore.
Collegamento a uno schema di contenuto link-to-a-content-schema
Un collegamento di contenuto viene dichiarato nello schema dati come segue:
<element expandSchemaTarget="cus:chapter" label="Main chapter" name="mainChapter" type="string"/>
La definizione del collegamento è compilata su un <element>
di tipo string e l'attributo expandSchemaTarget fa riferimento allo schema di destinazione ("cus:chapter" nel nostro esempio). Lo schema a cui si fa riferimento deve essere uno schema di contenuto.
Il contenuto dell'elemento di destinazione arricchisce l'elemento link, ovvero l'elemento <chapter>
nello schema di esempio:
<mainChapter computeString="Introduction" id="7011" title="Introduction" xtkschema="cus:chapter">
<page>Introduction to input <STRONG>forms</STRONG>.</page>
</mainChapter>
Nel modulo di input, il controllo di modifica del collegamento viene dichiarato come segue:
<input type="articleEdit" xpath="mainChapter"/>
L'icona Magnifier consente di aprire il modulo di modifica dell'elemento collegato.
Raccolta collegamenti link-collection
Per popolare una raccolta di collegamenti, aggiungi l'attributo unbound="true" alla definizione dell'elemento link nello schema dati:
<element expandSchemaTarget="cus:chapter" label="List of chapters" name="chapter" ordered="true" unbound="true"/>
Il contenuto dell’elemento di destinazione arricchisce ogni elemento di raccolta:
<chapter computeString="Introduction" id="7011" title="Introduction" xtkschema="cus:chapter">
<page>Introduction to input <STRONG>forms</STRONG>.</page>
</chapter>
Nel modulo di input, il controllo elenco viene dichiarato come segue:
<input editable="false" nolabel="true" toolbarCaption="List of chapters" type="articleList" xpath="chapter" zoom="true"/>
Viene visualizzata una colonna predefinita per visualizzare la stringa di calcolo degli elementi di destinazione.
Collegamenti a tabelle esterne links-to-external-tables
Un collegamento a una tabella esterna viene dichiarato nello schema dati come segue:
<element label="Main contact" name="mainContact" target="nms:recipient" type="link"/>
La definizione del collegamento viene compilata su un <element>
di tipo link e l'attributo target fa riferimento allo schema di destinazione ("nms:recipient" nel nostro esempio).
Per convenzione, i collegamenti devono essere dichiarati dall’elemento principale dello schema di dati.
La stringa di calcolo e la chiave dell'elemento di destinazione arricchiscono gli attributi <name>-id
e <name>-cs
dell'elemento principale.
Nel nostro esempio, il collegamento è popolato nello schema "cus:book", il contenuto dei dati del collegamento è contenuto negli attributi "mainContact-id" e "mainContact-cs":
<book computeString="Content management" date="2006/06/08" id="6106" language="en" mainContact-cs="John Doe (john.doe@adobe.com)" mainContact-id="3012" name="Content management" xtkschema="cus:book">
Il controllo di modifica dei collegamenti è dichiarato come segue:
<input xpath="mainContact"/>
È possibile limitare la scelta degli elementi di destinazione aggiungendo l'elemento <sysfilter>
tramite la definizione del collegamento nel modulo di input:
<input xpath="mainContact">
<!-- Filter the selection of the link on the Adobe domain -->
<sysFilter>
<condition expr="@domain = 'adobe.com '"/>
</sysFilter>
</input>
Raccolta collegamenti link-collection-1
La definizione della raccolta è identica a quella di un elenco di elementi di raccolta:
<element label="List of contacts" name="contact" unbound="true">
<element label="Recipient" name="recipient" target="nms:recipient" type="link"/>
</element>
Nel modulo di input, il controllo elenco viene dichiarato come segue:
<input nolabel="true" toolbarCaption="List of contacts" type="list" xpath="contact">
<input xpath="recipient"/>
</input>
Il contenuto dell'elemento di destinazione arricchisce ogni elemento di raccolta nel documento di output:
<contact id="11504978621" recipient-cs="Doe John (john.doe@adobe.com)" recipient-id="3012"/>
<contact id="11504982510" recipient-cs="Martinez Peter (peter.martinez@adobe.com)" recipient-id="3013"/>
Aggregazione collegamenti link-aggregation
Il contenuto di ogni collegamento a cui si fa riferimento è limitato alla chiave interna e alla stringa di calcolo dell'elemento di destinazione.
Uno script JavaScript viene utilizzato per arricchire il contenuto dei collegamenti tramite query SOAP.
Esempio: aggiunta del nome del destinatario al collegamento "mainContact" e ai collegamenti della raccolta "contact":
// Update <mainContact> link
var mainContactId = content.@['mainContact-id']
var query = xtk.queryDef.create(
<queryDef schema="nms:recipient" operation="get">
<select>
<node expr="@lastName"/>
</select>
<where>
<condition expr={"@id="+mainContactId}/>
</where>
</queryDef>)
var recipient = query.ExecuteQuery()
content.mainContact.@lastName = recipient.@lastName
// Update <contact> link collection
for each(var contact in content.contact)
{
var contactId = contact.@['recipient-id']
var query = xtk.queryDef.create(
<queryDef schema="nms:recipient" operation="get">
<select>
<node expr="@lastName"/>
</select>
<where>
<condition expr={"@id="+contactId}/>
</where>
</queryDef>
)
var recipient = query.ExecuteQuery()
contact.@lastName = recipient.@lastName
}
Risultato ottenuto dopo l’esecuzione dello script:
<mainContact lastName="Doe"/>
<contact id="11504978621" lastName="Doe" recipient-cs="Doe John (john.doe@adobe.com)" recipient-id="3012"/>
<contact id="11504982510" lastName="Martinez" recipient-cs="Martinez Peter (peter.martinez@adobe.com)" recipient-id="3013"/>
Il contenuto del codice JavaScript viene aggiunto tramite la cartella Administration > Configuration > Content management > JavaScript Codes e deve essere inserito nel modello di pubblicazione per ogni trasformazione.