ThingWorx Flow > Création d'actions personnalisées et gestion des actions personnalisées > Création d'une action personnalisée dans ThingWorx Flow 8.4.x
Création d'une action personnalisée dans ThingWorx Flow 8.4.x
Créez vos actions personnalisées sur la page des paramètres de ThingWorx Flow ou, dans un processus, depuis l'onglet Personnalisé du panneau Actions.
Pour créer une action personnalisée, procédez comme suit :
1. Pour ajouter une action personnalisée dans ThingWorx Flow, effectuez l'une des opérations suivantes :
Sur la page des paramètres de ThingWorx Flow, accédez à ACTIONS PERSONNALISEES, puis cliquez sur .
Dans l'éditeur de processus, sur le panneau ACTIONS, accédez à l'onglet Personnalisé, puis cliquez sur .
La fenêtre Action personnalisée s'ouvre.
2. Dans le champ Etiquette, donnez un nom approprié à votre action. Cela est nécessaire.
3. Dans l'éditeur de code, modifiez le modèle prérempli pour écrire le code de l'action. Pour en savoir plus sur la définition des différents éléments d'une action, consultez la section Définition d'une action personnalisée.
4. Cliquez sur COMPILER. Si le code contient des erreurs, celles-ci sont mises en surbrillance dans l'éditeur de code. Une fois la compilation effectuée, tous les champs d'entrée définis dans la section d'entrée de l'action personnalisée apparaissent dans le volet de gauche.
5. Cliquez sur ENREGISTRER. L'action est ajoutée à la liste des actions disponibles dans l'onglet Personnalisé du panneau Actions, et vous pouvez la faire glisser jusqu'au canevas pour utilisation dans votre processus.
Définition d'une action personnalisée
Une action personnalisée est une fonction JavaScript Node.js qui définit l'action. Lorsque vous créez une action personnalisée, un modèle de code prérempli vous est proposé dans l'éditeur de code. Utilisez ce modèle comme point de départ pour créer votre action personnalisée.
Number
Description
1
Utilisez la fonction require() au début du code pour importer les modules Node.js à utiliser dans l'action personnalisée. Dans l'exemple de code, l'action importe le module request pour effectuer des appels HTTP simples vers des systèmes tiers.
* 
Pour éviter toute utilisation inappropriée, seuls les modules Node.js suivants peuvent être importés en vue d'une utilisation dans les actions personnalisées :
assert, buffer, crypto, events, http, https, lodash, path, punycode, querystring, request, soap, string_decoder, url, ws, xml2js, zlib
2
this.id : attribut utilisé comme identificateur unique de l'action personnalisée.
3
this.label : attribut spécifiant le nom de l'action personnalisée.
* 
Si vous utilisez this.label pour définir l'intitulé de l'action, cet intitulé remplace automatiquement l'étiquette de l'action que vous aviez définie dans la fenêtre d'action personnalisée.
4
this.input : attribut JSON qui définit les champs d'entrée à afficher lors de la configuration de l'action dans un processus. Il existe trois clés JSON pour lesquelles vous devez affecter des valeurs :
title : (obligatoire) utilisé en interne en tant qu'identificateur.
type : (obligatoire) utilisé en interne. Sa valeur doit toujours être définie sur object et ne doit pas être modifiée.
properties : (obligatoire) attribut JSON définissant les champs d'entrée et les conditions de validation, le cas échéant, qui apparaissent pour l'action. Chaque champ d'entrée doit disposer d'une clé unique (par exemple, first_name) et définir des valeurs pour les éléments suivants :
title : (obligatoire) étiquette qui s'affiche pour le champ, Prénom par exemple.
type : (obligatoire) type du champ. Types valides : string, object, array et any.
description : (facultatif) message qui apparaît sous la forme d'une info-bulle.
minLength : (facultatif) spécifie le nombre minimal de caractères à spécifier.
* 
Pour rendre un champ obligatoire, définissez la valeur de minLength sur 1.
5
this.output : attribut JSON qui définit les champs de sortie que l'action renvoie et rend disponibles dans le reste du processus. Il existe trois clés JSON pour lesquelles vous devez affecter des valeurs :
title : (obligatoire) utilisé en interne en tant qu'identificateur.
type : (obligatoire) utilisé en interne. Sa valeur doit toujours être définie sur object et ne doit pas être modifiée.
properties : (obligatoire) attribut JSON qui définit les champs de sortie. Chaque champ de sortie doit disposer d'une clé unique (par exemple, status) et définir des valeurs pour les éléments suivants :
title : (obligatoire) étiquette qui s'affiche pour le champ, statut par exemple.
type : (obligatoire) type du champ. Types valides : string, object, array et any.
6
this.execute : fonction qui définit la logique de programme qui s'exécute lorsque l'action est exécutée dans un processus. La fonction doit définir les deux paramètres de fonction suivants :
input : objet JSON qui contient les valeurs des paramètres d'entrée au moment de l'exécution du processus. Les valeurs peuvent être référencées à l'aide des clés des champs d'entrée comme cela a été défini dans l'attribut this.input de l'action.
output : fonction de rappel qui doit être appelée pour transmettre les valeurs de sortie au processus. Cela indique que l'action est terminée. La fonction se présente sous la forme callback(err,output) :
err : utilisé pour signaler toute erreur qui survient dans le processus. Si aucune erreur ne se produit, null doit être utilisé.
output : objet JSON contenant des valeurs pour chacune des clés définies dans l'attribut this.output de l'action.
* 
Si vous migrez de ThingWorx Flow 8.4.x vers ThingWorx Flow 8.5, vos actions personnalisées créées dans ThingWorx Flow 8.4.x continueront à fonctionner dans ThingWorx Flow 8.5. Vous pourrez ajouter la prise en charge de la localisation des champs d'entrée et de sortie de l'action personnalisée. Toutefois, vous ne pourrez pas localiser l'étiquette de l'action personnalisée créée dans ThingWorx Flow 8.4.x.