« Return to Thread: Error Assign activity: selectionFailure; Fault Data is null

Re: Error Assign activity: selectionFailure; Fault Data is null

by Murali Pottlapelli :: Rate this Message:

Reply to Author | View in Thread

BPEL-SE runtime supports ignoreMissingFromData, but there is no design time support. So please switch to source/text mode, identify "copy" element where you getting selection failure and add ignoreMissingFromData attribute and set it to yes. I have attached example BP.

   <copy ignoreMissingFromData="yes"?>
    ...
    ...

   </copy>

If you change logging level to FINEST on BPEL-SE it would print the variable value right after the "Assign" activity, it should help you to identify missing elements.

Regards
Murali


Romano Londt wrote:
Hi Piotr,

How can I verify if the assigned variable is null? I inserted a record in my
table that does not contain null values. 

And do you have an idea how to handle null values with the assign activity?

Regards,

Romano



Piotr Kaczyński-2 wrote:
  
Hi Romano,

You probably try to assign null value to a variable. Please verify, that 
"left side" od the assignment is not null.

I get these errors all the time.

Best regards,
Piotr

Romano Londt pisze:
    
Hi,

I am trying to build a simple BPel proces which moves data from one table
to
another. 


When I run the proces I recieve the folowing error:

BPCOR-6151:The process instance has been terminated because a fault was 
not handled; Fault Name is 
{http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure; 
Fault Data is null
com.sun.jbi.engine.bpel.core.bpel.exception.StandardException: I18N: 
BPCOR-3025: Selection Failure occurred in BPEL({_NS_}TestProcess) at line 
23!
BPCOR-6129:Line Number is 21
BPCOR-6130:Activity Name is Assign1
        at 
com.sun.jbi.engine.bpel.core.bpel.engine.impl.BPELInterpreter.createVirtualFaultUnit(BPELInterpreter.java:234)
        at 
com.sun.jbi.engine.bpel.core.bpel.engine.impl.BPELInterpreter.execute(BPELInterpreter.java:202)
        at 
com.sun.jbi.engine.bpel.core.bpel.engine.BusinessProcessInstanceThread.execute(BusinessProcessInstanceThread.java:98)
        at 
com.sun.jbi.engine.bpel.core.bpel.engine.impl.BPELProcessManagerImpl.process(BPELProcessManagerImpl.java:1001)
        at 
com.sun.jbi.engine.bpel.core.bpel.engine.impl.EngineImpl.process(EngineImpl.java:258)
        at 
com.sun.jbi.engine.bpel.core.bpel.engine.impl.EngineImpl.process(EngineImpl.java:1229)
        at 
com.sun.jbi.engine.bpel.BPELSEInOutThread.processRequest(BPELSEInOutThread.java:635)
        at 
com.sun.jbi.engine.bpel.BPELSEInOutThread.processMsgEx(BPELSEInOutThread.java:308)
        at 
com.sun.jbi.engine.bpel.BPELSEInOutThread.run(BPELSEInOutThread.java:194)




Do you have any idea's how to solve my problem?


I use the folowing code


[code BPEL]

<?xml version="1.0"?>
<process
    name="TestProcess"
    targetNamespace="_NS_"
    xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="_NS_" 
xmlns:sxt="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace" 
xmlns:sxed="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor" 
xmlns:ns0="http://j2ee.netbeans.org/xsd/tableSchema">
   <import namespace="http://j2ee.netbeans.org/wsdl/Test1" 
location="Partners/Test1/Test1.wsdl" 
importType="http://schemas.xmlsoap.org/wsdl/"/>
   <import namespace="http://j2ee.netbeans.org/wsdl/Test2" 
location="Partners/Test2/Test2.wsdl" 
importType="http://schemas.xmlsoap.org/wsdl/"/>
   <partnerLinks>
      <partnerLink name="PartnerLink2" 
xmlns:tns="http://j2ee.netbeans.org/wsdl/Test2" 
partnerLinkType="tns:jdbcpartner" partnerRole="jdbcPortTypeRole"/>
      <partnerLink name="PartnerLink1" 
xmlns:tns="http://j2ee.netbeans.org/wsdl/Test1" 
partnerLinkType="tns:jdbcpartner" myRole="jdbcPortTypeRole"/>
   </partnerLinks>
   <variables>
      <variable name="InsertOut" 
xmlns:tns="http://j2ee.netbeans.org/wsdl/Test2" 
messageType="tns:insertRetMsg"/>
      <variable name="InsertIn" 
xmlns:tns="http://j2ee.netbeans.org/wsdl/Test2" 
messageType="tns:inputMsg"/>
      <variable name="PollrecordsIn" 
xmlns:tns="http://j2ee.netbeans.org/wsdl/Test1" 
messageType="tns:inputMsg"/>
   </variables>
   <sequence>
      <receive name="Receive1" createInstance="yes" 
partnerLink="PartnerLink1" operation="pollrecords" 
xmlns:tns="http://j2ee.netbeans.org/wsdl/Test1" 
portType="tns:jdbcPortType" variable="PollrecordsIn"/>
      <assign name="Assign1" validate="no">
         <copy>
            <from>$PollrecordsIn.part/ns0:record/ns0:OID</from>
            <to>$InsertIn.part/ns0:record/ns0:OID</to>
         </copy>
      </assign>
      <invoke name="Invoke1" partnerLink="PartnerLink2"
operation="insert" 
xmlns:tns="http://j2ee.netbeans.org/wsdl/Test2" 
portType="tns:jdbcPortType" inputVariable="InsertIn" 
outputVariable="InsertOut"/>
   </sequence>
</process>

[/code]


I am using the jdbc webservice component 
[code webservice]
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="Test1" 
targetNamespace="http://j2ee.netbeans.org/wsdl/Test1" 
xmlns="http://schemas.xmlsoap.org/wsdl/" 
xmlns:ns="http://j2ee.netbeans.org/xsd/tableSchema" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:tns="http://j2ee.netbeans.org/wsdl/Test1" 
xmlns:plink="http://docs.oasis-open.org/wsbpel/2.0/plnktype" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/">
  <types>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/">
            <xsd:import 
namespace="http://j2ee.netbeans.org/xsd/tableSchema" 
schemaLocation="TEST1.xsd"/>
        </xsd:schema>
  </types>
  <message name="outputMsg">
    <part name="part" element="ns:TEST1"/>
  </message>
  <message name="insertRetMsg">
    <part name="part" type="xsd:int"/>
  </message>
  <message name="inputMsg">
    <part name="part" element="ns:TEST1"/>
  </message>
  <portType name="jdbcPortType">
    <operation name="insert">
      <input name="inputInsert" message="tns:inputMsg"/>
      <output name="outputInsert" message="tns:insertRetMsg"/>
    </operation>
    <operation name="update">
      <input name="inputUpdate" message="tns:inputMsg"/>
    </operation>
    <operation name="delete">
      <input name="inputDelete" message="tns:inputMsg"/>
    </operation>
    <operation name="find">
      <input name="inputFind" message="tns:inputMsg"/>
      <output name="outputFind" message="tns:outputMsg"/>
    </operation>
    <operation name="pollrecords">
      <input name="inputPoll" message="tns:inputMsg"/>
    </operation>
  </portType>
  <binding name="binding" type="tns:jdbcPortType">
    <jdbc:binding 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/"/>
    <operation name="insert">
    <jdbc:operation 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/"/>
      <input name="inputInsert">
    <jdbc:input 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/" 
MarkColumnName="" MarkColumnValue="" MoveRowToTableName="" PKName="OID" 
PollMilliSeconds="5000" PollingPostProcessing="MoveRow" TableName="TEST1" 
Transaction="NOTransaction" numberOfRecords="" operationType="insert" 
paramOrder="OID,DTD_VERZOEK,USR_DELETED,USR_CREATED,USR_CHANGED,DTD_CREATED,OID_JN,DTD_CHANGED,HAG_OID,DTD_RESPONSE,DTD_DELETED,BERICHT"

sql="insert into TEST1 
(OID,DTD_VERZOEK,USR_DELETED,USR_CREATED,USR_CHANGED,DTD_CREATED,OID_JN,DTD_CHANGED,HAG_OID,DTD_RESPONSE,DTD_DELETED,BERICHT)

values (?,?,?,?,?,?,?,?,?,?,?,?)"/>
      </input>
      <output name="outputInsert">
    <jdbc:output 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/" 
returnPartName="part"/>
      </output>
    </operation>
    <operation name="update">
    <jdbc:operation 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/"/>
      <input name="inputUpdate">
    <jdbc:input 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/" 
MarkColumnName="" MarkColumnValue="" MoveRowToTableName="" PKName="OID" 
PollMilliSeconds="5000" PollingPostProcessing="MoveRow" TableName="TEST1" 
Transaction="NOTransaction" numberOfRecords="" operationType="update" 
paramOrder="OID,DTD_VERZOEK,USR_DELETED,USR_CREATED,USR_CHANGED,DTD_CREATED,OID_JN,DTD_CHANGED,HAG_OID,DTD_RESPONSE,DTD_DELETED,BERICHT"

sql="update TEST1 set OID  = ?,DTD_VERZOEK  = ?,USR_DELETED  = 
?,USR_CREATED  = ?,USR_CHANGED  = ?,DTD_CREATED  = ?,OID_JN  = 
?,DTD_CHANGED  = ?,HAG_OID  = ?,DTD_RESPONSE  = ?,DTD_DELETED  =
?,BERICHT 
 = ?"/>
      </input>
    </operation>
    <operation name="delete">
    <jdbc:operation 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/"/>
      <input name="inputDelete">
    <jdbc:input 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/" 
MarkColumnName="" MarkColumnValue="" MoveRowToTableName="" PKName="OID" 
PollMilliSeconds="5000" PollingPostProcessing="MoveRow" TableName="TEST1" 
Transaction="NOTransaction" numberOfRecords="" operationType="delete" 
paramOrder="" sql="delete from TEST1"/>
      </input>
    </operation>
    <operation name="find">
    <jdbc:operation 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/"/>
      <input name="inputFind">
    <jdbc:input 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/" 
MarkColumnName="" MarkColumnValue="" MoveRowToTableName="" PKName="OID" 
PollMilliSeconds="5000" PollingPostProcessing="MoveRow" TableName="TEST1" 
Transaction="NOTransaction" numberOfRecords="" operationType="find" 
paramOrder="" sql="select 
OID,DTD_VERZOEK,USR_DELETED,USR_CREATED,USR_CHANGED,DTD_CREATED,OID_JN,DTD_CHANGED,HAG_OID,DTD_RESPONSE,DTD_DELETED,BERICHT

from TEST1"/>
      </input>
      <output name="outputFind">
    <jdbc:output 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/" 
returnPartName="part"/>
      </output>
    </operation>
    <operation name="pollrecords">
    <jdbc:operation 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/"/>
      <input name="inputPoll">
    <jdbc:input 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/" 
MarkColumnName="" MarkColumnValue="" MoveRowToTableName="" PKName="OID" 
PollMilliSeconds="5000" PollingPostProcessing="Delete" TableName="TEST1" 
Transaction="NOTransaction" numberOfRecords="" operationType="poll" 
paramOrder="" sql="select 
OID,DTD_VERZOEK,USR_DELETED,USR_CREATED,USR_CHANGED,DTD_CREATED,OID_JN,DTD_CHANGED,HAG_OID,DTD_RESPONSE,DTD_DELETED,BERICHT

from TEST1"/>
      </input>
    </operation>
  </binding>
  <service name="service">
    <port name="port" binding="tns:binding">
    <jdbc:address 
xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/" 
jndiName="jdbc/HysXeDS"/>
    </port>
  </service>
    <plink:partnerLinkType 
xmlns:plink="http://docs.oasis-open.org/wsbpel/2.0/plnktype" 
name="jdbcpartner">
        <plink:role name="jdbcPortTypeRole" portType="tns:jdbcPortType"/>
    </plink:partnerLinkType>
</definitions>


<?xml version="1.0" encoding="UTF-8"?>
  <xsd:schema elementFormDefault="qualified" 
targetNamespace="http://j2ee.netbeans.org/xsd/tableSchema" 
xmlns="http://j2ee.netbeans.org/xsd/tableSchema" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="TEST1" type="TEST1"></xsd:element>
    <xsd:complexType name="TEST1">
      <xsd:sequence>
        <xsd:element maxOccurs="unbounded" ref="record"></xsd:element>
      </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="record">
      <xsd:complexType>
        <xsd:sequence>
          <xsd:element name="OID" type="xsd:decimal"></xsd:element>
          <xsd:element name="DTD_VERZOEK" type="xsd:string" 
minOccurs="0"></xsd:element>
          <xsd:element name="USR_DELETED" type="xsd:string" 
minOccurs="0"></xsd:element>
          <xsd:element name="USR_CREATED" type="xsd:string" 
minOccurs="0"></xsd:element>
          <xsd:element name="USR_CHANGED" type="xsd:string" 
minOccurs="0"></xsd:element>
          <xsd:element name="DTD_CREATED" type="xsd:string" 
minOccurs="0"></xsd:element>
          <xsd:element name="OID_JN" type="xsd:decimal" 
minOccurs="0"></xsd:element>
          <xsd:element name="DTD_CHANGED" type="xsd:string" 
minOccurs="0"></xsd:element>
          <xsd:element name="HAG_OID" type="xsd:decimal" 
minOccurs="0"></xsd:element>
          <xsd:element name="DTD_RESPONSE" type="xsd:string" 
minOccurs="0"></xsd:element>
          <xsd:element name="DTD_DELETED" type="xsd:string" 
minOccurs="0"></xsd:element>
          <xsd:element name="BERICHT" type="xsd:string" 
minOccurs="0"></xsd:element>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
[/code]

  
      
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...



    

  

<?xml version="1.0" encoding="windows-1252"?>
<process
    name="process"
    targetNamespace="http://enterprise.netbeans.org/bpel/assign/AssignBPEL/IgnoreMissingFromData/AssignBpel/process"
    xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://enterprise.netbeans.org/bpel/assign/AssignBPEL/IgnoreMissingFromData/AssignBpel/process" xmlns:ns1="http://xml.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/schema/schema2" xmlns:ns2="http://j2ee.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/wsdl/testWsdl" xmlns:sxt="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace" xmlns:sxed="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor" xmlns:ns3="http://xml.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/schema/schema1">
   <import namespace="http://j2ee.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/wsdl/testWsdl" location="testWsdl.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
   <import namespace="http://xml.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/schema/schema2" location="../IgnoreMissingFromData/schema2.xsd" importType="http://www.w3.org/2001/XMLSchema"/>
   <import namespace="http://xml.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/schema/schema2" location="schema2.xsd" importType="http://www.w3.org/2001/XMLSchema"/>
   <partnerLinks>
      <partnerLink name="PartnerLink1" xmlns:tns="http://j2ee.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/wsdl/testWsdl" partnerLinkType="tns:testWsdl" myRole="testWsdlPortTypeRole"/>
   </partnerLinks>
   <variables>
      <variable name="Variable2" element="ns1:Main"/>
      <variable name="Variable1" messageType="ns2:testWsdlOperationRequest"/>
      <variable name="TestWsdlOperationOut" xmlns:tns="http://j2ee.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/wsdl/testWsdl" messageType="tns:testWsdlOperationResponse"/>
      <variable name="TestWsdlOperationIn" xmlns:tns="http://j2ee.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/wsdl/testWsdl" messageType="tns:testWsdlOperationRequest"/>
   </variables>
   <faultHandlers>
      <catchAll>
         <sequence name="Sequence2">
            <assign name="Assign3">
               <copy>
                  <from>concat($TestWsdlOperationIn.In2, ' error.')</from>
                  <to variable="TestWsdlOperationOut" part="Return"/>
               </copy>
            </assign>
            <reply name="Reply2" partnerLink="PartnerLink1" operation="testWsdlOperation" portType="ns2:testWsdlPortType" variable="TestWsdlOperationOut"/>
         </sequence>
      </catchAll>
   </faultHandlers>
   <sequence>
      <receive name="Receive1" createInstance="yes" partnerLink="PartnerLink1" operation="testWsdlOperation" xmlns:tns="http://j2ee.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/wsdl/testWsdl" portType="tns:testWsdlPortType" variable="TestWsdlOperationIn"/>
      <if name="If1">
         <condition>$TestWsdlOperationIn.In2 = 'case1'</condition>
         <sequence name="Sequence1">
            <assign name="Assign8">
               <copy>
                  <from>concat($TestWsdlOperationIn.In2, ' in branch1')</from>
                  <to variable="TestWsdlOperationIn" part="In2"/>
               </copy>
            </assign>
            <assign name="Assign1">
               <copy ignoreMissingFromData="yes">
                     <from variable="Variable1" part="In2"/>
                        <to variable="TestWsdlOperationOut" part="Return"/>
                  </copy>
            </assign>
         </sequence>
         <elseif>
            <condition>$TestWsdlOperationIn.In2 = 'case2'</condition>
            <sequence name="Sequence3">
               <assign name="Assign9">
                  <copy>
                     <from>concat($TestWsdlOperationIn.In2, ' in branch2')</from>
                     <to variable="TestWsdlOperationIn" part="In2"/>
                  </copy>
               </assign>
               <assign name="Assign2">
                  <copy ignoreMissingFromData="yes">
                        <from>$Variable1.In1/ns3:Data</from>
                           <to variable="TestWsdlOperationOut" part="Return"/>
                     </copy>
               </assign>
            </sequence>
         </elseif>
         <elseif>
            <condition>$TestWsdlOperationIn.In2 = 'case3'</condition>
            <sequence name="Sequence4">
               <assign name="Assign10">
                  <copy>
                     <from>concat($TestWsdlOperationIn.In2, ' in branch3')</from>
                     <to variable="TestWsdlOperationIn" part="In2"/>
                  </copy>
               </assign>
               <assign name="Assign5">
                  <copy>
                        <from>$TestWsdlOperationIn.In1/ns3:Id</from>
                           <to>$Variable1.In1/ns3:Id</to>
                     </copy>
                     <copy ignoreMissingFromData="yes">
                        <from>$Variable1.In1/ns3:Data</from>
                           <to variable="TestWsdlOperationOut" part="Return"/>
                     </copy>
               </assign>
            </sequence>
         </elseif>
         <elseif>
            <condition>$TestWsdlOperationIn.In2 = 'case4'</condition>
            <sequence name="Sequence5">
               <assign name="Assign11">
                  <copy>
                     <from>concat($TestWsdlOperationIn.In2, ' in branch4')</from>
                     <to variable="TestWsdlOperationIn" part="In2"/>
                  </copy>
               </assign>
               <assign name="Assign6">
                  <copy ignoreMissingFromData="yes">
                        <from>$Variable2/ns1:Sub2</from>
                           <to variable="TestWsdlOperationOut" part="Return"/>
                     </copy>
               </assign>
            </sequence>
         </elseif>
         <elseif>
            <condition>$TestWsdlOperationIn.In2 = 'case5'</condition>
            <sequence name="Sequence6">
               <assign name="Assign12">
                  <copy>
                     <from>concat($TestWsdlOperationIn.In2, ' in branch5')</from>
                     <to variable="TestWsdlOperationIn" part="In2"/>
                  </copy>
               </assign>
               <assign name="Assign7">
                  <copy>
                        <from>$TestWsdlOperationIn.In1/ns3:Id</from>
                           <to>$Variable2/ns1:Sub1</to>
                     </copy>
                     <copy ignoreMissingFromData="yes">
                        <from>$Variable2/ns1:Sub2</from>
                           <to variable="TestWsdlOperationOut" part="Return"/>
                     </copy>
               </assign>
            </sequence>
         </elseif>
      </if>
      <assign name="Assign4">
         <copy>
            <from>concat($TestWsdlOperationIn.In2, ' successful')</from>
            <to variable="TestWsdlOperationOut" part="Return"/>
         </copy>
      </assign>
      <reply name="Reply1" partnerLink="PartnerLink1" operation="testWsdlOperation" xmlns:tns="http://j2ee.netbeans.org/assign/AssignBPEL/IgnoreMissingFromData/wsdl/testWsdl" portType="tns:testWsdlPortType" variable="TestWsdlOperationOut"/>
   </sequence>
</process>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...

 « Return to Thread: Error Assign activity: selectionFailure; Fault Data is null