OrderApproval OrderId (string) ApprovalA (string) ApprovalB (string) ApprovalC (string)The pseudo BPEL code for processes A, B and C is:
Begin Receive input OrderApproval Assign "Approved by CompanyA" to OrderApproval/ApprovalA Invoke service (process) B Wait for callback from C with correlation set to OrderId Assign OrderApproval to output Invoke output OrderApproval on client callback Endprocess B:
Begin Receive input OrderApproval Assign "Approved by CompanyB" to OrderApproval/ApprovalB Invoke service (process) C Endprocess C:
Begin Receive input OrderApproval Assign "Approved by CompanyC" to OrderApproval/ApprovalC Invoke service (process) A EndThe sequence is instrumented by a client enacting process A, resulting in the call sequence A => B => C => A. See the diagrams FlowA, FlowB and FlowC for a visual representation of the executed flow in each of the three BPEL processes.
This was first published in February 2004