BPEL Correlation within FlowN

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.

initiate_client

2. Review the flow of main service. It should be waiting for the callbacks from within the flowN.

main_service_waiting_for_callback

3. Invoke the ReaderService [the service that calls back the main service] with one callback message.

reader_service_invoke

4. Review the flow of the main service. It should have received one callback.

 

main_service_recvd_one_callback

 

5. Submit the remaining messages from the ReaderService to complete the entire flow. The main process should complete execution following this.

 

main_service_recvd_all_callbacks

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed
About

Principal Product Manager

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today