Logique des workflows

La séquence de traitement des tâches dépend de l'ordre d'insertion des tâches dans un workflow et des connecteurs qui les lient. Toutefois, si vous êtes développeur et concepteur d'objets, vous pouvez définir des propriétés de tâches pour changer cette séquence.

Les graphiques de cette rubrique illustrent les processus internes auxquels sont soumises les tâches lorsqu'elles font partie d'un workflow. Dans les graphiques ci-dessous, les traitements des Condition ELSE en vert indiquent que les sous-traitements démarrent. Les sections Description situées après les graphiques détaillent les processus. Elles comportent également des liens vers les rubriques connexes de la documentation.

Cette rubrique contient les sujets suivants :

Traitements avant le démarrage d'une tâche

Description

  1. Tous les prédécesseurs ont-ils été traités ?

    Une tâche attend toujours que tous ses prédécesseurs directs aient atteint le statut attendu, tel que Ignoré ou Terminé. Son statut est En attente de prédécesseur s'ils ne sont pas encore terminés.

  2. Un point d'arrêt est-il défini dans la tâche ?

    Tous les prédécesseurs sont terminés. Le système vérifie si un point d'arrêt a été défini pour la tâche.

    Les points d'arrêt provoquent l'arrêt du workflow sur le point en question. Le statut du workflow passe à BLOQUÉ. Les points d'arrêt peuvent être annulés dans le moniteur de workflows.

    Où les définir : Dans l'Onglet Général > Définir un point d'arrêt

  3. Des conditions calendaires sont-elles affectées à la tâche ?

    En l'absence de point d'arrêt ou si celui-ci a été annulé, le système vérifie si des conditions calendaires ont été affectées à la tâche.

    Vous pouvez spécifier que des tâches ne soient exécutées que certains jours. Ces jours sont définis dans les objets Événement de calendrier. Si la condition calendaire définie ne s'applique pas, la tâche ne s'exécute pas et se termine avec le statut ENDED_INACTIVE.

    Où la définir : Onglet Calendrier

  4. Une heure de début au plus tôt est-elle définie ?

    En l'absence de conditions calendaires ou si celles-ci ne s'appliquent pas, le système vérifie l'heure de début au plus tôt.

    Si une tâche ne doit pas démarrer avant une heure particulière, vous pouvez définir son heure de début au plus tôt. Le statut de la tâche est En attente d'heure de début.

    Où la définir : Heure de début au plus tôt dans l'Heure & dépendances

  5. La tâche est-elle définie sur Active ?

    Une tâche ajoutée à un workflow est Active par défaut. Cela signifie que la tâche est exécutée dès que c'est à son tour de l'être. Vous pouvez la désactiver si vous souhaitez que le workflow s'arrête sur cette tâche.

    Où le définir : Dans la section Paramètres de l'Onglet Général

  6. Des préconditions sont-elles définies pour la tâche ?

    Si la tâche est définie à Active, le système vérifie si elle a des préconditions.

    Vous pouvez définir des conditions et actions spécifiques devant être traitées avant le démarrage des tâches du workflow. Ces traitements peuvent également affecter l'exécution de la tâche. La vérification est effectuée dans l'intervalle de temps spécifié dans la variable UC_SYSTEM_SETTINGS - Paramètres système, définir CONDITION_CHECK_INTERVAL. Ce traitement se termine lorsqu'une instruction finale ou l'heure de début au plus tard est atteinte.

    Si aucune précondition n'est définie, cette étape est ignorée.

    Les workflows ForEach vous permettent de définir si les préconditions de chaque tâche ne sont à évaluer qu'une seule fois ou de manière répétée à chaque itération de boucle. Voir Workflows FOREACH.

    Où les définir : Onglet Préconditions, voir Onglets Précondition et Postcondition

  7. Les statuts des prédécesseurs sont-ils définis dans la tâche ?

    Si la tâche n'a pas de préconditions ou si celles-ci ont déjà été traitées, le système vérifie le statut avec lequel les prédécesseurs se sont terminés.

    Vous pouvez définir le statut que les prédécesseurs doivent avoir pour que la tâche démarre. Vous pouvez également spécifier la manière dont la tâche et le workflow doivent être traités si l'une ou toutes les conditions de dépendance ne sont pas remplies.

    Où le définir : Section Dépendances de l'onglet Heure & dépendances

  8. Une heure de début ou de fin au plus tard est-elle définie ?

    Si le statut des prédécesseurs correspond ou si aucun statut particulier n'a été défini, le système vérifie l'heure de début ou de fin au plus tard définie pour la tâche.

    La tâche se termine avec le statut ENDED_TIMEOUT si cette heure est dépassée. Il est également possible de définir une condition Else, comme celle décrite à l'étape précédente.

    Au démarrage de la tâche, sa durée moyenne estimée (ERT) peut servir de base pour calculer son heure de fin probable. Si le résultat dépasse l'heure définie, la tâche ne s'exécute pas et se termine avec le statut ENDED_TIMEOUT. Le traitement spécifiée dans la section Else s'applique alors.

    Où le définir : Section Dépendances de l'onglet Heure & dépendances

  9. Des prompts sont-ils affectées à la tâche ?

    Si les tâches ont des prompsets, ceux-ci sont alors évalués. Les valeurs fournies par les promptsets sont utilisées dans les variables et objets VARA. Si la saisie de l'utilisateur est nécessaire, le statut de la tâche est En attente de saisie utilisateur.

    Où le définir : Onglet PromptSets

    Où définir que des prompsets doivent s'afficher à l'écran : Dans la section Prompt/évaluation de la tâche de l'Onglet Général

  10. La tâche a-t-elle déjà été générée ?

    La tâche est générée soit à l'activation, soit à l'exécution, selon ce qui est défini à la page Attributs. Si elle doit être générée à l'activation, à ce stade de traitement, elle est déjà générée. En effet, l'heure d'activation d'une tâche dans un workflow est l'heure d'activation du workflow lui-même.

    Si elle est définie pour s'activer à l'exécution, la tâche est alors générée à ce moment-là.

    Pour plus d'informations, voir Générer à l'activation ou à l’exécution.

  11. La tâche démarre. Elle passe par les phases d'exécution 3. Traitement et 4. Terminaison

