Building block > Building block specifici del dominio > Building block della macchina stati > Configurazioni (building block della macchina stati)
Configurazioni (building block della macchina stati)
Le singole macchine stati sono definite nella tabella di configurazione StateMachineConfiguration nell'oggetto PTC.StateMachineImpl.Manager. Questa tabella include i seguenti campi:
stateMachineName - Nome della macchina stati. Deve essere univoco.
dataShapeName - Se la macchina stati è associata a un campo in una data shape, specificare il nome della data shape.
fieldName - Se la macchina stati è associata a un campo in una data shape, specificare il nome del campo.
stateMachineConfiguration - Codice JSON che definisce la macchina stati. Per ogni stato della macchina stati, è possibile specificare i seguenti valori:
initial - Se true, lo stato è uno stato iniziale.
final - Se true, lo stato è uno stato finale.
transitions - Transizioni valide da questo stato. Per una transizione specificata è anche possibile specificare i seguenti valori:
action - Azione che può verificarsi quando avviene la transizione.
event - Evento che attiva la transizione.
I valori di action e event possono essere referenziati dai servizi che chiamano la macchina stati.
Il codice di esempio seguente è il codice JSON di stateMachineConfiguration per la macchina stati JobOrderDispatchStatus fornita dal building block delle commesse:
{
"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": {}
}
}
}
}
È stato utile?