Last active
December 23, 2015 03:49
-
-
Save faridasabry/6575881 to your computer and use it in GitHub Desktop.
BPEL file for Caller Process
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- CallerProcess BPEL Process [Generated by the Eclipse BPEL Designer] --> | |
<bpel:process name="CallerProcess" | |
targetNamespace="http://caller.com" | |
suppressJoinFailure="yes" | |
xmlns:tns="http://caller.com" | |
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" | |
xmlns:ns1="http://async.com"> | |
<!-- Import the client WSDL --> | |
<bpel:import namespace="http://async.com" location="AsynchProcessArtifacts.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import> | |
<bpel:import location="CallerProcessArtifacts.wsdl" namespace="http://caller.com" | |
importType="http://schemas.xmlsoap.org/wsdl/" /> | |
<!-- ================================================================= --> | |
<!-- PARTNERLINKS --> | |
<!-- List of services participating in this BPEL process --> | |
<!-- ================================================================= --> | |
<bpel:partnerLinks> | |
<!-- The 'client' role represents the requester of this service. --> | |
<bpel:partnerLink name="client" | |
partnerLinkType="tns:CallerProcess" | |
myRole="CallerProcessProvider" | |
/> | |
</bpel:partnerLinks> | |
<!-- ================================================================= --> | |
<!-- VARIABLES --> | |
<!-- List of messages and XML documents used within this BPEL process --> | |
<!-- ================================================================= --> | |
<bpel:variables> | |
<!-- Reference to the message passed as input during initiation --> | |
<bpel:variable name="input" | |
messageType="tns:CallerProcessRequestMessage"/> | |
<!-- | |
Reference to the message that will be returned to the requester | |
--> | |
<bpel:variable name="output" | |
messageType="tns:CallerProcessResponseMessage"/> | |
<bpel:variable name="AsynchRequest" messageType="ns1:AsynchProcessRequestMessage"></bpel:variable> | |
<bpel:variable name="AsynchCB" messageType="ns1:AsynchProcessResponseMessage"></bpel:variable> | |
<bpel:variable name="AsynchRequest2" messageType="ns1:AsynchProcessRequestMessage"></bpel:variable> | |
<bpel:variable name="AsynchCB2" messageType="ns1:AsynchProcessResponseMessage"></bpel:variable> | |
</bpel:variables> | |
<!-- ================================================================= --> | |
<!-- ORCHESTRATION LOGIC --> | |
<!-- Set of activities coordinating the flow of messages across the --> | |
<!-- services integrated within this business process --> | |
<!-- ================================================================= --> | |
<bpel:correlationSets> | |
<bpel:correlationSet name="AsynchCorr" properties="tns:property"></bpel:correlationSet> | |
<bpel:correlationSet name="FlowCorr" properties="tns:flow_property"></bpel:correlationSet> | |
<bpel:correlationSet name="FlowCorr2" properties="tns:flow_property"></bpel:correlationSet> | |
</bpel:correlationSets> | |
<bpel:sequence name="main"> | |
<!-- Receive input from requester. | |
Note: This maps to operation defined in CallerProcess.wsdl | |
--> | |
<bpel:receive name="receiveInput" partnerLink="client" | |
portType="tns:CallerProcess" | |
operation="process" variable="input" | |
createInstance="yes"> | |
<bpel:correlations> | |
<bpel:correlation set="AsynchCorr" initiate="yes"></bpel:correlation> | |
</bpel:correlations> | |
</bpel:receive> | |
<!-- Generate reply to synchronous request --> | |
<bpel:flow name="Flow"><bpel:scope name="Scope"> | |
<bpel:partnerLinks> | |
<bpel:partnerLink name="Asynch_PL2" partnerLinkType="ns1:AsynchProcess" partnerRole="AsynchProcessProvider"></bpel:partnerLink> | |
<bpel:partnerLink name="AsyncCB_PL2" partnerLinkType="ns1:AsynchProcess" myRole="AsynchProcessRequester"></bpel:partnerLink> | |
</bpel:partnerLinks> | |
<bpel:sequence> | |
<bpel:assign validate="no" name="Assign"> | |
<bpel:copy> | |
<bpel:from><bpel:literal><tns:AsynchProcessRequest xmlns:tns="http://async.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | |
<tns:input>tns:input</tns:input> | |
<tns:flow_number>tns:flow_number</tns:flow_number> | |
</tns:AsynchProcessRequest> | |
</bpel:literal></bpel:from> | |
<bpel:to variable="AsynchRequest" part="payload"></bpel:to> | |
</bpel:copy> | |
<bpel:copy> | |
<bpel:from part="payload" variable="input"> | |
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:input]]></bpel:query> | |
</bpel:from> | |
<bpel:to part="payload" variable="AsynchRequest"> | |
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"> | |
<![CDATA[ns1:input]]> | |
</bpel:query> | |
</bpel:to> | |
</bpel:copy> | |
<bpel:copy> | |
<bpel:from> | |
<![CDATA[string("flow 1:")]]> | |
</bpel:from> | |
<bpel:to part="payload" variable="AsynchRequest"> | |
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"> | |
<![CDATA[ns1:flow_number]]> | |
</bpel:query> | |
</bpel:to> | |
</bpel:copy> | |
</bpel:assign> | |
<bpel:invoke name="InvokeAsynch" partnerLink="Asynch_PL2" operation="initiate" portType="ns1:AsynchProcess" inputVariable="AsynchRequest"><bpel:correlations> | |
<bpel:correlation set="AsynchCorr" initiate="no"></bpel:correlation> | |
<bpel:correlation set="FlowCorr" initiate="yes" ></bpel:correlation> | |
</bpel:correlations> | |
</bpel:invoke> | |
<bpel:wait name="Wait"> | |
<bpel:for> | |
<![CDATA['PT5S']]> | |
</bpel:for> | |
</bpel:wait> | |
<bpel:receive name="ReceiveCallback" partnerLink="AsyncCB_PL2" operation="onResult" portType="ns1:AsynchProcessCallback" variable="AsynchCB"><bpel:correlations> | |
<bpel:correlation set="AsynchCorr" initiate="no"></bpel:correlation> | |
<bpel:correlation set="FlowCorr" initiate="no"></bpel:correlation> | |
</bpel:correlations> | |
</bpel:receive> | |
</bpel:sequence> | |
</bpel:scope> | |
<bpel:scope name="Scope1"> | |
<bpel:partnerLinks> | |
<bpel:partnerLink name="Asynch_PL1" partnerLinkType="ns1:AsynchProcess" partnerRole="AsynchProcessProvider"></bpel:partnerLink> | |
<bpel:partnerLink name="AsyncCB_PL1" partnerLinkType="ns1:AsynchProcess" myRole="AsynchProcessRequester"></bpel:partnerLink> | |
</bpel:partnerLinks> | |
<bpel:sequence name="Sequence2"> | |
<bpel:assign validate="no" name="Assign2"> | |
<bpel:copy> | |
<bpel:from><bpel:literal><tns:AsynchProcessRequest xmlns:tns="http://async.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | |
<tns:input>tns:input</tns:input> | |
<tns:flow_number>tns:flow_number</tns:flow_number> | |
</tns:AsynchProcessRequest> | |
</bpel:literal></bpel:from> | |
<bpel:to variable="AsynchRequest2" part="payload"></bpel:to> | |
</bpel:copy> | |
<bpel:copy> | |
<bpel:from part="payload" variable="input"> | |
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"> | |
<![CDATA[tns:input]]> | |
</bpel:query> | |
</bpel:from> | |
<bpel:to part="payload" variable="AsynchRequest2"> | |
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"> | |
<![CDATA[ns1:input]]> | |
</bpel:query> | |
</bpel:to> | |
</bpel:copy> | |
<bpel:copy> | |
<bpel:from> | |
<![CDATA[string("flow 2:")]]> | |
</bpel:from> | |
<bpel:to part="payload" variable="AsynchRequest2"> | |
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"> | |
<![CDATA[ns1:flow_number]]> | |
</bpel:query> | |
</bpel:to> | |
</bpel:copy> | |
</bpel:assign><bpel:invoke name="InvokeAsynch2" partnerLink="Asynch_PL1" operation="initiate" portType="ns1:AsynchProcess" inputVariable="AsynchRequest2"> | |
<bpel:correlations> | |
<bpel:correlation set="AsynchCorr" initiate="no"></bpel:correlation> | |
<bpel:correlation set="FlowCorr2" initiate="yes" ></bpel:correlation> | |
</bpel:correlations> | |
</bpel:invoke> | |
<bpel:wait name="Wait2"> | |
<bpel:for><![CDATA['PT10S']]></bpel:for> | |
<bpel:for><![CDATA['PT5S']]></bpel:for> | |
<bpel:for><![CDATA['PT5S']]></bpel:for> | |
</bpel:wait> | |
<bpel:receive name="ReceiveCallback2" partnerLink="AsyncCB_PL1" operation="onResult" portType="ns1:AsynchProcessCallback" variable="AsynchCB2"><bpel:correlations> | |
<bpel:correlation set="AsynchCorr" initiate="no"></bpel:correlation> | |
<bpel:correlation set="FlowCorr" initiate="no"></bpel:correlation> | |
</bpel:correlations> | |
</bpel:receive> | |
</bpel:sequence> | |
</bpel:scope></bpel:flow> | |
<bpel:assign validate="no" name="Assign1"> | |
<bpel:copy> | |
<bpel:from><bpel:literal><tns:CallerProcessResponse xmlns:tns="http://caller.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | |
<tns:result>tns:result</tns:result> | |
</tns:CallerProcessResponse> | |
</bpel:literal></bpel:from> | |
<bpel:to variable="output" part="payload"></bpel:to> | |
</bpel:copy> | |
<bpel:copy> | |
<bpel:from> | |
<![CDATA[concat($AsynchCB.payload/tns:flow_number,$AsynchCB.payload/tns:result, $AsynchCB2.payload/tns:flow_number,$AsynchCB2.payload/tns:result)]]> | |
</bpel:from> | |
<bpel:to part="payload" variable="output"> | |
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:result]]></bpel:query> | |
</bpel:to> | |
</bpel:copy> | |
</bpel:assign> | |
<bpel:reply name="replyOutput" partnerLink="client" portType="tns:CallerProcess" operation="process" variable="output" /> | |
</bpel:sequence> | |
</bpel:process> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment