mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
173 lines
11 KiB
HTML
173 lines
11 KiB
HTML
<!--
|
|
Copyright JS Foundation and other contributors, http://js.foundation
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<script type="text/html" data-help-name="split">
|
|
<p>Divise un message en une séquence de messages.</p>
|
|
|
|
<h3>Entrées</h3>
|
|
<dl class="message-properties">
|
|
<dt>payload<span class="property-type">objet | chaîne | tableau | tampon</span></dt>
|
|
<dd>Le comportement du noeud est déterminé par le type du <code>msg.payload</code>:
|
|
<ul>
|
|
<li><b>chaîne</b>/<b>tampon</b> - le message est divisé en utilisant le caractère spécifié (par défaut : <code>\n</code>), la séquence du tampon ou en longueurs fixes. </li>
|
|
<li><b>tableau</b> - le message est divisé en éléments de tableau individuels ou en tableaux de longueur fixe.</li>
|
|
<li><b>objet</b> - un message est envoyé pour chaque paire clé/valeur de l'objet.</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<h3>Sorties</h3>
|
|
<dl class="message-properties">
|
|
<dt>parts<span class="property-type">objet</span></dt>
|
|
<dd>Cette propriété contient des informations sur la manière dont le message a été séparé du
|
|
message d'origine. Si elle est transmise au noeud <b>join</b>, la séquence peut être
|
|
regroupés en un seul message. La propriété a les propriétés suivantes :
|
|
<ul>
|
|
<li><code>id</code> - un identifiant pour le groupe de messages</li>
|
|
<li><code>index</code> - la position au sein du groupe</li>
|
|
<li><code>count</code> - si connu, le nombre total de messages dans le groupe. Voir 'mode streaming' ci-dessous.</li>
|
|
<li><code>type</code> - le type de message - chaîne/tableau/objet/tampon</li>
|
|
<li><code>ch</code> - pour une chaîne ou un tampon, les données utilisées pour diviser le message en chaîne ou en tableau d'octets</li>
|
|
<li><code>key</code> - pour un objet, la clé de la propriété à partir de laquelle ce message a été créé. Le noeud peut être configuré pour copier également cette valeur dans d'autres propriétés du message, telles que <code>msg.topic</code>.</li>
|
|
<li><code>len</code> - la longueur de chaque message lorsqu'elle est divisée à l'aide d'une valeur de longueur fixe</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<h3>Détails</h3>
|
|
<p>Ce noeud facilite la création d'un flux qui exécute des actions communes sur
|
|
une séquence de messages, à l'aide du noeud <b>join</b>, qui recombine la
|
|
séquence en un seul message.</p>
|
|
<p>Il utilise la propriété <code>msg.parts</code> pour suivre les parties individuelles
|
|
d'une séquence.</p>
|
|
<h4>Mode diffusion</h4>
|
|
<p>Le noeud peut également être utilisé pour rediffuser un flux de messages. Par exemple, un
|
|
périphérique série qui envoie des commandes terminées par une nouvelle ligne peut délivrer un seul message
|
|
avec une commande partielle à sa fin. En "mode streaming", ce noeud divisera
|
|
le message et enverra chaque segment complet. S'il y a un segment partiel à la fin,
|
|
le noeud le conservera et l'ajoutera au prochain message reçu.
|
|
</p>
|
|
<p>Lorsqu'il fonctionne dans ce mode, le noeud ne définira pas le <code>msg.parts.count</code>
|
|
car il ne sait pas combien de messages attendent dans le flux. Cela
|
|
signifie qu'il ne peut pas être utilisé avec le noeud <b>join</b> en mode automatique.</p>
|
|
</script>
|
|
|
|
<script type="text/html" data-help-name="join">
|
|
<p>Joint des séquences de messages en un seul message.</p>
|
|
<p>Trois modes sont disponibles :</p>
|
|
<dl>
|
|
<dt>automatique</dt>
|
|
<dd>Lorsqu'il est associé au noeud <b>split</b>, il joindra automatiquement les messages pour inverser le fractionnement qui a été effectué.</dd>
|
|
<dt>manuel</dt>
|
|
<dd>Joindre des séquences de messages de différentes manières.</dd>
|
|
<dt>réduire la séquence</dt>
|
|
<dd>Appliquez une expression à tous les messages d'une séquence pour la réduire à un seul message.</dd>
|
|
</dl>
|
|
<h3>Entrées</h3>
|
|
<dl class="message-properties">
|
|
<dt class="optional">parts<span class="property-type">objet</span></dt>
|
|
<dd>Pour joindre automatiquement une séquence de messages, ils doivent tous avoir
|
|
cet ensemble de propriétés. Le noeud <b>split</b> génère cette propriété mais il
|
|
peut être créé manuellement. Il a les propriétés suivantes :
|
|
<ul>
|
|
<li><code>id</code> - un identifiant pour le groupe de messages</li>
|
|
<li><code>index</code> - la position au sein du groupe</li>
|
|
<li><code>count</code> - le nombre total de messages dans le groupe</li>
|
|
<li><code>type</code> - le type de message - chaîne/tableau/objet/tampon</li>
|
|
<li><code>ch</code> - pour une chaîne ou un tampon, les données utilisées pour diviser le message en chaîne ou en tableau d'octets</li>
|
|
<li><code>key</code> - pour un objet, la clé de la propriété à partir de laquelle ce message a été créé</li>
|
|
<li><code>len</code> - la longueur de chaque message lorsqu'il est divisé à l'aide d'une valeur de longueur fixe</li>
|
|
</ul>
|
|
</dd>
|
|
<dt class="optional">complete</dt>
|
|
<dd>S'il est défini, le noeud ajoutera la charge utile, puis enverra le message de sortie dans son état actuel.
|
|
Si vous ne souhaitez pas ajouter la charge utile, supprimez-la du msg.</dd>
|
|
<dt class="optional">reset</dt>
|
|
<dd>S'il est défini, le noeud effacera tout message partiellement terminé et ne l'enverra pas.</dd>
|
|
<dt class="optional">restartTimeout</dt>
|
|
<dd>S'il est défini et que le noeud a un délai d'attente configuré, ce délai d'attente sera redémarré.</dd>
|
|
</dl>
|
|
<h3>Détails</h3>
|
|
|
|
<h4>Mode automatique</h4>
|
|
<p>Le mode automatique utilise la propriété <code>parts</code> des messages entrants pour
|
|
déterminer comment la séquence doit être jointe. Cela lui permet de automatiquement
|
|
inverser l'action d'un noeud <b>split</b>.</p>
|
|
|
|
<h4>Mode manuel</h4>
|
|
<p>Lorsqu'il est configuré pour se joindre en mode manuel, le noeud peut joindre des séquences
|
|
de messages dans un certain nombre de résultats différents :</p>
|
|
<ul>
|
|
<li>une <b>chaîne</b> ou un <b>tampon</b> - créé en joignant la propriété sélectionnée de chaque message avec les caractères de jointure ou le tampon spécifiés.</li>
|
|
<li>un <b>tableau</b> - créé en ajoutant chaque propriété sélectionnée, ou le message entier, au tableau de sortie.</li>
|
|
<li>un <b>objet clé/valeur</b> - créé en utilisant une propriété de chaque message pour déterminer la clé sous laquelle
|
|
la valeur requise est stockée.</li>
|
|
<li>un <b>objet fusionné</b> - créé en fusionnant la propriété de chaque message sous un seul objet.</li>
|
|
</ul>
|
|
<p>Les autres propriétés du message de sortie sont extraites du dernier message reçu avant l'envoi du résultat.</p>
|
|
<p>Un <i>compteur</i> peut être défini pour le nombre de messages à recevoir avant de générer le message de sortie.
|
|
Pour les sorties d'objet, une fois ce nombre atteint, le noeud peut être configuré pour envoyer un message pour chaque message suivant
|
|
reçu.</p>
|
|
<p>Un <i>temps mort</i> peut être défini pour déclencher l'envoi du nouveau message en utilisant tout ce qui a été reçu jusqu'à présent.
|
|
Ce délai peut être redémarré en envoyant un message avec la propriété <code>msg.restartTimeout</code> définie.</p>
|
|
<p>Si un message est reçu avec la propriété <code>msg.complete</code> définie, le message de sortie est finalisé et envoyé.
|
|
Cela réinitialise tous les compteurs de pièces.</p>
|
|
<p>Si un message est reçu avec la propriété <code>msg.reset</code> définie, le message partiellement complet est supprimé et n'est pas envoyé.
|
|
Cela réinitialise tous les compteurs de pièces.</p>
|
|
|
|
<h4>Réduire le mode de séquence</h4>
|
|
<p>Lorsqu'il est configuré pour joindre en mode de réduction, une expression est appliquée à chaque
|
|
message dans une séquence et le résultat accumulé pour n'envoyer qu'un seul message.</p>
|
|
|
|
<dl class="message-properties">
|
|
<dt>Valeur initiale</dt>
|
|
<dd>La valeur initiale de la valeur cumulée (<code>$A</code>).</dd>
|
|
<dt>Réduire l'expression</dt>
|
|
<dd>Une expression JSONata appelée pour chaque message de la séquence.
|
|
Le résultat est transmis au prochain appel de l'expression en tant que valeur cumulée.
|
|
Dans l'expression, les variables spéciales suivantes peuvent être utilisées :
|
|
<ul>
|
|
<li><code>$A</code>: la valeur accumulée, </li>
|
|
<li><code>$I</code>: index du message dans la séquence, </li>
|
|
<li><code>$N</code>: nombre de messages dans la séquence.</li>
|
|
</ul>
|
|
</dd>
|
|
<dt>Expression de correction</dt>
|
|
<dd>Une expression JSONata facultative qui est appliquée après l'expression de réduction
|
|
a été appliqué à tous les messages de la séquence.
|
|
Dans l'expression, les variables spéciales suivantes peuvent être utilisées :
|
|
<ul>
|
|
<li><code>$A</code>: la valeur accumulée, </li>
|
|
<li><code>$N</code>: nombre de messages dans la séquence.</li>
|
|
</ul>
|
|
</dd>
|
|
<p>Par défaut, l'expression de réduction est appliquée dans l'ordre, du premier
|
|
au dernier message de la séquence. Il peut éventuellement être appliqué dans
|
|
l'ordre inverse.</p>
|
|
<p>$N est le nombre de messages qui arrivent - même s'ils sont identiques.</p>
|
|
</dl>
|
|
<p><b>Exemple</b> : les paramètres suivants, donnés en tant que séquence de valeurs numériques,
|
|
le noeud calculera la valeur moyenne :
|
|
<ul>
|
|
<li><b>Réduire l'expression</b> : <code>$A+payload</code></li>
|
|
<li><b>Valeur initiale</b> : <code>0</code></li>
|
|
<li><b>Expression de correction</b> : <code>$A/$N</code></li>
|
|
</ul>
|
|
</p>
|
|
<h4>Stocker des messages</h4>
|
|
<p>Ce noeud mettra les messages en mémoire tampon en interne afin de travailler sur plusieurs séquences. Le
|
|
paramètre d'exécution <code>nodeMessageBufferMaxLength</code> peut être utilisé pour limiter le nombre de messages
|
|
à mettre en mémoire tampon dans le noeud.</p>
|
|
</script>
|