Bonjour,
J’ai un workflow où je veux créer une liste déroulante avec quelques dates en fonction de la soumission du nœud déclencheur de formulaire. Je voudrais également ajouter une condition basée sur le bouton radio sélectionné dans le nœud déclencheur de formulaire. J’ai créé un nœud de code JSON comme dans le fichier joint. J’ai un problème, cependant, pour construire correctement le formulaire suivant (nœud « Add dates » dans le workflow joint). Je veux qu’il affiche deux champs : une liste déroulante libellée « form fields » et une saisie de texte libellée « NIP ». Malheureusement, soit il n’affiche qu’un seul champ (comme dans le workflow joint), soit, après quelques modifications, il affiche une erreur « not valid json ». Quelqu’un a-t-il une idée de comment construire ce nœud pour atteindre mon objectif ?
1 « J'aime »
Bonjour @Michal_Moraszczyk
Peux-tu essayer ceci ?
2 « J'aime »
Bonjour Michal,
Le problème vient probablement de la manière dont votre nœud Code génère le JSON. Le nœud Form s’attend à un tableau JSON au niveau supérieur de la sortie — pas imbriqué dans un objet ou enrobé dans une chaîne de caractères.
Voici une structure fonctionnelle pour votre nœud Form « Add dates » (défini sur « Define form using JSON »):
[
{
"fieldLabel": "Select Date",
"fieldType": "dropdown",
"fieldOptions": {
"values": [
{ "option": "your_dynamic_date_1" },
{ "option": "your_dynamic_date_2" }
]
},
"requiredField": true
},
{
"fieldLabel": "NIP",
"fieldType": "text",
"placeholder": "Enter NIP",
"requiredField": true
}
]
Les pièges courants qui causent l’erreur « not valid json » ou l’affichage d’un seul champ:
-
Encapsuler dans un objet — Ne retournez pas { "fields": [...] }. Le nœud Form s’attend au tableau directement. Retournez simplement le tableau.
-
Retourner une chaîne de caractères — Si votre nœud Code fait JSON.stringify(), le nœud Form reçoit une chaîne au lieu d’un objet analysé. Retournez le tableau en tant qu’objet véritable.
-
Plusieurs éléments au lieu d’un — Votre nœud Code doit retourner un seul élément contenant le tableau complet. Utilisez ce modèle dans votre nœud Code:
const fields = [
{
fieldLabel: "Select Date",
fieldType: "dropdown",
fieldOptions: {
values: dates.map(d => ({ option: d }))
},
requiredField: true
},
{
fieldLabel: "NIP",
fieldType: "text",
placeholder: "Enter NIP",
requiredField: true
}
];
return [{ json: fields }];
La partie return [{ json: fields }] est cruciale — un seul élément, le tableau va dans json. C’est ce que la plupart des gens oublient.
Pour la condition du bouton radio — utilisez un nœud IF après le Form Trigger pour créer une bifurcation, et connectez la bonne branche au nœud Form « Add dates ». Chaque branche peut avoir son propre nœud Form avec des définitions de champs différentes.
J’espère que cela vous aidera!
1 « J'aime »
Bonjour,
Votre solution a parfaitement fonctionné pour moi. Merci !
1 « J'aime »
Bonjour,
Votre explication est approfondie et précieuse. Je vais tenir compte de votre recommandation - elles me seront aussi utiles dans mes futurs flux de travail. Merci !