There is one undocumented feature available in BPEL11g.This feature is all about creating interdependent activities in flow activity.
Let's see how can we model such processes. Please remember that design mode doesn't provide any graphical interface to support this.
Assume we have below process where we wanted to implement this
Requirement statement: Here our requirement is the scope in which invoke_2 activity is placed is depending on invoke_3 activity (until unless invoke_3 is completed, scope of invoke_2 activity can not be completed )
This is a typical activity dependency requirement in parallel flows
Steps to implement .
1. Go to source view,create the link inside the flow
2. Add the Target link in side scope activity
3. Add the Source link in invoke activity
See the below code.
<flow name="Flow_1">
<links>
<link name="TestDepend"/>
</links>
<sequence name="Sequence_1">
<scope name="Scope_1">
<target linkName="TestDepend"/>
<sequence>
<invoke name="Invoke_2"
partnerLink="bpelprocess1_client"
portType="client:BPELProcess1Callback"
operation="processResponse"/>
</sequence>
</scope>
</sequence>
<sequence name="Sequence_1">
<invoke name="Invoke_3" partnerLink="bpelprocess1_client"
portType="client:BPELProcess1Callback"
operation="processResponse">
<source linkName="TestDepend"/>
</invoke>
</sequence>
</flow>
<links>
<link name="TestDepend"/>
</links>
<sequence name="Sequence_1">
<scope name="Scope_1">
<target linkName="TestDepend"/>
<sequence>
<invoke name="Invoke_2"
partnerLink="bpelprocess1_client"
portType="client:BPELProcess1Callback"
operation="processResponse"/>
</sequence>
</scope>
</sequence>
<sequence name="Sequence_1">
<invoke name="Invoke_3" partnerLink="bpelprocess1_client"
portType="client:BPELProcess1Callback"
operation="processResponse">
<source linkName="TestDepend"/>
</invoke>
</sequence>
</flow>
No comments:
Post a Comment