I use Wso2 BPS to write an asynchronous workflow. To correlate the request and the callback I use an element in the request and an attribute in the callback. The definitions of the correlator is:
For the request
< bpws:property name="correlatorProp" type="xs:string"/> < bpws:propertyAlias propertyName="tns:correlatorProp" messageType="ws-drt:pushIn" part="params">
< bpws:query>< ![CDATA[/drt-type:resources/res:resource/res:uuid]]>< / pws:query>
< /bpws:propertyAlias>For the callback:
< bpws:propertyAlias propertyName="tns:correlatorProp" messageType="ws-dpalert:pushIn" part="params"> < bpws:query>< ![CDATA[@conversationId]]>< /bpws:query>
< /bpws:propertyAlias>
Then I test this workflow with the below request/callback
Request < soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> < soapenv:Body> < type:push xmlns:res="http://esa.int/sais-dpc/schema/resource" timestamp="2001-12-17T09:30:47.0Z" sequenceNumber="1" lastResponse="true"> < type:resources> < res:resource> < res:uuid>40000< /res:uuid>
< /type:resources> < /type:push> < /soapenv:Body> < /soapenv:Envelope>Callback:
< soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> < soapenv:Body> < p:push xmlns:p="http://esa.int/sais-dpc/service/specification/dp-alert-provider/type" conversationId="40000" sequenceNumber="0" lastResponse="true"> < p:alertsRef>40000< /p:alertsRef> < /p:push> < /soapenv:Body> < /soapenv:Envelope>
But the engine failed to correlate the two messages. Is there any body have experience that issue?
Thanks,
Minh Tri.