![]() A Process Engine should ensure that both approvals are fulfilled before the request is approved. For a request (e.g., a payment) two approvals of two different people are needed. We want to model the following situation using BPMN 2.0. The downside is that this might cause delays and overhead due to the loop. The instance itself checks periodicity if it can proceed to the credit check. In this example we do not need any communication between instances. Solution with Signal EventĬreditworthiness Check Check requested check for running instances (of same customer) running instances of same customer? perform credit check wait some time credit check performed Engine Database no yes Explanation What all solutions have in common is that every new instance needs to check for concurring instances on the data level before starting the actual credit check. Let’s assume that we are running a credit check for a customer and we get a second request for the same customer at the same time. The reason could be that the total number of credit checks performed influences the result of the check. If one credit check of a customer is running, we do not want another credit check for the same customer to be performed at the same time. Let’s say we want to model a process with concurring instances. Create Bill Compute 2% discount add an extra 1% discount customer type? Bill requested Sum of order? customer type? Create bill Bill created Compute 3% discount Compute 4% discount customer type? add an extra 1% discount add an extra 1% discount 1000 – 1500 500 – 999 >2000 < 500 Type A Type A Type A ordinary ordinary ordinary ![]()
0 Comments
Leave a Reply. |