Table 3: Process constraints for the workflow running example.

ActivityConstraints

Ask Quotation- A new Ask Quotation activity must be created every time a start event occurs.
Provide Quotation- A quotation cannot be provided until an Ask Quotation or a Change Quotation finishes. A single new Provide Quotation instance must exist for each completed Ask Quotation or Change Quotation activity.
- After providing a quotation we can either ask for a change in the quotation or submit the order, but not both (at least one of them must be executed).
Change Quotation - The previous Provide Quotation activity must have been completed (a single new ask quotation activity can be generated). Otherwise, it must have been created in response to the occurrence of a start event (due to the implicit XOR merge gateway corresponding to the two incoming arrows).
Submit Order- The previous Provide Quotation activity must be completed. Besides, only a single Submit Order instance must be created for the same Provided Quotation instance.
- After submitting an order, a Choose Shipment or a Standard Shipment activities must be executed (but not both).
Standard Shipment- The previous Submit Order activity must be completed. Besides, only a single Standard Shipment instance must be created for the same Submit Order instance.
- Once the standard shipment is completed, a new Ship Order activity must be created.
Choose Shipment- The previous Submit Order activity must be completed. Besides, only a single Choose Shipment instance must be created for the same Submit Order instance.
- After choosing the shipment, both the Arrange Transport and Process Order Line activities must be executed.
Arrange Transport- The preceding Choose Shipment activity instance must be completed. Besides, a single Arrange Transport activity instance must be executed for each Choose Shipment activity instance.
Process OrderLine- The preceding Choose Shipment activity must be completed.
- The system must exactly execute as many Process OrderLine activity instances as the number of order (quotation) lines for the related order.
Empty Activity1- The new Empty activity instance can be created (as completed) when the transport has been arranged and all order lines have been processed.
- Then, a new Ship Order instance must be executed before ending the case.
Ship Order- Once a Standard Shipment xor an Empty Activity1 instance has been completed, the order can be shipped.
- For each order shipped, an invoice must be sent and the reception of the goods must be acknowledged by the customer.
Send Invoice- The preceding Ship Order activity instance must be completed. Besides, a single Send Invoice activity instance must be executed for each Ship Order activity instance.
Receive Goods- The preceding Ship Order activity instance must be completed. Besides, a single Receive Goods activity instance must be executed for each Ship Order activity instance.
Pay Goods- An order cannot be paid until the invoice has been send and the good have been received. When both previous activities have been done, a single pay goods activity shall be created in response.