Impossibile utilizzare/eseguire query sui nomi dei file di output di consegna DM

Questo articolo delinea una soluzione per l’estrazione dei nomi dei file di output dal campo mdata in ambienti Campaign Classic e Campaign Standard. A questo scopo, puoi utilizzare l’attività di estrazione file o l’attività codice JS con queryDef per recuperare i dati della consegna e analizzare l’XML. Per quest’ultimo metodo viene fornito un esempio specifico.

Descrizione description

Ambiente

  • Campaign Classic
  • Campaign
  • Campaign Standard

Problema/Sintomi

Dal campo mdata, si desidera estrarre il nome di outputFile. Vedere attachment(mData_outputFile.png) per la posizione, memorizzata in outputFile=" ". Desideri conoscere il modo migliore per trasformare questo campo di tipo Dati XML da passare come campo arricchito all'interno del flusso di lavoro della campagna. In modo da poter aggiungere nella tabella della cronologia delle promozioni tutti i nomi dei file di output.

Poiché mdata è un campo XML e non un campo DB su cui eseguire query, esiste un metodo per ottenere questo scenario?

Risoluzione resolution

Puoi provare a risolvere questo problema in due modi:

Scenario 1

  1. Utilizza un'attività di estrazione file per estrarre i dati di consegna in formato XML. In questo modo mdata viene estratto anche. In seguito, puoi utilizzare un'attività di caricamento file o un'attività JavaScript (Codice JS) per analizzare il file e ottenere i dati.
  2. Utilizza un'attività Codice JS e queryDef per recuperare mdata della consegna e analizzare l'XML. Archivia i dati in una variabile istanza per poi caricarli nella transizione.

Scenario 2

Si sta tentando di utilizzare il metodo di queryDef su mdata, che è stato possibile scrivere. Per il metodo parse, qual è l’approccio consigliato?

La richiesta sarà simile a:

<operazione queryDef="select" schema="nms:delivery">

<selezione>

<nodo expr="@id"/>

<nodo expr="[ output/@fileName] " label="File di output"/>

</select>

<sysFilter>

<condizione expr="@isModel = 0"/>

</sysFilter>

<orderBy>

<nodo expr="@lastModified" sortDesc="true"/>

</orderBy>

</queryDef>

E restituirà:

<raccolta di consegna>

<id consegna="11878415">

<nome file di output="abc.txt">

</output>

</delivery>

</delivery-collection>

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f