Vue d’ensemble de l’architecture

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 15 minutes de lecture
  • Découvrez comment Concepteur de flux fonctionne dans le Now Platform pour activer, déclencher et traiter les flux et les actions.

    Un flux se compose d’un déclencheur et d’une ou plusieurs actions. Le déclencheur spécifie quand démarrer le flux, qui peut être basé sur les enregistrements, les calendriers ou les applications. Les déclencheurs basés sur les enregistrements exécutent un flux après la création, la mise à jour ou la suppression d’un enregistrement. Le flux peut utiliser l’enregistrement de déclenchement comme entrée pour les actions. Les déclencheurs basés sur des calendriers exécutent un flux à la date et à l’heure spécifiées. Le flux peut utiliser le temps d’exécution comme entrée pour les actions. Les déclencheurs d’application sont ajoutés lorsque l’application associée est activée. Par exemple, le MetricBase déclencheur est présent lorsque l’application MetricBase est active.

    Traitement du flux

    Le traitement du flux se produit dans cette séquence.
    1. Lorsque les conditions de déclenchement du flux se produisent ou qu’une API appelle directement le flux, le système crée une entrée dans la file d’attente des événements pour démarrer le flux.
    2. Le planificateur traite l’événement et démarre le flux en arrière-plan.
    3. Le système élabore un plan de processus à partir du flux
    4. Le système exécute le plan de processus en utilisant l'enregistrement qui a déclenché le flux
    5. Le système stocke les détails de l’exécution dans un enregistrement de contexte.

    Diagramme de traitement de flux

    1. Déclencheurs de flux de processus et appels d’API
    Chaque fois que les conditions de déclenchement sont remplies ou qu’une API appelle directement un flux, crée Concepteur de flux une entrée d’événement. Les processus système sont déclenchés après les opérations de base de données. Pour en savoir plus, consultez Ordre d’exécution des scripts et des moteurs. En règle générale, le mode de fonctionnement des règles métier et l’ordre d’opération du moteur de workflow qui s’exécutent de façon synchrone s’exécutent avant un flux déclenché.
    2. Traiter les événements dans la file d’attente
    Chaque événement de flux contient une référence au flux à démarrer et une référence à l’enregistrement de déclenchement ou à la durée d’exécution. Le système traite ces événements à l’aide d’événements dans lesquels un planificateur examine périodiquement les éléments actuels de la file d’attente d’événements dans l’ordre dans lequel ils ont été ajoutés. Selon les autres événements présents dans la file d’attente, il se peut que le système ne démarre pas immédiatement un flux. Les concepteurs de flux doivent s’attendre à un certain temps de latence entre le moment où les conditions de déclenchement se produisent et le moment où le flux commence réellement.
    3. Construire le plan de processus

    Lorsqu’il Concepteur de flux extrait un événement de la file d’attente, il génère un plan de processus pour exécuter réellement le flux. Un plan de processus contient toutes les informations nécessaires à l’exécution d’un flux, telles que la séquence d’actions ou de flux secondaires publiés, les valeurs d’entrée pour chaque flux secondaire ou action, les étapes d’action à exécuter pour chaque action et les données fournies par le déclencheur ou la sortie de flux secondaire.

    Concepteur de flux utilise un schéma de compilation juste-à-temps pour s’assurer que les plans de processus contiennent les derniers changements apportés aux flux, aux flux secondaires et aux actions. Si aucun changement n’est détecté, Concepteur de flux utilise une copie mise en cache du plan de processus. Sinon, il crée un nouveau plan de processus.

    En vérifiant automatiquement les flux, les flux secondaires et les actions mis à jour avec les plans de processus, Concepteur de flux vous pouvez appliquer les changements des ensembles de mises à jour et des mises à niveau sans avoir à modifier les flux actuels. Si vous déplacez des actions publiées vers une instance cible, chaque flux qui utilise l’action publiée sera automatiquement mis à jour lors de sa prochaine exécution.

    Avertissement :
    Si vous modifiez des flux secondaires ou des actions utilisés dans des flux activés, ne modifiez pas les entrées et sorties utilisées dans le flux secondaire ou l’action. La modification des entrées et des sorties peut entraîner des erreurs lors du prochain déclenchement du flux activé, car il n’a pas été configuré pour utiliser les nouvelles entrées et sorties. Les flux en cours d’exécution ne sont pas affectés par les changements apportés aux entrées ou aux sorties, car le flux utilise les flux secondaires et les actions compilés à partir du plan de processus.
    4. Exécuter le plan de processus

    Concepteur de flux Exécute le plan de processus en tant qu’utilisateur spécifié dans les propriétés du flux et l’exécute dans le périmètre de l’application Flux.

    Lors de l’exécution d’un flux avec un déclencheur basé sur les enregistrements, Concepteur de flux stocke l’enregistrement déclencheur en mémoire en tant qu’instance représentée dans l’interface sous la forme d’une pastille de données.

    Chaque fois que vous ajoutez une action à un flux, Flow Designer ajoute une pastille de données pour stocker ses résultats. Le nom de la pastille de données indique sa séquence dans le flux et son type de données. Les concepteurs de flux utilisent des pastilles de données de résultat d’action pour fournir des entrées à d’autres flux, actions ou flux secondaires. Les concepteurs de flux peuvent utiliser la valeur de séquence dans le nom de la pastille de données pour s’assurer qu’ils sélectionnent la pastille de données correcte comme valeur d’entrée. Lorsqu’un flux exécute une action, il génère la valeur d’exécution de la pastille de données au fur et à mesure qu’il est utilisé.

    5. Stocker les détails de l’exécution du flux

    Concepteur de flux Stocke les détails d’exécution du flux dans un enregistrement de contexte de flux qui contient ces informations.

    • État du résultat du flux
    • Durée d’exécution du flux
    • Messages du journal de flux
    • Valeurs de configuration du flux et d’exécution
    Chaque fois qu’un flux s’exécute, Concepteur de flux ajoute une entrée à la liste Exécutions de flux . Chaque entrée possède son propre enregistrement de contexte et sa propre page de détails d’exécution.
    Remarque :
    Un contexte d’exécution de flux s’exécute dans un seul thread. Toutefois, il peut arriver que vous souhaitiez exécuter des flux dans des contextes distincts, même si cela peut consommer davantage de ressources de votre instance. Pour exécuter des flux secondaires dans des contextes de flux distincts au sein d’un même flux, consultez la section Flux dynamiques.

    Un flux peut avoir l’un de ces états de résultat.

    État Description
    Terminé Le flux s’est terminé avec succès.
    En cours Le flux est en cours d’exécution. Par défaut, une règle de quota de transaction empêche les flux de s’exécuter pendant plus d’une heure.
    En attente Le flux attend qu’un autre événement se produise. Par exemple, un utilisateur doit mettre à jour une tâche ou une approbation, ou un enregistrement doit atteindre un état spécifique. Lorsqu’il est à l’état En attente, le flux est suspendu et sérialisé dans un enregistrement de contexte.
    Annulé Le flux a été annulé par un utilisateur.
    Erreur Le flux a rencontré une erreur et a cessé de s’exécuter. Par exemple, il manque une valeur d’entrée dans une action ou une règle de transaction de quota a arrêté le flux.

    Cycle de vie du flux, du flux secondaire et de l’action

    Concepteur de flux utilise le flux ou l’état de l’action pour décrire l’état actuel des changements de configuration.

    État et état d’activation du flux et du flux secondaire

    Le champ État indique s’il existe un plan de processus associé au flux ou au flux secondaire.

    État du flux Description
    Modifié Indique que des changements non enregistrés ont été apportés à un flux ou à un flux secondaire. Les flux ou flux secondaires modifiés n’ont pas été enregistrés.
    Brouillon Indique que des changements enregistrés dans un flux ou un flux secondaire n’ont pas été stockés dans un plan de processus. Les flux de brouillon ont été enregistrés mais pas activés. Les flux secondaires à l’état de brouillon ont été enregistrés, mais pas publiés.
    Publié Indique qu’il existe un plan de processus stocké pour le flux ou le flux secondaire. Les flux publiés ont été activés ou désactivés.

    Le champ Actif indique si le système exécute un flux ou un flux secondaire.

    Actifs Description
    Vrai Indique que le flux ou le flux secondaire est actif et s’exécute lorsqu’il est déclenché ou appelé. Le flux a été activé ou le flux secondaire a été publié. Les flux actifs s’exécutent lorsque les conditions de déclenchement sont remplies ou lorsqu’ils sont appelés. Les flux secondaires actifs s’exécutent lorsqu’ils sont appelés.
    Faux Indique que le flux est inactif et ne s’exécute pas lorsqu’il est déclenché ou appelé. Un flux inactif n’a jamais été activé ou a été désactivé. Un flux secondaire inactif n’a jamais été publié.
    Lorsque vous travaillez avec des flux, vous pouvez :
    • Enregistrer un flux : crée un brouillon du flux.
    • Activer un flux : active le déclencheur de flux et transforme le flux en plan de processus.
    • Désactiver un flux : désactive le déclencheur de flux et empêche les nouvelles exécutions de flux. Les flux en cours d’exécution continuent de s’exécuter.

    Lorsque vous travaillez avec des flux secondaires, vous pouvez :

    • Enregistrer un flux secondaire : crée un brouillon du flux secondaire. Si le flux secondaire est modifié après sa publication, il passe à l’état de brouillon. Tous les flux actifs qui utilisent le flux secondaire exécutent uniquement le flux secondaire publié.
    • Publier un flux secondaire : vous permet d’activer un flux contenant le flux secondaire. La publication ajoute le flux secondaire à la liste des flux secondaires disponibles dans un flux.

    Diagramme de cycle de vie du flux
    État de l’action

    L’interface Concepteur d'action n’affiche pas l’état de configuration des actions. Pour afficher l’état de l’action, accédez à la table Types d’actions [sys_hub_action_type_definition] et affichez le champ État de brouillon .

    État du brouillon d’action Description
    Brouillon Indique que des changements apportés à une action n’ont pas été publiés. Les actions en mode brouillon ne sont disponibles pour les flux que lorsque l’option Afficher les actions en mode brouillon est activée. Vous ne pouvez pas activer un flux contenant des actions de brouillon.
    Publié Indique que l’action a été publiée. Les actions publiées sont disponibles pour tous les flux et permettent d’activer les flux.

    Lorsque vous travaillez avec des actions, vous pouvez :

    • Enregistrer une action : crée un brouillon de l’action qui n’est disponible que pour les flux lorsque Afficher les actions de brouillon est activé. Si l’action est modifiée après avoir été publiée, l’action passe à l’état Brouillon. Tous les flux actifs qui utilisent l’action exécutent uniquement l’action publiée.
    • Publier une action : vous permet d’activer un flux contenant l’action. La publication ajoute l’action à la liste des actions disponibles dans un flux. Seules les actions à l’état Publié s’exécutent pendant l’exécution du flux.

    Diagramme de cycle de vie de l’action

    Développement d'applications

    Lors de la conception d’une action ou d’un flux, utilisez ces considérations de conception comme guide.

    Utilisez les options de développement d’applications standard Now Platform pour créer, gérer, protéger et déployer Concepteur de flux du contenu. Les concepteurs de flux et d’actions exécutent généralement les tâches de développement d’application suivantes :
    • Créez une application personnalisée pour stocker les flux et les actions.
    • Définissez des autorisations d’application pour partager ou restreindre l’accès aux données d’application.
    • Accorder aux développeurs d’applications l’accès à Concepteur de flux.
    • Publiez des applications personnalisées dans le référentiel d’applications pour déployer des flux et des actions sur d’autres instances.

    Évitement des collisions

    Concepteur de flux Prend en charge l’évitement des collisions. L’évitement des collisions empêche un utilisateur de modifier un objet en cours de modification dans un ensemble de mises à jour différent. Par exemple, l’utilisateur A modifie un flux dans un ensemble de mises à jour particulier. L’utilisateur B, qui travaille dans un ensemble de mises à jour différent, tente d’ouvrir le même flux. Dans ce cas, le système détecte une collision et alerte l’utilisateur B. L’utilisateur B peut alors choisir d’annuler ou de continuer. Si vous sélectionnez Annuler, l’utilisateur B revient à la page d’accueil Concepteur de flux . Si vous sélectionnez Continuer , le flux s’ouvre en mode lecture seule.

    Pour que l’évitement des collisions fonctionne, les deux utilisateurs doivent se trouver dans le même périmètre de l’application, et il doit s’agir d’un périmètre de l’application autre que global. En outre, l’application en cours de modification doit être liée au contrôle de source. Pour plus d’informations, reportez-vous à la section Prévention des collisions.

    Sécurité

    Contrôler l’accès aux processus et aux Concepteur de flux enregistrements.

    • Les administrateurs peuvent accorder l’accès aux Concepteur de flux utilisateurs en créant une application et en affectant des utilisateurs en tant que développeurs avec l’autorisation Concepteur de flux de développement déléguée . Le développement délégué permet aux administrateurs de contrôler si les concepteurs de flux peuvent accéder à des fonctionnalités normalement réservées aux utilisateurs administrateurs, telles que l’affectation de rôles d’utilisateur, la création de contrôles d’accès ou la création de scripts. Pour plus d’informations, consultez Autorisations du développeur.
    • Les administrateurs peuvent accorder l’accès en Concepteur de flux affectant directement aux utilisateurs le rôle d’utilisateur flow_designer, qui inclut le rôle permettant d’afficher les détails de l’exécution du flux.
      Avertissement :
      Accorder directement à un utilisateur le rôle flow_designer équivaut à donner à l’utilisateur le rôle administrateur, car Concepteur de flux il peut exécuter des flux en tant qu’utilisateur système, qui a accès à toutes les tables et à toutes les opérations de base de données.
    • Les concepteurs de flux et d’actions peuvent utiliser les paramètres d’accès standard à l’application pour gérer la façon dont leur contenu interagit avec d’autres applications.

    Limite d’action

    Par défaut, les flux ne peuvent pas comporter plus de 50 actions. Pour modifier le comportement par défaut, augmentez la valeur de la sn_flow_designer.max_actions propriété système. Toutefois, tenez compte de l’impact qu’un flux volumineux peut avoir sur les performances de votre instance.

    Options de déclenchement pour les mises à jour d’enregistrements

    Les concepteurs de flux peuvent spécifier la fréquence à laquelle un flux peut mettre à jour un enregistrement particulier à l’aide de l’option Exécuter le déclencheur . Utilisez l’option Une fois si vous souhaitez qu’un flux ne s’exécute qu’une seule fois. La première fois qu’un enregistrement est mis à jour, le flux s’exécute, mais les mises à jour ultérieures ne déclenchent pas le flux. Utilisez l’option Toujours lorsque vous souhaitez que le flux s’exécute chaque fois qu’un enregistrement est mis à jour et qu’aucun flux actif n’est déjà en cours d’exécution pour celui-ci. Par exemple, vous pouvez définir un flux qui affecte un enregistrement d’incident à exécuter une seule fois, et un flux qui informe la liste de surveillance des incidents de toujours s’exécuter. Le champ Exécuter le déclencheur n’est disponible que pour ces types de déclencheurs.
    • Créé ou mis à jour
    • Mises à jour

    Prévention de la récursivité directe et limite de récursivité indirecte

    Pour éviter les pannes d’instance et la consommation de ressources système, Concepteur de flux ignore toute demande de démarrage d’un flux ou d’un flux secondaire résultant d’une récursivité directe. La récursivité directe se produit dans ces conditions.
    • Une action appelle le même flux qu’elle en fait partie. Par exemple, une étape de script effectue un appel d’API à un flux.
    • Une action ou un flux secondaire produit un résultat correspondant au déclencheur de flux. Par exemple, un flux qui s’exécute lorsqu’un enregistrement d’incident est mis à jour contient une action de mise à jour d’enregistrement qui met à jour un enregistrement d’incident.
    Concepteur de flux Limite également le nombre de fois qu’un flux peut être démarré à partir d’une récursivité indirecte. La récursivité indirecte se produit dans ces conditions.
    • Le même flux est appelé plusieurs fois dans une chaîne d’appels de flux secondaire. Par exemple, si le flux secondaire A appelle le flux secondaire B et que le flux secondaire B appelle le flux secondaire A, l’appel de l’un ou l’autre flux secondaire produit une récursivité indirecte.
    • Le même flux est déclenché plusieurs fois dans une chaîne de flux secondaires. Par exemple, supposons qu’il existe deux flux déclenchés par la création d’enregistrements. Supposons que la création de l’enregistrement A déclenche le flux A et crée également l’enregistrement B. En outre, la création de l’enregistrement B déclenche le flux B et crée l’enregistrement A. La création de l’un ou l’autre type d’enregistrement produit une récursivité indirecte.

    Par défaut, le système arrête de déclencher des exécutions de flux lorsque le nombre d’exécutions atteint la limite de récursivité indirecte de trois exécutions. Les administrateurs peuvent modifier la limite en définissant la propriété com.glide.hub.flow_engine.indirect_recursion_limit système sur une valeur entière supérieure ou égale à un. Le système ignore toute valeur de propriété inférieure à un et utilise à la place une limite de 1. Réfléchissez à l’impact sur les performances que l’augmentation de la limite de récursivité indirecte peut avoir sur votre instance.

    Remarque :
    Par défaut, une règle de quota de transaction empêche les flux de s’exécuter pendant plus d’une heure.

    Tests de flux et d’action

    Le test d’un flux contourne les conditions de déclenchement et l’exécute immédiatement. Pour tester un flux avec un déclencheur basé sur les enregistrements, vous devez sélectionner un enregistrement spécifique qui servira de déclencheur. Les concepteurs de flux doivent générer des exemples d’enregistrements appropriés avant le test. Pour en savoir plus sur le test d’un flux, reportez-vous à Tester un flux.

    Pendant la phase de conception, vous pouvez tester des actions non publiées en définissant Afficher les actions de brouillon sur le flux. Si vous testez avec des actions brouillon, suivez ces directives.

    • Concevoir des flux et des actions sur une instance de non-production. Déployez uniquement des flux actifs et fonctionnels sur votre instance de production.
    • Laissez l’option Afficher les actions en mode brouillon définie sur vrai jusqu’à ce que votre action en mode brouillon soit dans un état final. Une fois la finalisation terminée, publiez chaque action, définissez Afficher les actions de brouillon sur faux et activez le flux.
      Avertissement :
      Désactiver l’option Afficher les actions en mode brouillon avant de publier vos actions supprime toutes les actions en mode brouillon de votre flux.
    • Tout changement que vous apportez à un flux actif ou à une action publiée entraîne son retour à l’état Brouillon. Si le flux est déclenché, le système exécute uniquement le flux activé et les actions publiées, et les détails d’exécution du flux affichent uniquement ce qui a été exécuté. Lorsqu’il existe un brouillon d’un flux actif, le déclencheur et les actions répertoriés dans les détails d’exécution du flux peuvent être différents de ceux répertoriés dans le flux de brouillon.