I'm quite new to WSO2 BPS 3.2.0 and for BPEL as well. I created a BPEL process for firing a HumanTask using bpel4people extension. For that I took the sample humantask shipped with the BPS. I could successfully fire the task. But once I complete the task, My bpel process does not receive the response from the task. Is there any special procedure to get the respose ? Here are my bpel process and the HumanTask's WSDL file.
bpel file..
<!-- JavaTraining BPEL Process [Generated by the Eclipse BPEL Designer] -->
<!-- Date: Mon Mar 05 12:13:11 IST 2012 -->
<bpel:process name="JavaTraining" targetNamespace="http://loits.com/bps/training" suppressJoinFailure="yes" xmlns:tns="http://loits.com/bps/training" xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:ns1="http://www.w3.org/2001/XMLSchema"
xmlns:ns2="http://www.example.com/claims/" xmlns:xsd="http://www.example.com/claims/schema" xmlns:b4p="http://docs.oasis-open.org/ns/bpel4people/bpel4people/200803">
<!-- Import the client WSDL -->
<bpel:extensions>
<bpel:extension namespace="http://docs.oasis-open.org/ns/bpel4people/bpel4people/200803" mustUnderstand="yes"></bpel:extension>
</bpel:extensions>
<bpel:import namespace="http://www.example.com/claims/" location="ClaimsApprovalTask.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
<bpel:import location="JavaTrainingArtifacts.wsdl" namespace="http://loits.com/bps/training" 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:JavaTraining" myRole="JavaTrainingProvider" />
<bpel:partnerLink name="b4pPtlnk" partnerLinkType="tns:b4pPtlnkType" myRole="requester" partnerRole="receiever"></bpel:partnerLink>
</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:JavaTrainingRequestMessage" />
<!--
Reference to the message that will be returned to the requester
-->
<bpel:variable name="output" messageType="tns:JavaTrainingResponseMessage" />
<bpel:variable name="dummyVar" type="ns1:boolean"></bpel:variable>
<bpel:variable name="b4pIn" messageType="ns2:ClaimApprovalRequest"></bpel:variable>
<bpel:variable name="b4pOut" messageType="ns2:ClaimApprovalResponse"></bpel:variable>
</bpel:variables>
<!-- ================================================================= -->
<!-- ORCHESTRATION LOGIC -->
<!-- Set of activities coordinating the flow of messages across the -->
<!-- services integrated within this business process -->
<!-- ================================================================= -->
<bpel:sequence name="main">
<!-- Receive input from requester.
Note: This maps to operation defined in JavaTraining.wsdl
-->
<bpel:receive name="receiveInput" partnerLink="client" portType="tns:JavaTraining" operation="process" variable="input" createInstance="yes" />
<!-- Generate reply to synchronous request -->
<bpel:if name="If_amount_1000">
<bpel:condition expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[number($input.payload/tns:amount) > number(1000)]]>
</bpel:condition>
<bpel:sequence>
<bpel:assign validate="no" name="Assign1">
<bpel:copy>
<bpel:from>
<bpel:literal>
<tschema:ClaimApprovalData xmlns:tschema="http://www.example.com/claims/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tschema:cust>
<tschema:id>tschema:id</tschema:id>
<tschema:firstname>tschema:firstname</tschema:firstname>
<tschema:lastname>tschema:lastname</tschema:lastname>
</tschema:cust>
<tschema:amount>0.0</tschema:amount>
<tschema:region>tschema:region</tschema:region>
<tschema:priority>0</tschema:priority>
</tschema:ClaimApprovalData>
</bpel:literal>
</bpel:from>
<bpel:to variable="b4pIn" part="ClaimApprovalRequest"></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:customer/tns:custId]]>
</bpel:query>
</bpel:from>
<bpel:to part="ClaimApprovalRequest" variable="b4pIn">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[xsd:cust/xsd:id]]>
</bpel:query>
</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:customer/tns:firstName]]>
</bpel:query>
</bpel:from>
<bpel:to part="ClaimApprovalRequest" variable="b4pIn">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[xsd:cust/xsd:firstname]]>
</bpel:query>
</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:customer/tns:lastName]]>
</bpel:query>
</bpel:from>
<bpel:to part="ClaimApprovalRequest" variable="b4pIn">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[xsd:cust/xsd:lastname]]>
</bpel:query>
</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:amount]]>
</bpel:query>
</bpel:from>
<bpel:to part="ClaimApprovalRequest" variable="b4pIn">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[xsd:amount]]>
</bpel:query>
</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:priority]]>
</bpel:query>
</bpel:from>
<bpel:to part="ClaimApprovalRequest" variable="b4pIn">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[xsd:priority]]>
</bpel:query>
</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:region]]>
</bpel:query>
</bpel:from>
<bpel:to part="ClaimApprovalRequest" variable="b4pIn">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[xsd:region]]>
</bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:extensionActivity>
<b4p:peopleActivity name="HumanTask" inputVariable="b4pIn" outputVariable="b4pOut">
<b4p:remoteTask partnerLink="b4pPtlnk" operation="approve" responseOperation="approvalResponse"></b4p:remoteTask>
</b4p:peopleActivity>
</bpel:extensionActivity>
<bpel:assign validate="no" name="Assign3">
<bpel:copy>
<bpel:from part="ClaimApprovalResponse" variable="b4pOut">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[xsd:approved]]>
</bpel:query>
</bpel:from>
<bpel:to variable="dummyVar"></bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:if name="If_approved">
<bpel:condition expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[$dummyVar = true()]]>
</bpel:condition>
<bpel:assign validate="no" name="Assign">
<bpel:copy>
<bpel:from>
<bpel:literal>
<tns:JavaTrainingResponse xmlns:tns="http://loits.com/bps/training" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tns:result>tns:result</tns:result>
</tns:JavaTrainingResponse>
</bpel:literal>
</bpel:from>
<bpel:to variable="output" part="payload"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA["Approved"]]>
</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:else>
<bpel:assign validate="no" name="Assign4">
<bpel:copy>
<bpel:from>
<bpel:literal>
<tns:JavaTrainingResponse xmlns:tns="http://loits.com/bps/training" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tns:result>tns:result</tns:result>
</tns:JavaTrainingResponse>
</bpel:literal>
</bpel:from>
<bpel:to variable="output" part="payload"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA["Rejected"]]>
</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:else>
</bpel:if>
</bpel:sequence>
<bpel:else>
<bpel:assign validate="no" name="Assign2">
<bpel:copy>
<bpel:from>
<bpel:literal>
<tns:JavaTrainingResponse xmlns:tns="http://loits.com/bps/training" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tns:result>tns:result</tns:result>
</tns:JavaTrainingResponse>
</bpel:literal>
</bpel:from>
<bpel:to variable="output" part="payload"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA["Approved Automatically"]]>
</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:else>
</bpel:if>
<bpel:reply name="replyOutput" partnerLink="client" portType="tns:JavaTraining" operation="process" variable="output" />
</bpel:sequence>
</bpel:process>
and the wsdl..
<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions name="ClaimApproval" targetNamespace="http://www.example.com/claims/" xmlns:tns="http://www.example.com/claims/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tschema="http://www.example.com/claims/schema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
<wsdl:documentation>
Example for WS-HumanTask 1.1 - WS-HumanTask Task Interface Definition
</wsdl:documentation>
<wsdl:types>
<xsd:schema targetNamespace="http://www.example.com/claims/schema" xmlns:tns="http://www.example.com/claims/schema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:element name="ClaimApprovalData" type="tns:ClaimApprovalDataType" />
<xsd:complexType name="ClaimApprovalDataType">
<xsd:sequence>
<xsd:element name="cust">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:string">
</xsd:element>
<xsd:element name="firstname" type="xsd:string">
</xsd:element>
<xsd:element name="lastname" type="xsd:string">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="amount" type="xsd:double" />
<xsd:element name="region" type="xsd:string" />
<xsd:element name="priority" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ClaimApprovalNotificationData" type="tns:ClaimApprovalNotificationDataType" />
<xsd:complexType name="ClaimApprovalNotificationDataType">
<xsd:sequence>
<xsd:element name="firstname" type="xsd:string" />
<xsd:element name="lastname" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ClaimApprovalResponse" type="tns:ClaimApprovalResponseType"></xsd:element>
<xsd:complexType name="ClaimApprovalResponseType">
<xsd:sequence>
<xsd:element name="approved" type="xsd:boolean"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="ClaimApprovalRequest">
<wsdl:part name="ClaimApprovalRequest" element="tschema:ClaimApprovalData" />
</wsdl:message>
<wsdl:message name="ClaimApprovalResponse">
<wsdl:part name="ClaimApprovalResponse" element="tschema:ClaimApprovalResponse" />
</wsdl:message>
<wsdl:message name="ClaimApprovalNotificationRequest">
<wsdl:part name="ClaimApprovalNotificationRequest" element="tschema:ClaimApprovalNotificationData" />
</wsdl:message>
<wsdl:portType name="ClaimsHandlingPT">
<wsdl:operation name="approve">
<wsdl:input message="tns:ClaimApprovalRequest" />
</wsdl:operation>
<wsdl:operation name="escalate">
<wsdl:input message="tns:ClaimApprovalRequest" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="ClaimsHandlingCallbackPT">
<wsdl:operation name="approvalResponse">
<wsdl:input message="tns:ClaimApprovalResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="ClaimApprovalReminderPT">
<wsdl:operation name="notify">
<wsdl:input message="tns:ClaimApprovalNotificationRequest" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ClaimSoapBinding" type="tns:ClaimsHandlingPT">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="approve">
<soap:operation soapAction="urn:approve" style="document" />
<wsdl:input>
<soap:body use="literal" namespace="http://www.example.com/claims/" />
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="escalate">
<soap:operation soapAction="urn:escalate" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="ClaimSoapBindingReminder" type="tns:ClaimApprovalReminderPT">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="notify">
<soap:operation soapAction="urn:notify" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="ClaimSoapBindingCB" type="tns:ClaimsHandlingCallbackPT">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="approvalResponse">
<soap:operation soapAction="urn:approvalResponse" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ClaimService">
<wsdl:port name="ClaimPort" binding="tns:ClaimSoapBinding">
<soap:address location="http://localhost:9763/services/ClaimService" />
</wsdl:port>
</wsdl:service>
<wsdl:service name="ClaimReminderService">
<wsdl:port name="ClaimReminderPort" binding="tns:ClaimSoapBindingReminder">
<soap:address location="http://localhost:9763/services/ClaimReminderService" />
</wsdl:port>
</wsdl:service>
<wsdl:service name="ClaimServiceCB">
<wsdl:port name="ClaimPortCB" binding="tns:ClaimSoapBindingCB">
<soap:address location="http://localhost:9763/services/ClaimServiceCB" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Finally I could make it.
What we need to do is to add correlationFilter attribute to the corresponding provide activity in the deploy.xml file.
By adding this namespace will provide b4pFilter
Full code of the deploy.xml