도메인 특정 빌딩 블록 > 상태 시스템 빌딩 블록 > 구성(상태 시스템 빌딩 블록)
구성(상태 시스템 빌딩 블록)
PTC.StateMachineImpl.Manager 사물의 StateMachineConfiguration 구성 테이블에는 개별 상태 시스템이 정의되어 있습니다. 이 테이블에는 다음 필드가 포함되어 있습니다.
stateMachineName - 상태 시스템의 이름입니다. 고유해야 합니다.
dataShapeName - 상태 시스템이 데이터 셰이프의 필드와 연관되어 있는 경우 데이터 셰이프 이름을 지정합니다.
fieldName - 상태 시스템이 데이터 셰이프의 필드와 연관되어 있는 경우 필드 이름을 지정합니다.
stateMachineConfiguration - 상태 시스템을 정의하는 JSON 코드입니다. 상태 시스템의 각 상태에 대해 다음을 지정할 수 있습니다.
initial - true인 경우 상태는 초기 상태입니다.
final - true인 경우 상태는 최종 상태입니다.
transitions - 이 상태에서 유효한 변환입니다. 해당 변환의 경우 다음을 지정할 수도 있습니다.
action - 변환이 발생할 때 발생할 수 있는 작업입니다.
event - 변환을 트리거하는 이벤트입니다.
actionevent 값은 상태 시스템을 호출하는 서비스에서 참조할 수 있습니다.
다음 샘플 코드는 작업 지시서 빌딩 블록에서 제공하는 JobOrderDispatchStatus 상태 시스템에 대한 stateMachineConfiguration JSON 코드입니다.
{
"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": {}
}
}
}
}
도움이 되셨나요?