Domänenspezifische Bausteine > Endlicher-Automat-Baustein > Konfigurationen (Endlicher-Automat-Baustein)
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": {}
}
}
}
}
War dies hilfreich?