Impossible d’utiliser/d’interroger les noms de fichiers de sortie de diffusion DM

Description

Environnement

  • Campaign Classic
  • Campaign
  • Campaign Standard

Problème/Symptômes
L’un des clients a signalé le problème suivant :

Dans le champ mdata, nous voulons extraire le nom outputFile—voir attachment(mData_outputFile.png) pour l’emplacement, stocké dans outputFile="" ". Nous voulons connaître la meilleure façon de transformer cela Données XML champ de type à transmettre en tant que champ enrichi dans le workflow de l'opération. Afin que nous puissions ajouter à notre tableau d’historique de promotion pour stocker tous les noms de fichiers de sortie.

Puisque nous savons que les données sont un champ XML et non un champ DB sur lequel effectuer des requêtes. Mais existe-t-il une méthode pour atteindre ce scénario ?

Résolution

Nous pouvons essayer de résoudre ce problème de deux manières :

  1. Utilisez une activité d’extraction de fichier pour extraire les données de diffusion dans XML format. Cela permet de s’assurer que la variable mdata est également extrait. Ensuite, vous pouvez utiliser une activité Chargement de fichier ou du code JavaScript (Code JS) pour analyser ce fichier et obtenir vos données.
  2. Utilisez une Code JS activité et queryDef pour récupérer mdata de votre diffusion, puis analysez le XML. Stockage des données dans une variable d'instance pour ensuite se charger en transition

Le client avait une requête de relance qui était la suivante :

Nous essayons d'utiliser la méthode de queryDef against mdata, que nous avons pu écrire. Pour la méthode d’analyse, quelle est l’approche recommandée ?

Réponse:

Votre requête sera la suivante :

queryDef operation="select" schema="nms:delivery"

sélectionnez

node expr="@id"/

node expr="output/@fileName" label="Fichier de sortie"/

/sélectionnez

sysFilter

condition expr="@isModel = 0"/

/sysFilter

orderBy

node expr="@lastModified" sortDesc="true"/

/orderBy

/queryDef

Et il renverra :

delivery-collection

delivery id="11878415"

output filename="abc.txt"

/output

/delivery

/delivery-collection

Sur cette page