Konfigurationen (Endlicher-Automat-Baustein)
Die einzelnen endlichen Automaten sind in der Konfigurationstabelle StateMachineConfiguration auf dem Ding PTC.StateMachineImpl.Manager definiert. Diese Tabelle enthält die folgenden Felder:
• stateMachineName – Name für den endlichen Automaten. Er muss eindeutig sein.
• dataShapeName – Wenn der endliche Automat einem Feld in einem Data Shape zugeordnet ist, gibt dieses Feld den Data-Shape-Namen an.
• fieldName – Wenn der endliche Automat einem Feld in einem Data Shape zugeordnet ist, gibt dieses Feld den Namen des Felds an.
• stateMachineConfiguration – JSON-Code, der den endlichen Automaten definiert. Für jeden Status im endlichen Automaten können Sie Folgendes angeben:
◦ initial – Wenn true, dann ist der Status ein Anfangsstatus.
◦ final – Wenn true, dann ist der Status ein Endstatus.
◦ transitions – Die gültigen Übergänge von diesem Status. Für einen gegebenen Übergang können Sie auch Folgendes angeben:
▪ action – Eine Aktion, die auftreten kann, wenn der Übergang erfolgt
▪ event – Das Ereignis, das den Übergang auslöst
Die Werte action und event können von Diensten referenziert werden, die den endlichen Automaten aufrufen.
Der folgende Beispielcode ist der
stateMachineConfiguration-JSON-Code für den endlichen Automaten
JobOrderDispatchStatus, der vom
Projektauftrags-Baustein bereitgestellt wird:
{
"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": {}
}
}
}
}