Traitements après la génération de la tâche

À ce stade d'exécution de la tâche, deux scénarios sont possibles.

Ce graphique l'illustre les deux scénarios :

Durée d'exécution maximale dépassée

La durée d'exécution d'une tâche peut être surveillée pendant son exécution. Ce moniteur vous permet de réagir rapidement lorsque le temps d’exécution maximal est dépassé. Vous pouvez définir les actions à entreprendre si le traitement de la tâche dure plus longtemps que ce qui a été prédéfini. La tâche peut être interrompue ou terminée, ou une autre tâche exécutée. Les tâches suivantes du workflow se poursuivent comme d’habitude.

Si la durée d'exécution maximale n'est pas dépassée, la tâche se termine et la tâche suivante démarre. Où le définir : Propriétés de la durée d'exécution

Durée d'exécution minimale non atteinte

À la fin de l'exécution de la tâche, le système peut vérifier si la durée d'exécution minimale a été conservée. Une tâche ne s'exécutant pas aussi longtemps que d'habitude est le signe que quelque chose ne va pas.

Si la durée d'exécution est inférieure à ce qui a été défini, vous pouvez définir les mêmes paramètres qu'avec la durée d'exécution maximale.

Où le définir : Propriétés de la durée d'exécution

Post-traitements

Lorsqu'une tâche est terminée, vous pouvez vérifier d'autres conditions et d'autres actions. Ces actions peuvent être différentes des préconditions et peuvent également affecter le statut de la tâche ou du workflow. Le processus de vérification complet n'a lieu qu'une seule fois.

Cette fonctionnalité est utile pour réagir au statut de fin d'une tâche. Vous pouvez démarrer n'importe quel objet, ou interrompre un workflow ou une tâche lorsqu'un statut déterminé a été atteint ou non.

Remarque : La condition de STATUT n'est pas prise en compte si la tâche obtient le statut ENDED_INACTIVE. Vous pouvez malgré tout vérifier ce statut de fin dans l'onglet Heure & dépendances de la tâche suivante.

Où les définir : Onglet Postconditions, voir Onglets Précondition et Postcondition

Condition ELSE

Certaines propriétés vous permettent de définir des actions alternatives. Ce graphique illustre les options de la condition Else :

Voir aussi :