Scripts Inline
Permettez aux utilisateurs ayant de l’expérience en codage d’écrire des scripts Inline qui définissent et modifient les valeurs d’entrée lors de la configuration d’une action ou d’un flux. Utilisez des scripts Inline pour modifier les valeurs d’entrée qui nécessitent des conversions de petit format, des transformations de données ou des opérations mathématiques.
Vous pouvez également modifier les valeurs d’entrée sans scripting à l’aide des fonctions de transformation. Pour obtenir la liste des options disponibles, reportez-vous à la section Fonctions de transformation.
- Entrées d’action lorsque vous configurez l’action d’un flux
- Sorties d’action lorsque vous configurez l’action pour un flux
- Entrées de logique de flux lorsque vous configurez la logique de flux d’un flux
- Sorties de logique de flux lorsque vous configurez la logique de flux d’un flux
- Entrées d’étapes lorsque vous configurez l’étape d’une action.
- Entrées de flux secondaire lorsque vous configurez le flux secondaire pour un flux.
- Sorties de flux secondaire lorsque vous configurez le flux secondaire pour un flux.
Les scripts Inline doivent renvoyer des valeurs du même type de données que celles attendues par l’entrée. Par exemple, un script en ligne pour une entrée d’enregistrement doit renvoyer un objet GlideRecord et un script en ligne pour une entrée Date doit renvoyer une valeur date-heure. Testez toujours les actions et les flux contenant des scripts inline et vérifiez qu’il n’y a pas d’erreurs d’exécution dans les détails d’exécution du flux.
Les rédacteurs de scripts doivent être familiers avec les ServiceNow AI Platform structures de tables et les types de champs. En outre, ils doivent savoir comment travailler avec les données d’enregistrement et système à l’aide de l’API ServiceNow .
Avantages
- Simplifiez la conversion ou la transformation de données sans avoir à créer d’actions ou de flux personnalisés.
- Identifiez les données d’entrée affectées par un script.
- Accès restreint aux fonctionnalités de scripting aux utilisateurs ou aux groupes qui connaissent les API disponibles ServiceNow .
Accès au script Inline
Vous pouvez accorder aux utilisateurs l’accès au scripting en ligne en leur accordant le rôle flow_designer_scripting ou l’autorisation de développement délégué Autoriser le scripting . Le rôle et l’autorisation développeur affichent un champ de bouton de script pour chaque Studio de workflow entrée.
Bouton Script
Lorsque vous autorisez un utilisateur à créer des scripts inline, Studio de workflow affiche un bouton de script en regard des entrées de flux et d’étape.
Cliquez sur le bouton Script pour ouvrir l’éditeur de script, qui remplace l’interface d’entrée standard. Entrez un script pour calculer la valeur d’entrée.
Assurez-vous que votre script inclut une instruction return avec les résultats de votre script. Par exemple, return shortDesc ; renvoie la valeur de la variable shortDesc .
Cliquer sur le bouton Réduire le script masque l’éditeur de script et affiche une version en lecture seule de l’entrée. Cliquez sur le bouton Développer le script pour afficher l’éditeur de script et vous permettre de modifier le script.
Studio de workflow objet de données
fd_data pour accéder aux données des actions et étapes précédentes. Utilisez l’objet fd_data pour remonter pas à pas vers une sortie spécifique du flux. Vous pouvez utiliser les suggestions de suggestion automatique de l’éditeur de script pour sélectionner une valeur de sortie spécifique. Par exemple, saisissez fd_data et sélectionnez _2__for_each.item dans les suggestions de suggestion automatique pour créer une référence de remontée pas à pas vers fd_data._2__for_each.item. Cette référence accède aux données à partir de la deuxième sortie du flux, qui dans cet exemple est un élément de logique de flux Pour chaque.Studio de workflow Met à jour l’objet de données à chaque fois que vous enregistrez votre action, flux ou flux secondaire. Si les suggestions de suggestion automatique n’incluent pas votre cible, essayez d’enregistrer l’action, le flux ou le flux secondaire, puis de retaper le point pour actualiser la liste des suggestions.
| Cible de données | Syntaxe de référence | Exemple |
|---|---|---|
| Entrée d'action | fd_data.entrées_action.nom-entrée_action | var task = fd_data.action_inputs.task ; |
| Variable de flux | fd_data.var_flux.nom_variable_flux | var shortDesc = fd_data.flow_var.short_description ; |
| Sortie d’une action, d’une logique de flux ou d’une étape préalables | fd_data._output-target-step-number__output-target-name | var taskRecord = fd_data._2__create_task ; |
| Entrée de flux secondaire | fd_data.subflow_inputs.nom_entrée-flux secondaire | var reqItem = fd_data.subflow_inputs.requested_item ; |
| Déclencheur | fd_data.déclencheur.déclencheur pastille de données | var incident = fd_data.trigger.current ; |
Directives générales
Suivez ces instructions générales pour créer des scripts inline réutilisables et faciles à gérer.
- Écrire un script en ligne pour une petite logique non réutilisable
- Utilisez le format de script en ligne ou modifiez les données pour des entrées et des cas d’utilisation spécifiques. Pour les conversions de données d’entrée et les opérations de formatage standard et réutilisables, sélectionnez plutôt une fonction de transformation.
- Examiner les fonctions de transformation disponibles
- Studio de workflow fournit une liste des fonctions de transformation standard pour les conversions de données et les opérations de formatage. Plutôt que d’écrire et de gérer une solution de script personnalisée, sélectionnez une fonction de transformation existante le cas échéant.
- Appeler les includes de script à partir du script inline
- Appelez un include de script à partir de votre script en ligne pour réduire la quantité de code que vous écrivez et également pour conserver le code commun dans un seul emplacement. Utilisez le constructeur de classe pour appeler votre include de script. Pour plus d’informations sur la création d’un include de script, reportez-vous à la section Script includes.
var si = new MyScriptInclude(); si.functionOne(); - Créer des actions ou des flux secondaires personnalisés pour le code réutilisable plutôt que pour le script en ligne
- Créez des actions ou des flux secondaires personnalisés pour la logique de données réutilisables ou complexes, comme la modification du type de données sources. Vous pouvez également fournir des actions ou des flux secondaires personnalisés pour les concepteurs de flux qui ne sont pas à l’aise avec le code.
- Éviter la duplication des actions et des fonctionnalités de flux
- Évitez d’écrire un script en ligne qui duplique les fonctionnalités d’action et de flux. Par exemple, plutôt que d’écrire un script en ligne pour effectuer des opérations d’enregistrement, utilisez les actions de base de référence créer et mettre à jour un enregistrement.
- Éviter les changements de type de données
- Évitez les erreurs d’exécution en vérifiant que votre script en ligne fournit des informations dans le même type de données que l’entrée ou la sortie attend.
- Créer des variables en les déclarant avec le mot clé var
- Utilisez le mot-clé
varpour déclarer des variables afin qu’elles restent dans le périmètre JavaScript approprié. Lorsque vous créez une variable en lui affectant une valeur, JavaScript peut l’attacher à l’objet global, ce qui peut entraîner la persistance des valeurs variables en dehors de la portée locale et provoquer des erreurs. - Traiter les sorties d’enregistrements avec la logique de flux Pour chaque et l’objet de données de flux
- Le script Inline ne peut accéder qu’à la sortie d’enregistrements d’une action Rechercher des enregistrements à partir de la logique de flux Pour chaque. Ajoutez une action Rechercher des enregistrements au flux pour générer la sortie des enregistrements. Ajoutez une logique de flux Pour chaque au flux afin de traiter chaque enregistrement dans la sortie des enregistrements. Créez une référence de script Inline à la logique de flux Pour chaque à l’aide des objets fd_data et item. Par exemple, cette référence suppose que la logique de flux Pour chaque est le deuxième élément de votre plan de flux
fd_data._2__for_each.item. - Utilisez des suggestions de suggestion automatique pour générer des références aux données de flux et d’action.
- Créez des références aux données de flux et d’action à l’aide de l’objet fd_data. L’éditeur de script affiche des suggestions de suggestion automatique pour les données de flux et d’action existantes lorsque vous tapez fd_data. Sélectionnez une suggestion pour créer des références aux données de flux et d’action. Remarque :Reportez-vous aux données d’enregistrement dans une logique de flux Pour chaque à l’aide de l’objet item .
- Compteurs de boucles de champ d’application
-
Les boucles de script n’ont pas un nombre maximal d’itérations, les boucles s’exécutent donc à l’infini lorsqu’il n’y a pas de condition de sortie valide.
Pour vous assurer qu’il existe une condition de sortie valide, utilisez des compteurs de boucles de portée dans les scripts inline ou dans les étapes de script d’une action. Ajoutez
vartofor (i=0 ; i< length ; i++)et getfor (var i=0 ; i< length ; i++)
Considérations relatives à la gestion des licences
Les scripts Inline qui appellent des API d’intégration sont soumis à Centre d'intégration la gestion des licences.
Éditeur de code
L’éditeur de code prend en charge les scripts inline dans l’éditeur de texte.
- Coloration de la syntaxe, indentation, numéros de ligne et création automatique d’accolades fermantes et de guillemets
- Suggestions automatiques et complétions automatiques
Conseils de modification
- Pour insérer un espace fixe n’importe où dans votre code, appuyez sur Tab.
- Pour mettre en retrait une seule ligne de code, cliquez dans l’espace blanc de début de la ligne, puis appuyez sur la touche de tabulation.
- Pour mettre en retrait une ou plusieurs lignes de code, sélectionnez le code, puis appuyez sur la touche de tabulation. Pour réduire l’indentation, appuyez sur Maj+Tab.
- Pour supprimer un onglet du début d’une ligne de code, cliquez dans la ligne et appuyez sur Maj+Tab.
- Pour déclarer des variables, utilisez le mot-clé
varafin qu’elles restent dans le périmètre JavaScript approprié.