I was struggling a bit today while testing a simple process that does a flowN and does simple BPEL correlation..
Failed to evaluate correlation query.
Failed to evaluate the correlationAlias query "/client:FlowNCorrelationDemoEvent/client:id" on the element "oracle.xml.parser.v2.XMLElement@283a35b"
Please check your BPEL/WSDL source to make sure that property alias is defined correctly.
at com.collaxa.cube.engine.delivery.CorrelationProperty.setMessagePart(CorrelationProperty.java:85)
at com.collaxa.cube.engine.delivery.DeliveryHelper.createCorrelationSet(DeliveryHelper.java:140)
at com.collaxa.cube.engine.delivery.SOAPProtocolHandler.calculateCorrelations(SOAPProtocolHandler.java:751)
at com.collaxa.cube.engine.delivery.SOAPProtocolHandler.receiveCallback(SOAPProtocolHandler.java:167)
at com.collaxa.cube.engine.delivery.DeliveryService.receiveCallback(DeliveryService.java:462)
at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.receiveCallback(CubeDeliveryBean.java:108)
at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean_yt19iq_ELOImpl.receiveCallback(CubeDeliveryBean_yt19iq_ELOImpl.java:307)
at com.collaxa.cube.engine.delivery.DeliveryHandler.continuePostAnyType(DeliveryHandler.java:429)
at com.collaxa.cube.engine.delivery.DeliveryHandler.continuePost(DeliveryHandler.java:380)
at com.collaxa.cube.engine.delivery.DeliveryHandler.post(DeliveryHandler.java:93)
at com.collaxa.cube.ejb.impl.DeliveryBean.post(DeliveryBean.java:203)
at com.collaxa.cube.ejb.impl.DeliveryBean.post(DeliveryBean.java:158)
at com.collaxa.cube.ejb.impl.DeliveryBean_uhics8_EOImpl.post(DeliveryBean_uhics8_EOImpl.java:279)
It seems that the issue was occuring when I was initiating the process that contains a midprocess receive that is based off an operation in the same portType that contains the initiating operation for the service, through the BPEL console.
<portType name="FlowNCorrelationDemo">
<operation name="initiate">
<input message="client:FlowNCorrelationDemoRequestMessage"/>
</operation>
<operation name="callback">
<input message="client:FlowNCorrelationDemoEventMessage"/>
</operation>
</portType>
Things worked just fine when I created another BPEL process and invoked this main BPEL process from the former.
You can find the set of BPEL processes, together with a readme file at http://blogs.oracle.com/rammenon/FlowNCorrelationDemo.zip.
You can find all the information about the services that I have used in the sample at the above URL.
1. Initiate the client service. The client service invokes the main service with the given payload.
2. Review the flow of main service. It should be waiting for the callbacks from within the flowN.
3. Invoke the ReaderService [the service that calls back the main service] with one callback message.
4. Review the flow of the main service. It should have received one callback.
5. Submit the remaining messages from the ReaderService to complete the entire flow. The main process should complete execution following this.