Ajouter des champs de saisie dynamiques : exemple HTTP
Les générateurs peuvent utiliser des flux d'aide pour remplir les entrées d'une carte de manière dynamique lorsqu'une requête adressée à une API est nécessaire pour récupérer une liste de champs disponibles, ou que la liste des champs requis pour l'action change en fonction des choix de l'utilisateur dans la section des options.
L'exemple de base suivant utilise deux flux pour créer une liste d'entrées simple : un flux de traitement qui façonne les résultats dans la liste d'objets adéquate et un flux qui permet de récupérer la liste de champs elle-même à partir d'un service. Il est souvent utilisé lorsqu'un service permet la création de champs personnalisés ou d'autres modifications de schéma apportées à une instance utilisateur. Il ne s'agit que d'un exemple destiné à relayer la génération de flux de base requise.
Générer un flux de traitement
Un flux de traitement accepte chaque élément individuel de la liste d'éléments renvoyés par le flux de récupération qui est documenté dans la section suivante. Il sert à extraire les informations nécessaires de chaque objet et à leur donner la forme appropriée avec les bonnes clés.
Dans un scénario, un service renvoie une liste d'objets JSON simple qui représente les champs disponibles dans le Tenant d'un utilisateur. Le flux de traitement prendra l'objet pour chaque champ (par exemple, Résumé, Priorité et Date d'échéance) et le mettra en forme pour que la plateforme puisse afficher la liste en tant qu'entrées sur la carte. Il s'agit d'un exemple de réponse uniquement réservé à des fins d'illustration.
[
{
"required":true,
"schema":{
"type":"string"
},
"name":"Summary",
"key":"summary"
},
{
"required":false,
"schema":{
"type":"number"
},
"name":"Priority",
"key":"priority"
},
{
"required":true,
"schema":{
"type":"date"
},
"name":"Due Date",
"key":"date"
}
]
Le flux ci-dessous vise à transformer la réponse d'API ci-dessus en objet JSON pris en charge par Workflows ci-dessous.
[
{
"displayname":"Summary",
"name":"summary",
"type":"Text",
"required":true
},
{
"displayname":"Priority",
"name":"priority",
"type":"Number",
"required":false
},
{
"schema":{
"type":"date"
},
"displayname":"Due Date",
"name":"date",
"type":"Date & Time",
"required":true
}
]
-
Cliquez sur + Nouveau flux pour créer un flux.
-
Ajoutez une carte Flux d'aide comme première carte de votre flux.
-
Cliquez sur Enregistrer et nommez le flux
Format Input Fields. -
Saisissez
Processes a list of items and reformats the list to be used as an input listcomme description du flux, sélectionnez l'option Enregistrer toutes les données qui transitent par le flux, et cliquez sur Enregistrer. -
Ajoutez un champ à la carte Flux d'aide en cliquant sur Cliquer ou faire glisser pour créer. Ajoutez une étiquette, saisissez
field_objectcomme nom, puis cliquez sur Entrée. -
Sélectionnez Objet comme type de champ.
-
Ajoutez une carte de fonction Obtenir des objets multiples au flux.
-
Faites glisser le champ field_object de la carte Flux d'aide dans l'entrée d'objet de la carte Obtenir des objets multiples.
-
Ajoutez les noms de clés des valeurs que vous souhaitez extraire en tant que sorties à la fonction Obtenir des objets multiples. Dans l'exemple de l'objet JSON ci-dessus, il s'agirait de
name,key,requiredetschema.type. Remarque :requiredest un champ booléen de type True/False. -
Ajoutez une carte de fonction Recherche de branches à la suite de la carte de fonction Obtenir des objets multiples.
-
Étant donné que les types de champ (schema.type) du service ne correspondent pas à ceux utilisés par Workflows, nous allons souhaiter les convertir à l'aide de la carte de fonction Rechercher. Faites glisser le champ schema.type de la carte de fonction Obtenir des objets multiples vers le champ Valeur de la carte de fonction Rechercher.
-
Saisissez le type
stringdans la colonne Quand la valeur est etTextdans la colonne Alors le résultat est. -
Saisissez le type
numberdans la colonne Quand la valeur est etNumberdans la colonne Alors le résultat est. -
Saisissez le type
datedans la colonne Quand la valeur est etDate & Timedans la colonne Alors le résultat est. -
Saisissez
Textdans le champ Sinon le résultat est pour vous assurer qu'un type est ajouté pour les types inconnus. -
Renommez la sortie sur la carte Rechercher à converted_type.
-
Ajoutez un champ appelé displayname à la carte Renvoyer en cliquant sur Cliquer ou faire glisser pour créer, puis faites glisser le champ nom depuis la sortie de la carte de fonction Obtenir des objets multiples.
-
Ajoutez un champ appelé nom à la carte Renvoyer en cliquant sur Cliquer ou faire glisser pour créer, puis faites glisser le champ clé depuis la sortie de la carte de fonction Obtenir des objets multiples.
-
Ajoutez un champ appelé type à la carte Renvoyer en cliquant sur Cliquer ou faire glisser pour créer, puis faites glisser le champ converted_type depuis la sortie de la carte de fonction Recherche.
-
Ajoutez un champ appelé requis à la carte Renvoyer en cliquant sur Cliquer ou faire glisser pour créer, puis faites glisser le champ requis depuis la sortie de la carte de la fonction Obtenir des objets multiples.
-
Enregistrez et testez votre flux en collant un seul des objets ci-dessus dans le champ field_object de la boîte de dialogue de test.
Générer un flux de récupération
Un flux de récupération sert à récupérer une liste d'objets du service. Il adresse une requête HTTP, identifie la liste d'objets dans la requête et transmet la liste au flux de traitement Champs de saisie du format ci-dessus où la liste est mise en forme au format adéquat.
-
Passez à l'onglet Flux. Cliquez sur + Nouveau flux pour créer un flux.
-
Ajoutez une carte Flux d'aide comme première carte de votre flux.
-
Cliquez sur Enregistrer et nommez le flux
Retrieve Input Fields. -
Saisissez
Retrieves a list of available fields and format the list to display as inputs on the connector cardcomme description du flux, sélectionnez l'option Enregistrer toutes les données qui transitent par le flux, et cliquez sur Enregistrer. -
Ajoutez une carte de fonction Contrôle de flux - Flux d'appel comme première carte du flux.
-
Cliquez sur Choisir le flux.
-
Générez un flux httpHelper ou sélectionnez un flux http_helper précédemment créé. Consultez Générer un flux httpHelper. La carte est automatiquement remplie avec les entrées définies dans le flux http_helper.
-
Saisissez GET comme méthode de requête.
-
Saisissez l'URL liée correspondant au point de terminaison à partir duquel vous recevrez la liste des champs.
-
Faites glisser l'objet auth depuis la carte Flux enfant vers le champ de saisie Connexion de la carte de fonction Flux d'appel.
-
Pour les sorties de la carte Flux d'appel, vous devrez définir les mêmes clés que les sorties du flux http_helper : status_code (Nombre), headers (Objet) et body (Objet).
-
Ajoutez au flux une carte de fonction Mappage de liste.
-
Faites glisser le champ corps depuis la carte de fonction Flux d'appel vers le champ liste de la carte de fonction Mapper. N'oubliez pas que cela suppose la même forme d'objet que celle fournie dans l'exemple d'objet ci-dessus.
-
Cliquez sur Choisir le flux et sélectionnez le flux Champs de saisie de liste de l'exemple précédent.
-
Sélectionnez la liste déroulante à côté de field_object et sélectionnez Élément. Cela transmettra chaque élément de field_object au flux de traitement et renverra une nouvelle liste au format adéquat.
-
Renommez la sortie de la carte de fonction Mapper à new_field_object.
-
Créez un champ sur la carte de fonction Retour de contrôle de flux en cliquant sur Cliquer ou faire glisser pour créer et étiquetez le champ résultat. Cette étiquette est nécessaire pour être reconnue par la plateforme.
ATTENTION :L'étiquette output est requise pour ce champ. Si vous affectez une autre étiquette à ce champ, elle ne sera pas reconnue par la plateforme.
-
Faites glisser le champ new_field_object depuis la carte de fonction Mapper vers le champ résultat de la carte Renvoyer.
-
Enregistrez et testez votre flux.
Appeler le flux à partir de la boîte de dialogue Entrées
Ces flux sont appelés à partir de la section Entrées de la boîte de dialogue. Voici un exemple rapide du mode d'utilisation de ces flux avec la fonctionnalité des entrées dynamiques.
-
Passez à l'onglet Flux. Cliquez sur + Nouveau flux pour créer un flux.
-
Ajoutez une carte Action comme première carte de votre flux.
-
Cliquez sur Enregistrer et nommez le flux
Create Item. -
Saisissez
Create a new item using the custom fields implemented on your instance.comme description du flux, sélectionnez l'option Enregistrer toutes les données qui transitent par le flux, et cliquez sur Enregistrer. -
Cliquez sur Ajouter des entrées sur la carte Action du connecteur.
-
Cliquez sur le menu d'actions supplémentaires à côté du bouton Ajouter un groupe et cliquez sur Ajouter des champs dynamiques.
-
Mettez à jour le champ Nom du groupe à l'aide d'une chaîne descriptive concernant les champs que vous récupérez. Les champs dynamiques sont tous contenus dans un seul groupe.
-
Cliquez sur Choisir le flux.
-
Sélectionnez le flux Récupérer les champs de saisie que vous avez déjà créé.
-
Cliquez sur Enregistrer.
-
Pour tester ces flux, accédez à l'onglet Déploiement et cliquez sur Déployer une version de test.
-
Une fois le déploiement terminé, revenez au générateur de flux en cliquant sur Accueil dans le menu supérieur.
-
Créez un flux et ajoutez l'action du connecteur au flux. Les champs de saisie doivent s'afficher sur la carte.
Étapes suivantes