Arricchimento del contenuto

Gli aggregati consentono di arricchire il contenuto con dati esterni. Questi dati provengono da query generiche o tabelle collegate.

Query generiche

Le query sono configurate tramite il modello di pubblicazione nella scheda Aggregator.

I dati recuperati arricchiranno il documento di output XML tramite il relativo elemento principale.

Esempio di restituzione da una query sullo schema del destinatario (nms:destinatario):

<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

I parametri di query vengono modificati tramite una procedura guidata.

  1. Nella prima pagina, specificare l'etichetta e lo schema contenente i dati da recuperare.

    NOTA

    Il campo di modifica Path viene utilizzato per rinominare l'elemento di output della query.

  2. La pagina successiva consente di selezionare i dati da recuperare.

  3. La pagina successiva definisce la condizione del filtro.

  4. L'ultima pagina avvia un'anteprima dei dati restituiti dalla query.

Tabelle collegate

I collegamenti consentono di recuperare dati esterni collegati al contenuto.

Esistono due tipi di dati collegati:

  • Collegamenti contenuto: questa è la modalità di gestione del contenuto nativa. Il contenuto del collegamento viene integrato automaticamente nel documento di output XML.
  • I collegamenti alle 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.

Un collegamento contenuto è dichiarato nello schema dati come segue:

<element expandSchemaTarget="cus:chapter" label="Main chapter" name="mainChapter" type="string"/>

La definizione del collegamento viene compilata su un tipo <element> e l'attributo espandereSchemaTarget fa riferimento allo schema di destinazione ("cus:Chapter" nel nostro esempio). Lo schema di riferimento deve essere uno schema di contenuto.

Il contenuto dell'elemento di destinazione arricchisce l'elemento di collegamento, 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>
NOTA

La stringa di calcolo del collegamento viene presentata dall'attributo computeString.

Nel modulo di input, il controllo di modifica del collegamento è dichiarato come segue:

<input type="articleEdit" xpath="mainChapter"/>

L'icona Magnifier consente di aprire il modulo di modifica dell'elemento collegato.

Per compilare una raccolta di collegamenti, aggiungere l'attributo unbound="true" alla definizione dell'elemento di collegamento 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 è dichiarato come segue:

<input editable="false" nolabel="true" toolbarCaption="List of chapters" type="articleList" xpath="chapter" zoom="true"/>

Per visualizzare la stringa di calcolo degli elementi di destinazione, viene visualizzata una colonna predefinita.

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 collegamento di tipo <element> e l'attributo target fa riferimento allo schema di destinazione ("nms:destinatario" 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 sull'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 per la 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>
NOTA

Questa limitazione si applica anche ai collegamenti di contenuto.

La definizione della raccolta è identica alla definizione di un elenco sugli elementi della 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 è dichiarato come segue:

<input nolabel="true" toolbarCaption="List of contacts" type="list" xpath="contact">
  <input xpath="recipient"/>
</input>

NOTA

L’elenco è modificabile e consente di selezionare il collegamento da un controllo di tipo "link" illustrato sopra.

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"/>

Il contenuto di ciascun 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: Aggiungendo il nome del destinatario al collegamento "mainContact" e i 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
}

Il 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 popolato nel modello di pubblicazione per ogni trasformazione.

In questa pagina

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now