v7
Gäller Campaign Classic v7
v8
Gäller även Campaign v8

Berika innehåll enriching-content

Med aggregatorer kan du utöka innehållet med externa data. Dessa data kommer från generiska frågor eller länkade tabeller.

Allmänna frågor generic-queries

Frågor konfigureras via publiceringsmallen i Aggregator -fliken.

De data som hämtas kommer att berika XML-utdatadokumentet via dess huvudelement.

Exempel på retur från en fråga i mottagarschemat (nms:mottagare):

<book name="Content Management">
  ...
  <collection-recipient>
    <recipient lastName="Doe" firstName="John" email="john.doe@aolf.com">
    ...
  </collection-recipient>
</book>

The <collection-recipient> -elementet representerar indataelementet i dokumentet som är ett resultat av en fråga. De data som hämtas returneras under det här elementet, i vårt exempel en mottagarlista.

Lägga till en fråga adding-a-query

Frågeparametrarna redigeras med en guide.

  1. På den första sidan anger du etiketten och schemat som innehåller de data som ska hämtas.

    note note
    NOTE
    Redigeringsfältet Bana används för att byta namn på frågeutdataelementet.
  2. På nästa sida kan du välja vilka data som ska hämtas.

  3. På nästa sida definieras filtervillkoren.

  4. På den sista sidan visas en förhandsgranskning av de data som returnerats av frågan.

Länkade tabeller linked-tables

Med länkar kan du hämta externa data som är länkade till innehållet.

Det finns två typer av länkade data:

  • Innehållslänkar: Detta är det inbyggda innehållshanteringsläget. Länkens innehåll integreras automatiskt i XML-utdatadokumentet.
  • Länkar till externa tabeller ger åtkomst till alla andra tabeller i databasen med begränsningen att hämta data från den markerade länken med en aggregator.

En innehållslänk deklareras i dataschemat enligt följande:

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

Definitionen av länken fylls i på en string-type <element> och expandSchemaTarget -attribut refererar till målschemat ("cus:chapter" i vårt exempel). Det refererade schemat måste vara ett innehållsschema.

Innehållet i målelementet berikar länkelementet, dvs. <chapter> element i vårt exempelschema:

<mainChapter computeString="Introduction" id="7011" title="Introduction" xtkschema="cus:chapter">
  <page>Introduction to input <STRONG>forms</STRONG>.</page>
</mainChapter>
NOTE
The Beräkningssträng av länken visas på computeString -attribut.

I indataformuläret deklareras redigeringskontrollen för länken enligt följande:

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

The Magnifier Med ikonen kan du öppna redigeringsformuläret för det länkade elementet.

Om du vill fylla en samling länkar lägger du till unbound="true" attribut till definitionen av länkelementet i dataschemat:

<element expandSchemaTarget="cus:chapter" label="List of chapters" name="chapter"  ordered="true" unbound="true"/>

Innehållet i målelementet berikar varje samlingselement:

<chapter computeString="Introduction" id="7011" title="Introduction" xtkschema="cus:chapter">
  <page>Introduction to input <STRONG>forms</STRONG>.</page>
</chapter>

I indataformuläret deklareras listkontroll enligt följande:

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

En standardkolumn visas för att visa Beräkningssträng av målelementen.

En länk till en extern tabell deklareras i dataschemat enligt följande:

<element label="Main contact" name="mainContact" target="nms:recipient" type="link"/>

Definitionen av länken fylls i på en link-type <element> och target attribute references the target schema ("nms:receive" in our example).

Länkar måste deklareras som huvudelement i dataschemat.

The Beräkningssträng och nyckeln till målelementet berikar <name>-id och <name>-cs -attribut för huvudelementet.

I vårt exempel är länken ifylld i "cus:book"-schemat och innehållet i länkdata finns i attributen "mainContact-id" och "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">

Länkredigeringskontrollen deklareras enligt följande:

<input xpath="mainContact"/>

Du kan begränsa valet av målelement genom att lägga till <sysfilter> -element via länkdefinitionen i indataformuläret:

<input xpath="mainContact">
  <!-- Filter the selection of the link on the Adobe domain -->
  <sysFilter>
    <condition expr="@domain =  'adobe.com '"/>
  </sysFilter>
</input>
NOTE
Den här begränsningen gäller även innehållslänkar.

Definitionen av samlingen är identisk med definitionen av en lista över samlingselement:

<element label="List of contacts" name="contact" unbound="true">
  <element label="Recipient" name="recipient" target="nms:recipient" type="link"/>
</element>

I indataformuläret deklareras listkontroll enligt följande:

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

NOTE
Listan är redigerbar och du kan välja länken från en kontroll av typen "link" som visas ovan.

Innehållet i målelementet berikar varje samlingselement i utdatadokumentet:

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

Innehållet i varje länk som refereras begränsas till den interna nyckeln och Beräkningssträng för målelementet.

Ett JavaScript-skript används för att berika innehållet i länkarna via SOAP-frågor.

Exempel: Lägga till mottagarnamnet till huvudkontakten och kontaktsamlingslänkarna:

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

Resultatet som erhålls efter skriptkörning:

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

Innehållet i JavaScript-koden läggs till via Administration > Configuration > Content management > JavaScript Codes och måste fyllas i i publikationsmallen för varje omformning.

recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1