BPMN2.0 다이어그램에서 "동작 1"및 "동작 2"의 2 개의 동기식 "서비스 작업"이 있습니다.BPM의 중간 이벤트 또는 타이머
"조치 1"의 성공적인 실행 후, 외부 이벤트가 예상됩니다 (BPM 엔진이 관리하는 시스템 외부의 일부 조치). 이벤트가 발생하면 "작업 2"를 즉시 실행해야합니다 (다시 동기 서비스 작업).
나를위한 복잡한 부분은 이벤트가 예상되지만 일정 시간 (예 : 1 분) 동안 만 시간 초과를 정의하는 것입니다. 이후에 일부 시간 초과 오류 처리가 실행되어야합니다.
그래서 동작 2는 동작 1 이후 0-60 초 범위에서 가능한 한 빨리 실행되거나 전혀 실행되지 않아야합니다.
비동기 작업을 사용하지 않고이 작업을 수행하는 방법에 대해 알고 싶습니다 (두 번째 그림 참조).
...
그림은 Activiti BPM 엔진에서 실행됩니다...
동기를 나는 몇 가지 아이디어 (세번째 사진)가 있지만, 예상대로 일하는 것이 있는지 확실하지 않습니다 실행
비동기 excecution
제안 된 해결
내가 전에 activiti을 사용하지 않은 (나는 단지 내 자신을 사용한 적이 경계 타이머 이벤트와 임베디드 서브 프로세스에서 이벤트와 액션 2를받을 포장하는 것 bpm 구현),하지만 당신은 자바 서비스 작업 (작업 1), 자바 수신 작업 (외부 이벤트에 대한 대기) 및 자바 서비스 작업 (작업 2) 순서를 생성하여 시나리오를 달성 할 수 있어야한다고 생각합니다. 수신 태스크에서 타임 아웃을 구현하려면 자바 수신 태스크에 타이머 경계 이벤트를 첨부해야합니다. –
감사합니다. 한 가지 더 질문합니다. 프로세스 인스턴스의 변수로 timeout의 길이를 구현할 수 있습니까? 아니면 프로세스 사양 (xml)에 정의해야합니까? – tomas
가능한 것 같습니다 : http://www.activiti.org/userguide/#timerEventDefinitions –