[jboss-user] [JBoss jBPM] - Correlation problem

Turanyi do-not-reply at jboss.com
Thu Oct 2 10:51:14 EDT 2008


I have simple process with two operations (process, push). 
Process starts by operation "process" and reply with input+"started" then waits for operation "push" and reply input+name+"pushed".
It is example of correlations.
Process can be deployed without problems. But there is problem to start instances.
When I remove <bpws:correlations>...</bpws:correlations> from receive activities process works fine but instances don't correlate of course.

Please help me where I do mistake.
Thank you.

WSDL

  | <definitions name="correlwait"
  |         targetNamespace="http://eclipse.org/bpel/correlwait"
  |         xmlns:tns="http://eclipse.org/bpel/correlwait"
  |         xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
  | 	xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
  |         xmlns="http://schemas.xmlsoap.org/wsdl/"
  |         >
  | 
  | <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  |      TYPE DEFINITION - List of types participating in this BPEL process 
  |      The BPEL Designer will generate default request and response types
  |      but you can define or import any XML Schema type and use them as part 
  |      of the message types.
  |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
  |     <types>
  |         <schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
  |                 targetNamespace="http://eclipse.org/bpel/correlwait" 
  |                 xmlns="http://www.w3.org/2001/XMLSchema">
  | 
  |             <element name="correlwaitRequest">
  |                 <complexType>
  |                     <sequence>
  |                         <element name="ID" type="int"/>
  |                         <element name="input" type="string"/>
  |                     </sequence>
  |                 </complexType>
  |             </element>
  | 
  |             <element name="correlwaitResponse">
  |                 <complexType>
  |                     <sequence>
  |                         <element name="result" type="string"/>
  |                     </sequence>
  |                 </complexType>
  |             </element>
  | 
  |             <element name="pushwaitRequest">
  |                 <complexType>
  |                     <sequence>
  |                         <element name="ID" type="int"/>
  |                         <element name="name" type="string"/>
  |                     </sequence>
  |                 </complexType>
  |             </element>
  | 
  |             <element name="pushwaitResponse">
  |                 <complexType>
  |                     <sequence>
  |                         <element name="status" type="string"/>
  |                     </sequence>
  |                 </complexType>
  |             </element>
  |         </schema>
  |     </types>
  | 
  | 
  | <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  |      MESSAGE TYPE DEFINITION - Definition of the message types used as 
  |      part of the port type defintions
  |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
  |     <message name="correlwaitRequestMessage">
  |         <part name="payload" element="tns:correlwaitRequest"/>
  |     </message>
  |     <message name="correlwaitResponseMessage">
  |         <part name="payload" element="tns:correlwaitResponse"/>
  |     </message>
  |     <message name="pushwaitRequestMessage">
  |         <part name="payload" element="tns:pushwaitRequest"/>
  |     </message>
  |     <message name="pushwaitResponseMessage">
  |         <part name="payload" element="tns:pushwaitResponse"/>
  |     </message>
  | 
  | <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  |      PORT TYPE DEFINITION - A port type groups a set of operations into
  |      a logical service unit.
  |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
  | 
  |     <!-- portType implemented by the correlwait BPEL process -->
  |     <portType name="correlwait">
  |         <operation name="process">
  |             <input  message="tns:correlwaitRequestMessage" />
  |             <output message="tns:correlwaitResponseMessage"/>
  |         </operation>
  |         <operation name="push">
  |             <input  message="tns:pushwaitRequestMessage" />
  |             <output message="tns:pushwaitResponseMessage"/>
  |         </operation>
  |     </portType>
  |   
  | 
  | <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  |      PARTNER LINK TYPE DEFINITION
  |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
  |     <plnk:partnerLinkType name="correlwait">
  |         <plnk:role name="correlwaitProvider" portType="tns:correlwait"/>
  |     </plnk:partnerLinkType>
  |     
  | 
  | <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  |      PROPERTY DEFINITION
  |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
  |     <bpel:property name="IDproperty" type="int"/>
  |     <bpel:propertyAlias propertyName="tns:IDproperty" messageType="tns:correlwaitRequestMessage" part="payload" query="/tns:payload/ID"/>
  |     <bpel:propertyAlias propertyName="tns:IDproperty" messageType="tns:pushwaitRequestMessage" part="payload" query="/tns:payload/ID"/>
  | </definitions>
  | 
  | 

BPEL

  | <?xml version="1.0" encoding="UTF-8"?>
  | <bpws:process exitOnStandardFault="yes" name="correlwait"
  |     suppressJoinFailure="yes"
  |     targetNamespace="http://eclipse.org/bpel/correlwait"
  |     xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
  |     xmlns:ns="http://eclipse.org/bpel/correlwaitArtifacts" xmlns:tns="http://eclipse.org/bpel/correlwait">
  |     <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
  |         location="correlwait.wsdl" namespace="http://eclipse.org/bpel/correlwait"/>
  |     <bpws:partnerLinks>
  |         <bpws:partnerLink myRole="correlwaitProvider" name="client" partnerLinkType="tns:correlwait"/>
  |     </bpws:partnerLinks>
  |     <bpws:variables>
  |         <bpws:variable messageType="tns:correlwaitRequestMessage" name="input"/>
  |         <bpws:variable messageType="tns:correlwaitResponseMessage" name="output"/>
  |         <bpws:variable messageType="tns:pushwaitRequestMessage" name="pushRequest"/>
  |         <bpws:variable messageType="tns:pushwaitResponseMessage" name="pushResponse"/>
  |     </bpws:variables>
  |     <bpws:correlationSets>
  |         <bpws:correlationSet name="IDCorrelationSet" properties="tns:IDproperty"/>
  |     </bpws:correlationSets>
  |     <bpws:sequence name="main">
  |         <bpws:receive createInstance="yes" name="receiveInput"
  |             operation="process" partnerLink="client"
  |             portType="tns:correlwait" variable="input">
  |             <bpws:correlations>
  |                 <bpws:correlation set="IDCorrelationSet" initiate="yes"/>
  |             </bpws:correlations>
  |         </bpws:receive>
  |         <bpws:assign name="outputAssign" validate="no">
  |             <bpws:copy>
  |                 <bpws:from><bpws:expression>concat($input.payload/tns:input, ' started.')</bpws:expression></bpws:from>
  |                 <bpws:to variable="output" part="payload" query="/tns:payload/result"/>
  |             </bpws:copy>
  |         </bpws:assign>
  |         <bpws:reply name="replyOutput" operation="process"
  |             partnerLink="client" portType="tns:correlwait" variable="output"/>
  |         <bpws:receive name="pushReceive" operation="push"
  |             partnerLink="client" portType="tns:correlwait" variable="pushRequest">
  |         </bpws:receive>
  |         <bpws:assign name="pushAssign" validate="no">
  |             <bpws:copy>
  |                 <bpws:from>
  |                     <bpws:expression>concat($input.payload/tns:input, ', ', $pushRequest.payload/tns:name, ' pushed.')</bpws:expression>
  |                 </bpws:from>
  |                 <bpws:to variable="pushResponse" part="payload" query="/tns:payload/status"/>
  |             </bpws:copy>
  |         </bpws:assign>
  |         <bpws:reply name="pushReply" operation="push"
  |             partnerLink="client" portType="tns:correlwait" variable="pushResponse"/>
  |     </bpws:sequence>
  | </bpws:process>
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4180054#4180054

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4180054



More information about the jboss-user mailing list