프로세스는 프로세스 인스턴스의 라이프사이클 동안 중요한 사항이 발생할 때마다 상태를 변경합니다. 예를 들어, API 요청으로 인해 실행 중 상태의 프로세스가 일시중단됨 상태가 될 수 있습니다. 상태 전이 다이어그램은 프로세스 라이프사이클 동안 발생할 수 있는 상태 전이를 보여줍니다. 마이크로플로우와 장기 실행 프로세스가 서로 다른 상태 전이 다이어그램을 가지고 있습니다.
| 기호 | 설명 |
|---|---|
![]() |
임시 상태. 이 상태는 표시되지 않습니다. |
![]() |
지속적 상태 |
![]() |
임시 종료 상태 |
![]() |
지속적 종료 상태 |
![]() |
비즈니스 플로우 관리자에 의해 자동으로 트리거되는 상태 전이 |
![]() |
API를 사용하는 외부 상호작용의 결과인 상태 전이 |
![]() |
비즈니스 플로우 관리자에 의해 제어되거나, API를 사용하는 외부 상호작용의 결과인 상태 전이 |
마이크로플로우는 프로세스가 항상 트랜잭션에서 실행되고 인스턴스 정보가 프로세스 인스턴스를 탐색하는 동안 지속되지 않으므로 Stateless 상태가 될 것으로 간주됩니다. 그러나 프로세스 정의와 비즈니스 플로우 관리자가 구성된 방법에 따라 마이크로플로우 상태는 감사 로그나 공통 기본 이벤트에 표시될 수 있습니다.
다음
다이어그램은 마이크로플로우 인스턴스의 가능한 상태를 보여줍니다.
프로세스 인스턴스의 표준 초기화 후, 프로세스 인스턴스가 도달하는 첫 번째 프로세스 상태는 실행 중 상태입니다(1). 프로세스 인스턴스가 실행되어 정상적으로 완료된 경우 프로세스 상태가 실행 중에서 완료됨으로 변경됩니다(2). 결함이 프로세스 경계에 도달하면 프로세스는 실패 중 상태가 됩니다(3). 결함 핸들러가 실행되는 동안 프로세스는 실패 상태로 유지됩니다. 이 다음에, 프로세스 인스턴스는 실패 상태가 됩니다(4).
비즈니스 플로우 관리자에 의해 모든 상태 전이가 트리거됩니다. 마이크로플로우가 시작된 후에는 이 자동 단계에 영향을 줄 수 없습니다.

실행 중, 완료됨, 실패 중, 실패함 상태와 이 상태 간의 상태 전이는 마이크로플로우와 같습니다.
프로세스 인스턴스는 외부 요청 또는 종료 활동에 의해 종료됩니다. 프로세스 인스턴스 종료는 여러 탐색 단계에 걸쳐 발생할 수 있으므로 체인으로 연결된 여러 트랜잭션에 걸쳐 발생할 수 있습니다(예를 들어, 장기 실행 활동이나 서브프로세스를 종료하기 위해). 이 종료 단계 중, 프로세스 인스턴스는 종료 상태가 됩니다(5), (14), (18). 프로세스의 모든 장기 실행 파트가 종료될 때, 프로세스 인스턴스 상태도 종료됨으로 변경됩니다(6).
하위 프로세스가 종료되고 나중에 상위 프로세스가 실패하면 하위 프로세스를 보상할 수 있습니다. 보상 중에 하위 프로세스는 보상 중 상태가 됩니다(7). 보상이 성공적으로 종료되면 하위 프로세스가 보상됨 상태가 됩니다(8). 보상이 실패하면 하위 프로세스는 보상 실패 상태가 됩니다. 이 상태 트랜잭션은 상위 프로세스에 의해 자동으로 초기화됩니다.
프로세스 인스턴스의 탐색이 여전히 활성 상태이면(즉, 실행 중 또는 실패 중 상태이면), API 요청으로 일시중단될 수 있습니다. 그런 다음, 지정된 시간 후에 또는 재개 요청에 의해 다시 활성화될 수 있습니다. 프로세스 상태가 일시중단 요청으로 인해 실행 중 또는 실패 중 상태에서 일시중단됨으로 변경되고(11), (12) 재개 요청으로 일시중단됨 상태에서 실행 중 또는 실패 중 상태로 변경됩니다(10), (13). 일시중단됨 상태의 프로세스는 종료됨 상태도 될 수 있습니다(14). 최상위 레벨 프로세스 인스턴스만 일시중단됨 및 재개됨 상태가 될 수 있습니다. 그러나 일시중단 또는 재개 상태는 하위 프로세스로 전파됩니다.
프로세스가 종료 상태(완료됨, 종료됨 또는 실패)중 하나에 도달하면 다시 시작 API 요청으로 다시 시작될 수 있습니다(15), (16), (17). 하위 프로세스 인스턴스만 보상할 수 있는 반면 최상위 레벨 프로세스 인스턴스만 다시 시작될 수 있습니다.
프로세스 인스턴스는 종료 상태에 도달할 때 삭제될 수 있습니다(19). 완료 시 자동으로 삭제 속성을 설정하여 프로세스를 삭제하거나 명시적 삭제 요청으로 트리거할 수 있습니다.