2013-05-29 1 views
3

BPMN을 사용하는 일부 소프트웨어의 배포 프로세스를 모델링하려고합니다. 배포의 여러 부분이 잘못 될 수 있으므로 각 경우에 어떤 단계를 취해야하는지 다이어그램에 나타내려고합니다.BPMN의 "오류"이벤트와 "보상"이벤트의 구분은 무엇입니까?

처음에는 "보상"이벤트를 사용해야하는 것처럼 보였지만 "오류"이벤트가 사용되었습니다. 나는이 둘 사이에 명확한 구별을 찾을 수 없었지만, 가장 좋은 점은 "오류"는 작업에서 오류가 발생하는 경우 즉시 수행해야하는 작업을 나타내는 반면 "보상"은 발생해야하는 작업을 나타내는 것입니다. 언젠가는 나중에 프로세스를 되돌려 야합니다.

내가 보았던 보상의 예는 여행사가 호텔 예약을하는 것과 같습니다. 예약을 취소하는 작업은 예약 작업에 대한 보상 이벤트가됩니다. 필자는 "오류"에 대한 적절한 예를 많이 찾을 수 없었습니다. 제 경우에 "오류"를 사용하는 것이 맞습니까?

답변

3

최고입니다.하지만 사실 일 수는 없습니다.

보상을 사용하면 프로세스를 완료 할 수 있도록 무언가를 수정할 수 있습니다. 취소는 활동이 취소 된 경우입니다. 프로세스가 실패하고 프로세스를 수정하지 않는 활동이 트리거되는 경우 오류가 발생합니다.

여행사 예 : 여행사 프로세스가 단순히 취소 된 경우 실시간 예약이 취소 될 수 있으므로 취소 작업이 남아있을 수 있으므로 보상 활동이 필요합니다. 여행사가 객실을 제대로 예약하지 못한 경우 여행사에 통보하기 위해 오류 처리 단계가 필요할 수 있지만 시스템에서 즉시 보상을받지 못합니다.
보상 활동을 처리하는 것은 여행사에 달려 있습니다.

피자 주문 예 : 전화 나 인터넷을 통한 피자 주문이 취소 (취소) 된 경우 보상 활동이 필요하지 않습니다. 결제 시스템이 다운 된 경우 (오류) 사용자에게 알릴 필요가 있으며 보상이 자동으로 발생하지 않습니다. 보상은 다른 카드 나 대금 상환 또는 탭과 같은 대체 약정을 허용합니다.

프로세스가 표준 경로에서 완료되지 않으면 오류나 보상이 필요할 수 있습니다. 이 대체 경로가 호출되었지만 추가 작업 (보상 활동)이 필요하지 않은 경우 오류가 발생합니다. 취소시 대체 경로가 필요하지 않습니다. 아래의 대답에 추가

5

... BPMN specification 페이지로

(302) "그 결과는 아마도 부작용이 더 이상 요구와 필요하기 때문에 보상은 이미 성공적으로 완료되었습니다 실행 취소 단계와 관련 없다 뒤집어 라. "

오류는 문학적 의미와 235 "오류 트리거가 중요하며 던지는 위치에서 실행을 중단 페이지를 소유하고 있습니다.

관련 문제