You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by si...@alice.it on 2008/03/28 00:15:31 UTC
failed assignement
Hi guys,
I found a strange error developing my own work, here it is:
ERROR - ASSIGN - Assignment Fault: {http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=100,faultExplanation=The R-Value must select one item.
and here is the sequence that is the root of the problem:
<invoke inputVariable="requestInvokeCCCheckMessage" operation="cccheck" outputVariable="replyInvokeCCCheckMessage" partnerLink="CCCheckPartnerLink" portType="cccheck:cccheckPortType"/>
<assign>
<copy>
<from variable="replyInvokeCCCheckMessage" part="app"/>
<to variable="approvedVariable"/>
</copy>
</assign>
I've to add that my BPEL file is generated in an automatic way from a Java Class I wrote.
I don't know what is happening because syntatically it seems works fine.
My code is build to depict in the code a graph, then all activity are putted into a <flow> and grouped into <sequence> linked by <link>.
I add: i'm using ODE 1.1 jbi version in ServiceMix 3.1.2.
To be clearest I attach all my BPEL:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:cccheck="http://localhost:8080/CCCheck" xmlns:test="http://localhost:8080/processes/bank.wsdl" xmlns:tns="http://localhost:8080/processes/bank" xmlns:xsd="http://www.w3.org/2001/XMLSchema" expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0" name="bank" queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0" targetNamespace="http://localhost:8080/processes/bank" suppressJoinFailure="yes">
<import importType="http://schemas.xmlsoap.org/wsdl/" location="CCCheck.wsdl" namespace="http://localhost:8080/CCCheck"/>
<import importType="http://schemas.xmlsoap.org/wsdl/" location="bank.wsdl" namespace="http://localhost:8080/processes/bank.wsdl"/>
<partnerLinks>
<partnerLink name="CCCheckPartnerLink" partnerLinkType="cccheck:CCCheckPartnerLinkType" partnerRole="CCCheckRole"/>
<partnerLink myRole="requestCCheckRole" name="requestCCheckPartnerLink" partnerLinkType="test:requestCCheckPartnerLinkType"/>
<partnerLink name="replyCCHeckPartnerLink" partnerLinkType="test:replyCCHeckPartnerLinkType" partnerRole="replyCCHeckRole"/>
</partnerLinks>
<variables>
<variable messageType="cccheck:cccheckResponseMessage" name="replyInvokeCCCheckMessage"/>
<variable messageType="cccheck:cccheckRequestMessage" name="requestInvokeCCCheckMessage"/>
<variable messageType="test:requestCCheckMessage" name="requestCCheckMessage"/>
<variable messageType="test:replyCCHeckMessage" name="replyCCHeckMessage"/>
<variable name="CCNumVariable" type="xsd:integer"/>
<variable name="approvedVariable" type="xsd:boolean"/>
<variable name="4" type="xsd:boolean"/>
<variable name="3" type="xsd:boolean"/>
<variable name="2" type="xsd:boolean"/>
<variable name="1" type="xsd:boolean"/>
</variables>
<sequence>
<assign>
<copy>
<from>false()</from>
<to variable="4"/>
</copy>
<copy>
<from>false()</from>
<to variable="3"/>
</copy>
<copy>
<from>false()</from>
<to variable="2"/>
</copy>
<copy>
<from>true()</from>
<to variable="1"/>
</copy>
</assign>
<flow>
<links>
<link name="3to4"/>
<link name="2to3"/>
<link name="1to2"/>
</links>
<sequence>
<exit/>
<sources/>
<targets>
<target linkName="3to4"/>
</targets>
</sequence>
<sequence>
<if name="0">
<condition>true()</condition>
<sequence>
<assign>
<copy>
<from variable="approvedVariable"/>
<to part="approved" variable="replyCCHeckMessage"/>
</copy>
<copy>
<from variable="CCNumVariable"/>
<to part="CCNum" variable="replyCCHeckMessage"/>
</copy>
</assign>
<invoke inputVariable="replyCCHeckMessage" operation="replyCCHeck" partnerLink="replyCCHeckPartnerLink" portType="test:replyCCHeckPortType"/>
<assign>
<copy>
<from>false()</from>
<to variable="3"/>
</copy>
<copy>
<from>true()</from>
<to variable="4"/>
</copy>
</assign>
</sequence>
</if>
<sources>
<source linkName="3to4" transitionCondition="4"/>
</sources>
<targets>
<target linkName="2to3"/>
</targets>
</sequence>
<sequence>
<if name="1">
<condition>true()</condition>
<sequence>
<assign>
<copy>
<from variable="CCNumVariable"/>
<to part="c" variable="requestInvokeCCCheckMessage"/>
</copy>
</assign>
<invoke inputVariable="requestInvokeCCCheckMessage" operation="cccheck" outputVariable="replyInvokeCCCheckMessage" partnerLink="CCCheckPartnerLink" portType="cccheck:cccheckPortType"/>
<assign>
<copy>
<from variable="replyInvokeCCCheckMessage" part="app"/>
<to variable="approvedVariable"/>
</copy>
</assign>
<assign>
<copy>
<from>false()</from>
<to variable="2"/>
</copy>
<copy>
<from>true()</from>
<to variable="3"/>
</copy>
</assign>
</sequence>
</if>
<sources>
<source linkName="2to3" transitionCondition="3"/>
</sources>
<targets>
<target linkName="1to2"/>
</targets>
</sequence>
<sequence>
<if name="2">
<condition>true()</condition>
<sequence>
<receive createInstance="yes" operation="requestCCheck" partnerLink="requestCCheckPartnerLink" portType="test:requestCCheckPortType" variable="requestCCheckMessage"/>
<assign>
<copy>
<from part="CCNum" variable="requestCCheckMessage"/>
<to variable="CCNumVariable"/>
</copy>
</assign>
<assign>
<copy>
<from>false()</from>
<to variable="1"/>
</copy>
<copy>
<from>true()</from>
<to variable="2"/>
</copy>
</assign>
</sequence>
</if>
<sources>
<source linkName="1to2" transitionCondition="2"/>
</sources>
<targets/>
</sequence>
</flow>
</sequence>
</process>
Thank you all guys, please help me.
Regards,
Simone
Re: failed assignement
Posted by Bruce Snyder <br...@gmail.com>.
On Thu, Mar 27, 2008 at 5:15 PM, <si...@alice.it> wrote:
> Hi guys,
> I found a strange error developing my own work, here it is:
> ERROR - ASSIGN - Assignment Fault: {http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=100,faultExplanation=The R-Value must select one item.
>
> and here is the sequence that is the root of the problem:
>
> <invoke inputVariable="requestInvokeCCCheckMessage" operation="cccheck" outputVariable="replyInvokeCCCheckMessage" partnerLink="CCCheckPartnerLink" portType="cccheck:cccheckPortType"/>
> <assign>
> <copy>
> <from variable="replyInvokeCCCheckMessage" part="app"/>
> <to variable="approvedVariable"/>
> </copy>
> </assign>
>
> I've to add that my BPEL file is generated in an automatic way from a Java Class I wrote.
> I don't know what is happening because syntatically it seems works fine.
> My code is build to depict in the code a graph, then all activity are putted into a <flow> and grouped into <sequence> linked by <link>.
> I add: i'm using ODE 1.1 jbi version in ServiceMix 3.1.2.
> To be clearest I attach all my BPEL:
>
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <process xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:cccheck="http://localhost:8080/CCCheck" xmlns:test="http://localhost:8080/processes/bank.wsdl" xmlns:tns="http://localhost:8080/processes/bank" xmlns:xsd="http://www.w3.org/2001/XMLSchema" expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0" name="bank" queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0" targetNamespace="http://localhost:8080/processes/bank" suppressJoinFailure="yes">
> <import importType="http://schemas.xmlsoap.org/wsdl/" location="CCCheck.wsdl" namespace="http://localhost:8080/CCCheck"/>
> <import importType="http://schemas.xmlsoap.org/wsdl/" location="bank.wsdl" namespace="http://localhost:8080/processes/bank.wsdl"/>
> <partnerLinks>
> <partnerLink name="CCCheckPartnerLink" partnerLinkType="cccheck:CCCheckPartnerLinkType" partnerRole="CCCheckRole"/>
> <partnerLink myRole="requestCCheckRole" name="requestCCheckPartnerLink" partnerLinkType="test:requestCCheckPartnerLinkType"/>
> <partnerLink name="replyCCHeckPartnerLink" partnerLinkType="test:replyCCHeckPartnerLinkType" partnerRole="replyCCHeckRole"/>
> </partnerLinks>
> <variables>
> <variable messageType="cccheck:cccheckResponseMessage" name="replyInvokeCCCheckMessage"/>
> <variable messageType="cccheck:cccheckRequestMessage" name="requestInvokeCCCheckMessage"/>
> <variable messageType="test:requestCCheckMessage" name="requestCCheckMessage"/>
> <variable messageType="test:replyCCHeckMessage" name="replyCCHeckMessage"/>
> <variable name="CCNumVariable" type="xsd:integer"/>
> <variable name="approvedVariable" type="xsd:boolean"/>
> <variable name="4" type="xsd:boolean"/>
> <variable name="3" type="xsd:boolean"/>
> <variable name="2" type="xsd:boolean"/>
> <variable name="1" type="xsd:boolean"/>
> </variables>
> <sequence>
> <assign>
> <copy>
> <from>false()</from>
> <to variable="4"/>
> </copy>
> <copy>
> <from>false()</from>
> <to variable="3"/>
> </copy>
> <copy>
> <from>false()</from>
> <to variable="2"/>
> </copy>
> <copy>
> <from>true()</from>
> <to variable="1"/>
> </copy>
> </assign>
> <flow>
> <links>
> <link name="3to4"/>
> <link name="2to3"/>
> <link name="1to2"/>
> </links>
> <sequence>
> <exit/>
> <sources/>
> <targets>
> <target linkName="3to4"/>
> </targets>
> </sequence>
> <sequence>
> <if name="0">
> <condition>true()</condition>
> <sequence>
> <assign>
> <copy>
> <from variable="approvedVariable"/>
> <to part="approved" variable="replyCCHeckMessage"/>
> </copy>
> <copy>
> <from variable="CCNumVariable"/>
> <to part="CCNum" variable="replyCCHeckMessage"/>
> </copy>
> </assign>
> <invoke inputVariable="replyCCHeckMessage" operation="replyCCHeck" partnerLink="replyCCHeckPartnerLink" portType="test:replyCCHeckPortType"/>
> <assign>
> <copy>
> <from>false()</from>
> <to variable="3"/>
> </copy>
> <copy>
> <from>true()</from>
> <to variable="4"/>
> </copy>
> </assign>
> </sequence>
> </if>
> <sources>
> <source linkName="3to4" transitionCondition="4"/>
> </sources>
> <targets>
> <target linkName="2to3"/>
> </targets>
> </sequence>
> <sequence>
> <if name="1">
> <condition>true()</condition>
> <sequence>
> <assign>
> <copy>
> <from variable="CCNumVariable"/>
> <to part="c" variable="requestInvokeCCCheckMessage"/>
> </copy>
> </assign>
> <invoke inputVariable="requestInvokeCCCheckMessage" operation="cccheck" outputVariable="replyInvokeCCCheckMessage" partnerLink="CCCheckPartnerLink" portType="cccheck:cccheckPortType"/>
> <assign>
> <copy>
> <from variable="replyInvokeCCCheckMessage" part="app"/>
> <to variable="approvedVariable"/>
> </copy>
> </assign>
> <assign>
> <copy>
> <from>false()</from>
> <to variable="2"/>
> </copy>
> <copy>
> <from>true()</from>
> <to variable="3"/>
> </copy>
> </assign>
> </sequence>
> </if>
> <sources>
> <source linkName="2to3" transitionCondition="3"/>
> </sources>
> <targets>
> <target linkName="1to2"/>
> </targets>
> </sequence>
> <sequence>
> <if name="2">
> <condition>true()</condition>
> <sequence>
> <receive createInstance="yes" operation="requestCCheck" partnerLink="requestCCheckPartnerLink" portType="test:requestCCheckPortType" variable="requestCCheckMessage"/>
> <assign>
> <copy>
> <from part="CCNum" variable="requestCCheckMessage"/>
> <to variable="CCNumVariable"/>
> </copy>
> </assign>
> <assign>
> <copy>
> <from>false()</from>
> <to variable="1"/>
> </copy>
> <copy>
> <from>true()</from>
> <to variable="2"/>
> </copy>
> </assign>
> </sequence>
> </if>
> <sources>
> <source linkName="1to2" transitionCondition="2"/>
> </sources>
> <targets/>
> </sequence>
> </flow>
> </sequence>
> </process>
Again, you're better off to ask this question on the mailing lists for
the Apache ODE project as it is a BPEL engine and that project
maintains the ODE JBI service engine:
http://ode.apache.org/
Bruce
--
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'
Apache ActiveMQ - http://activemq.org/
Apache Camel - http://activemq.org/camel/
Apache ServiceMix - http://servicemix.org/
Apache Geronimo - http://geronimo.apache.org/
Blog: http://bruceblog.org/