Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un ordinateur d’état est un paradigme connu pour développer des programmes. L'activité StateMachine, avec State, Transition et d'autres activités, peut être utilisée pour créer des programmes de flux de travail de machine à états. Cette rubrique fournit une vue d’ensemble de la création de flux de travail d’ordinateur d’état.
Vue d’ensemble du flux de travail State Machine
Les flux de travail d’ordinateur d’état fournissent un style de modélisation avec lequel vous pouvez modéliser votre flux de travail de manière pilotée par les événements. Une StateMachine activité contient les états et les transitions qui composent la logique de l’ordinateur d’état et peuvent être utilisées n’importe où une activité peut être utilisée. Il existe plusieurs classes dans le runtime de l’ordinateur d’état :
Pour créer un flux de travail d’ordinateur d’état, les états sont ajoutés à une StateMachine activité et les transitions sont utilisées pour contrôler le flux entre états. La capture d'écran suivante, tirée de l'étape du didacticiel de prise en mainComment créer un workflow de machine à états, montre un workflow de machine à états avec trois états et trois transitions. Initialiser la cible est l’état initial et représente le premier état dans le flux de travail. Cette désignation est indiquée par la ligne qui y conduit à partir du nœud Démarrer. L’état final du flux de travail est nommé FinalState et représente le point auquel le flux de travail est terminé.
Un flux de travail d’ordinateur d’état doit avoir un seul état initial et au moins un état final. Chaque état qui n’est pas un état final doit avoir au moins une transition. Les sections suivantes couvrent la création et la configuration des états et des transitions.
Création et configuration d’états
Un State représente un état dans lequel une machine d'état peut se trouver. Pour ajouter un State à un workflow, faites glisser le concepteur d’activités State de la section Machine à états de la Boîte à outils et déposez-le sur une activité StateMachine sur l’aire du Concepteur de flux de travail Windows.
Pour configurer un état comme état initial, cliquez avec le bouton droit sur l’état, puis sélectionnez Définir comme état initial. En outre, s’il n’existe aucun état initial actuel, l’état initial peut être désigné en faisant glisser une ligne du nœud Démarrer en haut du flux de travail vers l’état souhaité. Lorsqu’une StateMachine activité est supprimée sur le concepteur de flux de travail, elle est préconfigurée avec un état initial nommé State1. Un flux de travail d’ordinateur d’état doit avoir un seul et un seul état initial.
Un état qui représente un état de fin dans une machine d’état est appelé état final. Un état final est un état dont la propriété IsFinal est définie sur true, n’a aucune activité Exit et aucune transition provenant de celui-ci. Pour ajouter un état final à un flux de travail, faites glisser un concepteur d'activité FinalState à partir de la section State Machine de la boîte à outils et déposez-le sur une StateMachine activité sur l’aire du concepteur de flux de travail Windows. Un workflow d’ordinateur d’état doit avoir au moins un état final.
Configuration des actions d’entrée et de sortie
Un état peut avoir une Entry action et une Exit action. (Un état configuré comme état final peut avoir uniquement une action d’entrée). Lorsqu’une instance de flux de travail entre dans un état, toutes les activités de l’action d’entrée s’exécutent. Quand l’action d’entrée est terminée, les déclencheurs des transitions d’état sont planifiés. Lorsqu’une transition vers un autre état est confirmée, les activités de l’action de sortie sont exécutées, même si l’état revient à l’état identique. Une fois que l’action de sortie est terminée, les activités dans l’action de transition s’exécutent et le nouvel état est passé, puis ses actions d’entrée sont planifiées.
Remarque
Lors du débogage d'un workflow de machine à états, les points d'arrêt peuvent être placés sur l'activité de machine à états racine et les états dans le workflow de machine à états. Les points d'arrêt ne peuvent pas être placés directement sur les transitions, mais ils peuvent être placés sur toutes les activités contenues dans les états et les transitions.
Création et configuration de transitions
Tous les états doivent avoir au moins une transition, à l’exception d’un état final, qui peut ne pas avoir de transitions. Les transitions peuvent être ajoutées après l’ajout d’un état à un flux de travail d’ordinateur d’état, ou elles peuvent être créées à mesure que l’état est supprimé.
Pour ajouter un State et créer une transition en une étape, glissez une activité d’état depuis la section State Machine de la boîte à outils et survolez-la au-dessus d’un autre état dans le concepteur de flux de travail. Lorsque le State est déplacé vers un autre State, quatre triangles apparaissent autour de l'autre State. Si State est déposé sur un des quatre triangles, il est ajouté à la machine à états et une transition est créée à partir du State source vers le State de destination de dépôt. Pour plus d’informations, consultez Le Concepteur d’activités de transition.
Pour créer une transition après l’ajout d’un état, il existe deux options. La première option consiste à faire glisser l’état depuis la surface du concepteur de flux de travail, à le positionner au-dessus d’un état existant, puis à le déposer sur l’un des points de dépôt. Il s’agit d’une méthode similaire à la méthode décrite dans la section précédente. Vous pouvez également pointer la souris sur l’état source souhaité et faire glisser une ligne vers l’état de destination souhaité.
Remarque
Un état unique dans une machine d’état peut avoir jusqu’à 76 transitions créées à l’aide du concepteur de flux de travail. La limite des transitions pour un état pour les flux de travail créés en dehors du concepteur est limitée uniquement par les ressources système.
Une transition peut avoir un Trigger, un Condition, et un Action. Une transition Trigger est planifiée lorsque l'action de l'état source de la transition Entry est terminée. En règle générale, il Trigger s’agit d’une activité qui attend un certain type d’événement, mais il peut s’agir de n’importe quelle activité ou aucune activité du tout. Une fois l’activité Trigger terminée, le Conditioncas échéant, est évalué. S'il n'y a pas d'Trigger activité, le Condition est immédiatement évalué. Si la condition prend la valeur false, la transition est annulée, et l'activité Trigger de toutes les transitions depuis l'état est replanifiée. S’il existe d’autres transitions qui partagent le même état source que la transition actuelle, ces Trigger actions sont également annulées et replanifiées. Si le Condition s'évalue à true, ou s'il n'y a pas de condition, l'action Exit de l'état source est exécutée, puis le Action de la transition est exécuté. Une fois l’opération Action terminée, le contrôle passe à l’état cible
Les transitions qui partagent un déclencheur commun sont appelées transitions de déclencheur partagé. Chaque transition d'un groupe de transitions de déclencheur partagé a le même déclencheur, mais un Condition et une action uniques. Pour ajouter des actions supplémentaires à une transition et créer une transition partagée, cliquez sur le cercle qui indique le début de la transition souhaitée et faites-le glisser vers l’état souhaité. La nouvelle transition partagera un même déclencheur que la transition initiale, mais elle aura une condition et une action uniques. Les transitions partagées peuvent également être créées à partir du concepteur de transition en cliquant sur Ajouter une transition de déclencheur partagé en bas du concepteur de transition, puis en sélectionnant l’état cible souhaité dans les états disponibles pour se connecter.
Remarque
Notez que si la condition Condition d'une transition a pour valeur False (ou si toutes les conditions d'une transition de déclencheur partagée ont la valeur False), la transition n'a pas lieu et tous les déclencheurs de toutes les transitions de l'état sont replanifiés.
Pour plus d’informations sur la création de flux de travail d’ordinateur d’état, consultez Guide pratique pour créer un flux de travail d’ordinateur d’état, le concepteur d’activités StateMachine, le concepteur d’activités FinalState et le concepteur d’activités de transition.
Terminologie de l’ordinateur d’état
Cette section définit le vocabulaire de l’ordinateur d’état utilisé dans cette rubrique.
État
Unité de base qui compose une machine d’état. Une machine à états peut être dans un état à un moment donné.
Action d'entrée
Une activité exécutée quand on entre dans l’état
Action de sortie
Une activité exécutée lors de la sortie de l’état
Transition
Relation dirigée entre deux états qui représente la réponse complète d’une machine d’état à une occurrence d’un événement d’un type particulier.
Transition partagée
Transition qui partage un état source et un déclencheur avec une ou plusieurs transitions, mais a une condition et une action uniques.
Déclencheur
Activité de déclenchement qui provoque une transition.
État
Une contrainte qui doit s'évaluer à true après le déclenchement pour que la transition soit terminée.
Action de Transition
Activité exécutée lors de l’exécution d’une certaine transition.
Transition conditionnelle
Transition avec une condition explicite.
Transition automatique
Transition qui passe d’un état à lui-même.
État initial
État qui représente le point de départ de la machine à états.
État final
État qui représente l’achèvement de la machine à états.