Blocs de construction spécifiques à un domaine > Bloc de construction de machine à états > Configurations (bloc de construction de machine à états)
Configurations (bloc de construction de machine à états)
La table de configuration StateMachineConfiguration de l'objet PTC.StateMachineImpl.Manager est l'endroit où sont définies les différentes machines à états. Cette table comporte les champs suivants :
stateMachineName : nom de la machine à états. Doit être unique.
dataShapeName : si la machine à états est associée à un champ d'une forme de données, indiquez le nom de cette forme de données.
fieldName : si la machine à états est associée à un champ d'une forme de données, indiquez le nom du champ.
stateMachineConfiguration : code JSON définissant la machine à états. Pour chaque état de la machine à états, vous pouvez indiquer les informations suivantes :
initial : si ce paramètre est défini sur true, l'état est un état initial.
final : si ce paramètre est défini sur true, l'état est un état final.
transitions : transitions valides depuis cet état. Pour une transition donnée, vous pouvez également indiquer les informations suivantes :
action : action pouvant se produire lorsque la transition s'effectue.
event : événement qui déclenche la transition.
Les valeurs action et event peuvent être référencées par les services qui appellent la machine à états.
L'exemple de code ci-dessous est le code JSON stateMachineConfiguration pour la machine à états JobOrderDispatchStatus que fournit le bloc de construction d'ordre de travail :
{
"states": {
"Dispatched": {
"initial": true,
"transitions": {
"Running": {
"action": "EndProductionBlock",
"event": "StartJobOrder"
},
"Canceled": {},
"Pending": {}
}
},
"Held": {
"transitions": {
"Running": {
"action": "EndProductionBlock",
"event": "StartJobOrder"
},
"Completed": {},
"Canceled": {}
}
},
"Running": {
"transitions": {
"Held": {
"action": "EndProductionBlock",
"event": "StopJobOrder"
},
"Completed": {
"action": "EndProductionBlock",
"event": "StopJobOrder"
}
}
},
"Completed": {
"final": true
},
"Canceled": {
"final": true
},
"Pending": {
"initial": true,
"transitions": {
"Dispatched": {},
"Canceled": {}
}
}
}
}
Est-ce que cela a été utile ?