자동 활동에서 상태 전이할 데이터 항목 및 함수 조건을 작성할 때 사용할 수 있는 컨텍스트 워크플로우 데이터 오브젝트는 두 가지입니다. 이에 대해서는 아래의 설명을 참조하십시오.
- Context_Result 워크플로우 데이터 오브젝트
- Context_Result 워크플로우 데이터 오브젝트는 자동 활동에서 상태 전이를 위해 데이터 항목 또는 함수 조건(조건 참조)에서 사용할 수 있습니다. 이를 통해 해당 조건에서 호출된 메소드의 리턴값을 사용할 수 있습니다. Context_Result 워크플로우 데이터 오브젝트에 사용할 수 있는 속성 규칙은 다음과 같습니다.
- 리턴 유형이 기본 유형일 경우 사용 가능한 속성을 value(예: Context_Result.value)라고 합니다.
- 리턴값이 구조체일 경우 사용 가능한 Context_Result 속성 값은 구조체 리턴 클래스에 표시되는 모든 필드(예: Context_Result.description)입니다.
- 리턴값이 중첩된 구조체(집계된 구조체)일 경우 사용 가능한 Context_Result 속성 값은 포함하는 구조체에 사용 가능한 필드(예: Context_Result.description)이며, 중첩된 구조체의 해당 필드에 대한 완전한 이름(예: Context_Result.dtls:concernRoleID)입니다. 리턴값 구조체의 중첩 정도에 관계없이 속성 이름의 중첩된 구조체 구성 부분의 이름으로 사용할 수 있는 Context_Result 워크플로우 데이터 오브젝트는 하나뿐입니다. 위의 예에서 볼 수 있듯이 중첩된 구조체와 해당 필드 사이의 구분 기호는 콜론입니다.
- 리턴 유형이 목록 구조체이면 Context_Result 워크플로우 데이터 오브젝트를 사용할 수 없습니다.
- Context_Error 워크플로우 데이터 오브젝트
- 자동 활동으로 호출되는 BPO 메소드는 경우에 따라 실패할 수 있습니다. 즉, 활동 트랜잭션 롤백의 원인이 되는 예외가 발생합니다. 이 경우 실패 후 후속 조치를 모델링하는 것이 유용할 수 있습니다. Context_Error 워크플로우 데이터 오브젝트를 통해 이러한 유형의 "오류 경로" 모델링을 수행할 수 있습니다. 이 데이터 오브젝트는 자동 활동에서 상태 전이를 위해 데이터 항목 또는 함수 조건(조건 참조)에서 사용할 수 있습니다. Context_Error 워크플로우 데이터 오브젝트는 exceptionOccurred 속성 하나만 가지고 있으며, 이에 대해서는 아래의 설명을 참조하십시오.
- exceptionOccurred 속성은 자동 활동과 연관된 BPO 메소드가 실패했는지 여부를 나타내는 부울 값입니다. 기본값은 false이며 연관된 BPO 메소드가 실패할 경우 true로 설정됩니다.
런타임에 자동 활동에서 호출된 BPO 메소드가 실패하고 기본 시도 횟수만큼 다시 시도했지만 여전히 실패했을 경우 워크플로우 엔진은 Context_Error의 exceptionOccurred 속성을 true로 설정합니다. 그런 다음 Context_Error 워크플로우 데이터 오브젝트를 사용한 상태 전이가 평가되고 true로 확인되면 다음으로 수행됩니다. 이렇게 하면 자동 활동이 실패해도 정의된 오류 경로에 따라 워크플로우 프로세스 인스턴스를 처리할 수 있습니다.
호출되는 BPO 메소드가 실패하고 Context_Error 워크플로우 데이터 오브젝트를 사용한 상태 전이가 없을 경우 활동이 중단되고 실패한 메시지 관리 콘솔에 항목이 작성됩니다.
참고: Context_Error 워크플로우 데이터 오브젝트는 실패의 원인을 고려하지 않습니다.