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