0
votes

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.

1

1 Answers

2
votes

I was able to reproduce this issue and created a jira to track the issue. We will fix this issue in a future release of WSO2 BPS.

Currently the only workaround is to use an Element value as the correlation property alias.