Введение в формальные методы описания бизнес-процессов. Кулябов Д.С - 151 стр.

UptoLike

Б.1. Пример реализации диаграммы нотации BPMN на языке BPML 151
процесса.
Процесс выполняется в два этапа, ссылаясь на процессы chargeCustomer
(смена заказчика) и shipProduct тгрузка товара), после чего посылает уве-
домление о выполнении. Процесс может быть прерван в любой момент после
отправки запроса на отмену, что приведёт к запуску cancelRequest (запроса на
отмену). Если процесс не завершится в течение оговорённого срока, то он бу-
дет прерван.
Если происходит ошибка, препятствующая завершению процесса, то про-
цесс направляет соответствующее уведомляющее сообщение, прежде чем пре-
рвать свою деятельность. Уведомление не требуется, если процесс прервался
по запросу на отмену или по истечении заданного времени, поскольку поль-
зователь знает об этих условиях.
Поскольку в процессе завершения выполнения действий chargeCustomer
(смена заказчика) и/или shipProduct тгрузка товара) может возникнуть ошиб-
ка или исключительная ситуация, то используются компенсации процесса д-
на выдаёт возврат, а другая отменяет отгрузку товара). Как только этот
процесс завершён, можно компенсировать этот процесс, направив запрос на
отмену. Эта же операция встречается в другом контексте, когда заказ уже от-
правлен, а процесс ждёт соответствующего уведомления.
Далее приводится реализация описанного выше процесса на языке BPML.
<identity name=”order” property=”tns:orderID”/>
<property name=”orderID” type=”tns:orderID”/>
<process name=”twoStepOrder” identity=”tns:order”>
<event activity=”receiveOrder”/>
<context>
<property ref=”tns:orderID” fixed=”true”/>
<property name=”details” element=”tns:orderDetailsType”/>
<property name=”tns:timeLimit” type=”xsd:duration”/>
<schedule name=”timeToComplete” code=”tns:timeout”
duration=”tns:timeLimit”/>