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/