Actions de flux de données et pagination
Envoyez des demandes REST, SOAP ou JDBC depuis Studio de workflow des API qui renvoient un flux de données de réponse supérieur à 10 Mo ou qui renvoient des résultats paginés. Analysez les données de flux en une série de sorties d’objets complexes et utilisez les pastilles de données dans d’autres actions dans un flux.
Avantages
Flux de données Les actions offrent ces avantages.
- Analysez et formatez un flux de données de réponse supérieur à 10 Mo.
- Envoyez automatiquement plusieurs demandes aux API qui paginent les résultats, le cas échéant.
- Peut être utilisé dans Centre d'intégration - Importation et pour créer une source de données.
- Permettez aux concepteurs de flux de traiter des demandes volumineuses sans codage ni configuration complexe.
- Permettre aux concepteurs de flux de traiter chaque objet d’un flux de données à l’aide de la logique de flux Pour chaque . Par exemple, vous pouvez créer une action qui importe les Flux de données données d’un document à partir d’un site tiers. Lorsque vous ajoutez l’action à un flux, Studio de workflow l’action est automatiquement ajoutée à un bloc de logique de flux Pour chaque , ce qui permet aux concepteurs de flux de créer facilement un enregistrement ServiceNow pour chaque objet du flux de données. Reportez-vous à Utiliser une Flux de données action dans un flux.
- Permettez aux concepteurs de flux de réutiliser Flux de données des actions dans plusieurs flux, en utilisant la même source de données de plusieurs façons.
Exécution d’une action de flux de données
Il existe deux façons d’exécuter une Flux de données action.
- À partir d’un flux
- Vous pouvez traiter chaque objet d’un flux de données à l’aide de la logique de flux Pour chaque . Par exemple, vous pouvez créer une action qui importe les Flux de données données d’un document à partir d’un site tiers. Lorsque vous ajoutez l’action à un flux, Studio de workflow l’action est automatiquement ajoutée à un bloc de logique de flux Pour chaque , ce qui permet aux concepteurs de flux de créer facilement un enregistrement ServiceNow pour chaque objet du flux de données. Reportez-vous à Utiliser une Flux de données action dans un flux.
- À partir d’un script
- Vous pouvez démarrer un à l’aide de Flux de données la méthode executeDataStreamAction() dans la classe FlowAPI. Pour plus d’informations, consultez FlowAPI.
Plan d’action
Flux de données Les actions suivent une structure définie. Suivez les instructions pour ajouter et supprimer des étapes du plan d’action. Vous ne pouvez pas ajouter manuellement des étapes à une Flux de données action.
Évaluation des erreurs d’action
Utilisez l’évaluation des erreurs pour intercepter les erreurs d’étape et spécifier le comportement d’erreur de chaque étape que vous ajoutez à une action de flux de données. Vous pouvez également créer vos propres conditions d’erreur en spécifiant quand une action renvoie un état d’erreur ainsi que les codes d’état et les messages qu’elle renvoie.
Prétraitement de l'action
Utilisez la catégorie de prétraitement de l’action pour récupérer les détails de connexion et d’informations d’identification ou pour exécuter un script de prétraitement.
Sélectionnez Récupérer les informations de connexion pour récupérer les détails de connexion et d’informations d’identification à utiliser dans votre action. La sélection de cette option ajoute l’étape Obtenir des informations sur la connexion comme première étape du prétraitement de l’action. Pour plus d'informations, consultez Get Connection Info step.
Sélectionnez Activer le script de prétraitement pour exécuter un script de prétraitement avant que l’action n’envoie la demande d’API initiale. Par exemple, validez les entrées d’action ou définissez des valeurs par défaut. La sélection de cette option ajoute une étape de script à l’action Flux de données . Pour en savoir plus, consultez Script step.
Le prétraitement s’exécute une fois par action, avant la première demande d’API.
Il s’agit d’un composant d’action facultatif Flux de données qui s’exécute sur l’instance ou sur un Serveur MID.
Demande
Utilisez la catégorie Demande pour configurer la façon dont l’action envoie les demandes d’API. La section Demande s’exécute une fois par page de résultats. Les composants de demande fournissent ces options de configuration.
- Étape de configuration de la pagination
Demande résultats par lots. Une fois qu’une page de données est traitée, l’action Flux de données exécute à nouveau la section de demande pour renvoyer l’ensemble de résultats suivant. Utilisez l’étape de configuration de la pagination pour configurer les options de pagination requises par l’API. Configurez manuellement l’étape de configuration de la pagination ou sélectionnez un modèle prédéfini pour appliquer des configurations courantes. Par exemple, appliquez le modèle Limite/Décalage pour spécifier le nombre d’éléments que vous souhaitez renvoyer par page (limite) et le numéro de départ pour le premier élément (décalage). Après l’application d’un modèle, mettez à jour les valeurs pour vous assurer que la configuration est conforme aux exigences de l’API.
Remarque :À des fins de gestion des licences, chaque demande compte pour une transaction, y compris chaque demande pour la page de résultats suivante.La valeur de la variable
getNextPageréservée en lecture seule détermine s’il faut demander une autre page de résultats. Tant que la variablegetNextPageest définie sur vrai et que la page précédente contient des données, l’action continue d’envoyer des demandes pour la page suivante.Remarque :Vous devez définir explicitement la valeur sur true dans le script, sinon elle sera définie par défaut sur false.Il s’agit d’un composant de demande facultatif qui s’exécute uniquement sur l’instance.Remarque :La pagination ne s’applique pas à l’étape JDBC.- Étape Script
Exécutez un script avant chaque demande pour la page de résultats suivante. Utilisez ce script pour la validation et la transformation des données lors de l’appel d’une API paginée. Par exemple, générez une charge utile JSON pour la demande de page suivante. La sélection de cette option ajoute une étape de script à l’action Flux de données . Pour en savoir plus, consultez Script step.
Il s’agit d’un composant de demande facultatif qui s’exécute sur l’instance ou sur un Serveur MID.
- Étape REST ou SOAP
Envoyez une demande REST ou SOAP à une API tierce. Sélectionnez un format de données pour ajouter une étape associée à l’action Flux de données . Pour plus d'informations, consultez Étape REST et Étape SOAP.
Il s’agit d’un composant de demande obligatoire qui s’exécute sur l’instance ou sur un Serveur MID.
- Étape JDBC
Envoyez une demande JDBC à une API tierce. Utilisez le script de transformation pour formater les données et ajouter une étape associée à l’action Flux de données . Pour plus d'informations, consultez Étape JDBC et Tester l’étape JDBC. Toutes les données sont récupérées et la pagination n’est pas nécessaire.
Il s’agit d’un composant de demande obligatoire qui s’exécute sur un Serveur MID.
Analyse dans les étapes REST et SOAP
- Étape REST ou SOAP Sorties de corps de réponse, de flux ou de message d’erreur
- Sorties de l’étape de séparation
Pour plus d’informations sur les données complexes, consultez Données complexes. Les composants d’analyse fournissent ces options de configuration.
- Étape de séparation
Identifier Le nœud parent dans le flux de réponses à mapper à un objet complexe. Par exemple, identifiez un élément utilisateur dans une charge utile XML pour créer un objet complexe pour chaque utilisateur dans le flux de réponse.
Sélectionnez un type de séparateur pour identifier et séparer les éléments répétés dans un flux de données XML ou JSON.
- JSON : identifie les objets à partir d’un flux de données JSON. Utilisez une expression JSONPath pour identifier un tableau JSON contenant des données répétées.
- XML : identifier des objets à partir d’un flux de données XML. Utilisez une expression XPath pour identifier un élément XML contenant des données répétées.
Il s’agit d’un composant d’analyse obligatoire qui ne s’exécute que sur l’instance.
- Étape de l'analyseur de script
Utilisation JavaScript et ServiceNow API pour mapper les éléments du flux de réponse à une sortie d’objet complexe représentée par l’objet global
targetObject. Par exemple, mappez les éléments d’enregistrement d’incident identifiés à l’étape de séparation à un objet complexe contenant des champs d’incident. Si le flux de données inclut des frères et sœurs de l’élément identifié à l’étape de séparation que vous ne souhaitez pas mapper à un objet complexe, incluez des conditions pour exclure ces éléments. Vous pouvez ignorer des éléments dans le flux en ajoutantoutputs.state = « SKIP »partout où cela est nécessaire dans la section Script de l’étape Analyseur de script.Il s’agit d’un composant d’analyse obligatoire qui ne s’exécute que sur l’instance.
Générer la phase d’analyse pour les actions de flux de données basées sur REST
Vous pouvez configurer automatiquement l’étape de séparation, l’étape de l’analyseur de script et les sorties pour les actions de flux de données basées sur REST. La fonctionnalité Tester l’étape REST dans les actions de flux de données basées sur REST exécute une demande au point de terminaison REST configuré, analyse la charge utile de la réponse et configure automatiquement les composants d’analyse et de sortie.
Lorsqu’une étape REST est ajoutée à la section Requête d’une action de flux de données, vous pouvez utiliser le bouton Tester l’étape REST de l’étape REST pour générer automatiquement la section Analyse et les sorties. La section Analyse comprend l’étape de séparation et l’étape d’analyse. La génération automatique place également la sortie d’objets complexes dans la section Sorties.
Étape Transformer le script dans JDBC
L’action du flux de données JDBC ne nécessite pas de pagination. De plus, les étapes de séparation et d’analyseur ne sont pas nécessaires.
Sorties de flux de données aux étapes SOAP et REST
Lors de la conception d’une Flux de données action, vous devez créer une sortie unique de type Objet ou Objet dynamique. L’étape Analyseur de script mappe les éléments du flux à cet objet à l’aide de l’objet global targetObject .
Lors de l’exécution, le système divise et analyse le flux de données de réponse en fonction de la Flux de données configuration. Chaque élément du flux est mappé à la structure d’objets complexes définie par l’étape de l’analyseur de script et la sortie de l’objet, ce qui donne une grande série d’objets complexes. Pour plus d’informations sur les données complexes, consultez Données complexes.
Sorties de flux de données dans l’étape JDBC
- Vous pouvez uniquement récupérer des données et ne pouvez pas mettre à jour ou supprimer des enregistrements à l’aide de l’action de flux de données JDBC.
- Les champs Ligne maximale et Taille maximale de la charge utile (Ko) disponibles à l’étape JDBC ne sont pas disponibles dans l’action de flux de données JDBC.
Détails d’exécution dans les étapes REST et SOAP
Affichez les résultats de configuration et d’exécution pour chaque élément traité par une Flux de données action. Sélectionnez un numéro d’enregistrement pour afficher les détails de sa configuration et de son exécution. Par défaut, les détails d’exécution incluent les demandes pour les 1 000 derniers éléments. Pour modifier le nombre d’éléments dans les détails de l’exécution, mettez à jour la com.snc.process_flow.reporting.datastream.item.lastn propriété système.
- Résumé du flux de données
Affichez une vue d’ensemble de l’exécution qui inclut ces informations.
- Nombre de pages : nombre de pages renvoyées par une API paginée.
- Nombre total d’éléments : nombre d’éléments dans le flux de réponses mappés aux sorties d’objets complexes.
- Nombre d’erreurs : nombre d’erreurs rencontrées.
- Détails de page
Affichez les données d’exécution de chaque étape de l’action Flux de données . Sélectionnez une page pour afficher les détails d’exécution de chaque demande à une API paginée. Par défaut, les détails d’exécution incluent les demandes pour les cinq dernières pages. Pour modifier le nombre de demandes dans les détails de l’exécution, mettez à jour la com.snc.process_flow.page.reporting.lastn propriété système. Définissez la valeur sur 0 pour supprimer des pages des détails de l’exécution et sur -1 pour inclure toutes les pages.
Remarque :L’inclusion de toutes les pages peut affecter les performances et n’est pas recommandée.
Détails d’exécution dans l’étape JDBC
La construction du schéma d’objets complexes en sortie n’est pas nécessaire pour l’action de flux de données JDBC. Vous pouvez tester la requête et voir le résultat de la requête. Consultez Tester l’étape JDBC pour plus d'informations. Configurez les propriétés mid.jdbc.datastream.max.record.size et mid.jdbc.datastream.fail.when.attachement.limit.exceeded récupérez Serveur MID les données selon vos besoins. Consultez les propriétés du serveur MID pour plus d’informations.