Back to Help Center

UTILISER CONTEXT BUFFER - JS

Equipe Learning

Conserver X payload dans un buffer pour utiliser la payload précédente

Conserver X payload dans un buffer pour l'utiliser avec la payload précédente

//Choisir le nombre de payloads que vous souhaitez conserver (5 payloads dans cet exemple)
const NbPayload = 5 ;

//Déclarer un tableau vide ou récupérer le ArrayBuf actuel (le ArrayBuf sera disponible à partir du flux)
let array = context.get("ArrayBuf") || [];

//Ajouter la payload actuelle au tableau
array.push(msg.payload);

//Si la longueur du tableau est supérieure au nombre de payloads que vous souhaitez conserver...
if(array.length > NbPayload)
{
    //...nous supprimons la première payload du tableau
    array.shift();
}

//Enregistrer le tableau dans ArrayBuf
context.set("ArrayBuf",array);

Maintenant, vous pouvez récupérer une payload du buffer de cette manière :


//À la fin de la fonction, vous pouvez récupérer la payload précédente
//Index de la payload actuelle = NbPayload-1 (car l'index du tableau commence à 0 !)
//Index de la Payload Précédente = NbPayload-2
PreviousTag1 = context.get("ArrayBuf")[NbPayload-2].Tag1
//Équivalent à "_doJava.get("tag1", -1)" dans MX Brain

Conserver uniquement certaines balises de X payload dans un buffer

Conserver uniquement certaines balises (tagToKeep) de X payload (NbPayload) dans un buffer pour utiliser les balises précédentes

//1) Choisir le nombre de payloads à conserver
const NbPayload = 5 ;
//2) Configurer la liste des balises de la payload à conserver
const tagToKeep =[
    "tag1",
    "tag2",
    "tag3",
    ]

//Déclarer un objet
let ObjToKeep = {};
//Conserver les balises et les valeurs de la liste "tagToKeep"
for(let tag of tagToKeep)
{
     ObjToKeep[`${tag}`] = msg.payload[tag];
}

//Déclarer un tableau vide ou récupérer le ArrayBuf actuel
let array = context.get("ArrayBuf") || [];

//Ajouter le ObjToKeep actuel au tableau
array.push(ObjToKeep);

//Si la longueur du tableau est supérieure au nombre de payloads à conserver
if(array.length > NbPayload)
{
    //Supprimer la première entrée du tableau
    array.shift();
}

//Enregistrer le tableau
context.set("ArrayBuf",array);
Réalisé par Zendesk