BPEL4WS

Hi Friends,
               How to import and export the integration process using BPEL4WS

Dear Vijay,
Business Process Management supports the process definition part of BPEL4WS 1.1 (Business Process Execution Language for Web Services 1.1). For more information about BPEL4WS, see http://ifr.sap.com/bpel4ws.
You can use BPEL4WS as the exchange format for exporting an integration process to a non-SAP system and executing it there. Conversely, you can use BPEL4WS to import an integration process from a non-SAP system to SAP Exchange Infrastructure and execute it there. For information about restrictions to the BPEL4WS import and export functions, see SAP Note 709650.
BPEL4WS is not intended for importing or exporting integration processes between Integration Repositories. For this purpose, use the Integration Repository import function instead (see also: Transporting XI Objects).
Features
Export
The export exports the integration process definition as a BPEL4WS representation. Additionally, data types, message types, and operations referenced in the process definition are exported as a WSDL description.
You can display the BPEL4WS representation of the process definition to be exported in the Process Editor at any point (see also: Process Editor). You can display the corresponding data type definitions in the form of a WSDL description in the output area.
Export Files
The process definition displayed in the Process Editor is exported as a file. The export file is a .zip file that contains the following files:
·        .wsdl).
The three files must have the same name. The .zip file must not contain any path specifications or directories.
       5.      Choose Continue.
The assistant displays all container elements that reference a message.
       6.      Assign the relevant abstract message interfaces.
       7.      Choose Continue.
The assistant displays all container elements that are used in correlations and that reference messages.
       8.      Assign the relevant abstract interfaces.
       9.      Choose Finish.
To ascertain whether the import was successful or whether errors occurred, check the resulting messages.

Similar Messages

  • Collaxa previews BPEL4WS Orchestration Server

    Collaxa previews BPEL4WS Orchestration Server
    Collaxa packages the emerging Web service orchestration standards
    (BPEL4WS and WS-Transaction) into a robust and easy-to-deploy software
    solution. Collaxa's Orchestration Server makes it easy for developers
    to publish synchronous and asynchronous Web services and compose them
    into reliable and transactional business flows. The built-in BPEL
    console offers rich reporting, auditing and debugging capabilities.
    Collaxa 2.0 provides a rapid evaluation experience and a
    cost-effective and scalable solution to enterprise integration that is
    easy to deploy and adheres to the Web services industry and Java/J2EE
    standards.
    Collaxa 2.0 Preview Release is available now for free 30-day
    evaluation on WebLogic Server™ and Jboss™ application servers
    (http://www.collaxa.com/developer.20b4A.html). Collaxa 2.0 is also
    available for WebSphere™ and SunONE™ application servers from
    [email protected]
    New and Noteworthy in Collaxa 2.0 Preview Release:
    * Direct support for BPEL4WS
    * Monitor execution of business flows through visual audit trail
    * Experience one-click install with the embedded Jboss version
    * BPEL4WS Debugger, improved BPEL console and audit trail
    * Integrate natively with BEA Workshop's async Web services
    * Make Microsoft Excel files flow using email with attachments
    * Send and receive messages through JMS queues and topics
    * Manipulate XML documents using XPATH expressions

    http://otn.oracle.com/bpel

  • XPath query must be an absolute path in BPEL2.0 or only BPEL4WS?

    Hi,
    The 1st version of the BPEL4WS specifies that "For XPath 1.0, the value of the query attribute MUST be an absolute locationPath (with '/' meaning the root of the document fragment representing the entire part)." (under 14.3)
    But in BPEL 2.0 I cannot find this rule. I wonder if it is different in this version. Especially, can people write something like this:
    //street[@name='blabla']
    in the xPath query of an assign activity? or are there any important restrictions on using xPath query for a copy selection?
    Please help
    Thank you very much

    Ok, I've realised i mixed up my partitions. sda1 is with windows, sda3 is the extended one. So i changed rootnoverify(hd0,2) to rootnoverify(hd0,0)
    And it shows something entirely different now. For a blink of about 0.5 seconds, it shows:
    Booting 'Windows 7'
    rootnoverify (hd0,0)
    chainloader +1
    GRUB loading stage2...
    After that 0.5 seconds GRUB goes back to the "system select" screen, the countdown to the default choice goes again, and this whole process loops to eternity...
    Problem solved! Frankly speaking, I can't really know why. Everything was solved after I reinstalled both systems. The only difference was that the line makeactive was commented out, not deleted... And I think it is that.
    Last edited by matnik (2010-11-20 14:55:04)

  • BPEL4WS 2.0 support

    Hello,
    I has a question to the version BPEL 2.0. With which version of the BPEL process of manager is BPEL 2.0 implemented? In the version 10.1.2.0.2 BPEL 1.1 is included at the moment. Is the version BPEL 2.0 support in the new version 10.1.3.1.0 in it? Or when should it be integrated in the Oracle BPEL process manager?
    Greeting Cathleen

    XDK 11g, which is included with JDeveloper 11g, supports XSLT 2.0. XDK 11g is also included with Oracle database 11g.
    http://oracle.su/appdev.111/b28394/adx_j_xslt.htm#CHDDAGGC
    Edited by: dvohra on Feb 26, 2009 7:02 AM

  • Error while assigning values to Array using Copy operation

    Hi,
    I am using the following code to copy a string value 'Text' and 'UDFTypeTitle' to the 1st and 2nd position of an array:-
    <assign name="Assign1">
    <copy>
    <from expression="string('Text')"/>
    <to variable="Invoke1_ReadUDFValues_InputVariable" part="params"
    query="/ns1:ReadUDFValues/ns1:Field[position()=1]"/>
    </copy>
    <copy>
    <from expression="string('UDFTypeTitle')"/>
    <to variable="Invoke1_ReadUDFValues_InputVariable" part="params"
    query="/ns1:ReadUDFValues/ns1:Field[position()=2]"/>
    </copy>
    </assign>
    I am getting the following error for the 2nd copy:-
    XPath query string returns zero node.
    The assign activity of the to node query is returning zero node.
    Either the to node data or the xpath query in the to node was invalid.
    According to BPEL4WS spec 1.1 section 14.3, verify the to node value at line number 103 in the BPEL source
    If I am removing the 2nd copy I am not getting any error.
    The structure of ns1:*ReadUDFValues* is as follows:-
    - <xsd:complexType name="ReadUDFValues">
    - <xsd:sequence>
    <xsd:element maxOccurs="unbounded" name="Field" type="tns:UDFValueFieldType" />
    <xsd:element minOccurs="0" name="Filter" type="xsd:string" />
    <xsd:element minOccurs="0" name="OrderBy" type="xsd:string" />
    </xsd:sequence>
    </xsd:complexType>
    The structure of ns1:ReadUDFValues/ns1:*Field* is as follows:-
    xsd:simpleType name="UDFValueFieldType">
    - <xsd:restriction base="xsd:string">
    <xsd:enumeration value="CodeValue" />
    <xsd:enumeration value="ConditionalIndicator" />
    <xsd:enumeration value="Cost" />
    <xsd:enumeration value="CreateDate" />
    <xsd:enumeration value="CreateUser" />
    <xsd:enumeration value="Description" />
    <xsd:enumeration value="Double" />
    <xsd:enumeration value="FinishDate" />
    <xsd:enumeration value="ForeignObjectId" />
    <xsd:enumeration value="Indicator" />
    <xsd:enumeration value="Integer" />
    <xsd:enumeration value="IsBaseline" />
    <xsd:enumeration value="IsTemplate" />
    <xsd:enumeration value="IsUDFTypeCalculated" />
    <xsd:enumeration value="IsUDFTypeConditional" />
    <xsd:enumeration value="LastUpdateDate" />
    <xsd:enumeration value="LastUpdateUser" />
    <xsd:enumeration value="ProjectObjectId" />
    <xsd:enumeration value="StartDate" />
    <xsd:enumeration value="Text"/>
    <xsd:enumeration value="UDFCodeObjectId" />
    <xsd:enumeration value="UDFTypeDataType" />
    <xsd:enumeration value="UDFTypeObjectId" />
    <xsd:enumeration value="UDFTypeSubjectArea" />
    <xsd:enumeration value="UDFTypeTitle"/>
    </xsd:restriction>
    </xsd:simpleType>
    Could you please suggest a solution?
    I also tried with position 0, 1 . still the same error.
    Regards,
    Sam

    Hi Naresh,
    The structure of ReadUDFValues is as follows:-
    - <xsd:complexType name="ReadUDFValues">
    - <xsd:sequence>
    <xsd:element maxOccurs="unbounded" name="Field" type="tns:UDFValueFieldType" />
    <xsd:element minOccurs="0" name="Filter" type="xsd:string" />
    <xsd:element minOccurs="0" name="OrderBy" type="xsd:string" />
    </xsd:sequence>
    </xsd:complexType>
    The structure of ns1:ReadUDFValues/ns1:Field is as follows:-
    xsd:simpleType name="UDFValueFieldType">
    - <xsd:restriction base="xsd:string">
    <xsd:enumeration value="CodeValue" />
    <xsd:enumeration value="ConditionalIndicator" />
    <xsd:enumeration value="Cost" />
    <xsd:enumeration value="CreateDate" />
    <xsd:enumeration value="CreateUser" />
    <xsd:enumeration value="Description" />
    <xsd:enumeration value="Double" />
    <xsd:enumeration value="FinishDate" />
    <xsd:enumeration value="ForeignObjectId" />
    <xsd:enumeration value="Indicator" />
    <xsd:enumeration value="Integer" />
    <xsd:enumeration value="IsBaseline" />
    <xsd:enumeration value="IsTemplate" />
    <xsd:enumeration value="IsUDFTypeCalculated" />
    <xsd:enumeration value="IsUDFTypeConditional" />
    <xsd:enumeration value="LastUpdateDate" />
    <xsd:enumeration value="LastUpdateUser" />
    <xsd:enumeration value="ProjectObjectId" />
    <xsd:enumeration value="StartDate" />
    <xsd:enumeration value="Text"/>
    <xsd:enumeration value="UDFCodeObjectId" />
    <xsd:enumeration value="UDFTypeDataType" />
    <xsd:enumeration value="UDFTypeObjectId" />
    <xsd:enumeration value="UDFTypeSubjectArea" />
    <xsd:enumeration value="UDFTypeTitle"/>
    </xsd:restriction>
    </xsd:simpleType>

  • Cannot assign value to a Variable of Complex Type beyond index 1

    Hello:
    I have a variable defined as a complex type as followed. I tried to assign a value to each of the two elements but it only allows me to assign to the 'element#1.
    This statement that tries to assign a value into element#2 will not work, if I assign with '[1]' for the first element it will work:
    <copy> <---- THIS WORKS
    <from expression="'John'"/>
    <to variable="My_Variable"
    part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item[1]/ns9:pname"/>
    </copy>
    <copy> <---- THIS DOES NOT WORK
    <from expression="'John'"/>
    <to variable="My_Variable"
    part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item[2]/ns9:pname"/>
    </copy>
    Is there something wrong with my definition below that allows only element#1 to be refererenced but not element#2???? Am I missing some kind of initialization that is needed to initialize both elements????
    Here are my message and Complex Type definitions:
    <variable name="My_Variable" messageType="ns8:args_out_msg"/>
    <message name="args_out_msg">
    <part name="My_Collection" element="db:My_Collection"/>
    </message>
    <element name="My_Collection">
    <complexType>
    <sequence>
    <element name="Collection" type="db:Collection_Type" db:index="2" db:type="Array" minOccurs="0" nillable="true"/>
    <element name="Ret" type="string" db:index="3" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="Collection_Type">
    <sequence>
    <element name="Collection_Item" type="db:Collection_Type_Struct" db:type="Struct" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </sequence>
    </complexType>
    <complexType name="Collection_Type_Struct">
    <sequence>
    <element name="pname" db:type="VARCHAR2" minOccurs="0" nillable="true">
    <simpleType>
    <restriction base="string">
    <maxLength value="25"/>
    </restriction>
    </simpleType>
    </element>
    </sequence>
    </complexType>
    The error msg it gives me is as followed:
    [2010/09/04 00:47:59] Error in <assign> expression: <to> value is empty at line "254". The XPath expression : "" returns zero node, when applied to document shown below:less
    oracle.xml.parser.v2.XMLElement@1fa7874
    [2010/09/04 00:47:59] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown.less
    -<selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    -<part name="summary">
    <summary>
    XPath query string returns zero node.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity &lt;to&gt; part query should not return zero node.
    Please check the BPEL source at line number "254" and verify the &lt;to&gt; part xpath query.
    </summary>
    </part>
    </selectionFailure>
    Thanks
    Newbie

    Hello:
    Base on the suggestion to use 'append' instead of 'copy', I tried to define a 'singleNode' which is of type 'Collection_Type_Struct' so I can append this individual 'struct' into my array (i.e. as the 2nd. element of my array "/ns9:My_Collection/ns9:Collection/ns9:Collection_Item"), but I am getting an error in defining this variable as:
    <variable name="singleNode" element="Collection_Type_Struct"/> <--- error
    Can someone tell me how should I define "singleNode" so I can put a value in it and then append this 'singleNode' into the array:
    <variable name="singleNode" element=" how to define this????"/>
    <assign>
    <copy>
    <frem expression="'Element2Value'"/>
    <to variable="singleNode"
    part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item/ns9:pname"/>
    </copy>
    </assign>
    <bpelx:assign>
    <bpelx:append>
    <from variable="singleNode" query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item"/>
    <to variable="My_Variable"
    "part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection"/>
    </bpelx:append>
    </bpelx:assign>
    Again here is my definition in my .xsd file:
    <element name="My_Collection">
    <complexType>
    <sequence>
    <element name="Collection" type="db:Collection_Type" db:index="2" db:type="Array" minOccurs="0" nillable="true"/>
    <element name="Ret" type="string" db:index="3" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="Collection_Type">
    <sequence>
    <element name="Collection_Item" type="db:Collection_Type_Struct" db:type="Struct" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </sequence>
    </complexType>
    <complexType name="Collection_Type_Struct">
    <sequence>
    <element name="pname" db:type="VARCHAR2" minOccurs="0" nillable="true">
    <simpleType>
    <restriction base="string">
    <maxLength value="25"/>
    </restriction>
    </simpleType>
    </element>
    </sequence>
    </complexType>
    Thanks for any help!!!!

  • Unable to access multiple records

    HI all,
    I am trying out with a BPEL process , which invokes an db adapter(used to configure a table by the name employee) and this adapter retrieves some of the records with empid, empsal as the fields, based on the condition where empid=1001(records range from 1001 to 1010(say)). once the records are fetched , all that I want is that all the salary details of employees , whose empids are less than 1005 should be displayed.. for that what I ve done is that once records are fetched , I ve put a while condition(condition:invokes_output<1005)
    and I ve used an assign inside while, creating two copyoperations(like invokes_output+1 to invokes_output(empid), for loop condition) and the other copy operation is just assigning the invoke's_output/empcollection/empsal 'to' result
    Its getting compiled but once the instance is instantiated, I am getting an error some thing like
    [2008/04/08 15:56:00] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown.less
    -<selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    -<part name="summary">
    <summary>
    XPath query string returns multiple nodes.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query /ns4:EmployeeCollection/ns4:Employee/ns4:empsal should not return multipe nodes.
    Please check the BPEL source at line number "97" and verify the part and xpath query /ns4:EmployeeCollection/ns4:Employee/ns4:empsal.
    </summary>
    </part>
    </selectionFailure>
    Can any one help how do I go about this.. All that I want is I need to display the salary details while using the while loop.. and my Audit instance looks like this
    [2008/04/08 15:56:00] New instance of BPEL process "A_Whilecheck" initiated (# "201225").
    <process>
    <sequence>
    receiveInput
    [2008/04/08 15:56:00] Received "inputVariable" call from partner "client" More...
    -<inputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    -<ns1:A_WhilecheckProcessRequest xmlns:ns1="http://xmlns.oracle.com/A_Whilecheck">
    <ns1:input>1001
    </ns1:input>
    </ns1:A_WhilecheckProcessRequest>
    </part>
    </inputVariable>
    Assign_1
    [2008/04/08 15:56:00] Updated variable "Invoke_1_xxxxSelect_empno_InputVariable" More...
    -<Invoke_1_xxxxSelect_empno_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="xxxxSelect_empno_inparameters">
    -<xxxxSelect_empnoInputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/xxxx">
    <empno>1001
    </empno>
    </xxxxSelect_empnoInputParameters>
    </part>
    </Invoke_1_xxxxSelect_empno_InputVariable>
    Invoke_1
    [2008/04/08 15:56:00] Invoked 2-way operation "xxxxSelect_empno" on partner "xxxx".less
    -<messages>
    -<Invoke_1_xxxxSelect_empno_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="xxxxSelect_empno_inparameters">
    -<xxxxSelect_empnoInputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/xxxx">
    <empno>1001
    </empno>
    </xxxxSelect_empnoInputParameters>
    </part>
    </Invoke_1_xxxxSelect_empno_InputVariable>
    -<Invoke_1_xxxxSelect_empno_OutputVariable>
    <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="response-headers">[]
    </part>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="EmployeeCollection">
    -<EmployeeCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/xxxx">
    -<Employee>
    <empid>1004
    </empid>
    <empsal>23000
    </empsal>
    </Employee>
    -<Employee>
    <empid>1002
    </empid>
    <empsal>1120000
    </empsal>
    </Employee>
    -<Employee>
    <empid>1005
    </empid>
    <empsal>4300
    </empsal>
    </Employee>
    -<Employee>
    <empid>1003
    </empid>
    <empsal>45000
    </empsal>
    </Employee>
    -<Employee>
    <empid>1006
    </empid>
    <empsal>12900
    </empsal>
    </Employee>
    -<Employee>
    <empid>1007
    </empid>
    <empsal>12400
    </empsal>
    </Employee>
    -<Employee>
    <empid>1010
    </empid>
    <empsal>1110
    </empsal>
    </Employee>
    -<Employee>
    <empid>1009
    </empid>
    <empsal>1200
    </empsal>
    </Employee>
    -<Employee>
    <empid>1008
    </empid>
    <empsal>34000
    </empsal>
    </Employee>
    -<Employee>
    <empid>1011
    </empid>
    <empsal>65000
    </empsal>
    </Employee>
    -<Employee>
    <empid>1013
    </empid>
    <empsal>12000
    </empsal>
    </Employee>
    -<Employee>
    <empid>1012
    </empid>
    <empsal>12000
    </empsal>
    </Employee>
    </EmployeeCollection>
    </part>
    </Invoke_1_xxxxSelect_empno_OutputVariable>
    </messages>
    <while>
    Assign_2 (faulted)
    [2008/04/08 15:56:00] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown.less
    -<selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    -<part name="summary">
    <summary>
    XPath query string returns multiple nodes.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query /ns4:EmployeeCollection/ns4:Employee/ns4:empsal should not return multipe nodes</part>
    </selectionFailure>
    </while> .
    Please check the BPEL source at line number "97" and verify the part and xpath query /ns4:EmployeeCollection/ns4:Employee/ns4:empsal.
    </summary>
    </sequence>
    [2008/04/08 15:56:00] "BPELFault" has not been caught by a catch block.
    [2008/04/08 15:56:00] BPEL process instance "201225" cancelled

    Hi,
    Please some one answer my post.....I am really in urgent requirement.

  • Assigning values to array in soa 10.1.3

    Dear team,
    I am working on soa10.1.3 server. we have a complex element of string array.we created a varaible of that element. In while loop we need to pass values to array elements.How can we do that..we tried with indexvaraible..but getting error.
    Regards,
    Radha

    schema is
    <schema attributeFormDefault="unqualified"
         elementFormDefault="qualified"
         targetNamespace="http://xmlns.oracle.com/BPELProcess4"
         xmlns="http://www.w3.org/2001/XMLSchema">
         <element name="BPELProcess4ProcessRequest">
              <complexType>
                   <sequence>
                        <element name="input" type="string"/>
                   </sequence>
              </complexType>
         </element>
         <element name="BPELProcess4ProcessResponse">
              <complexType>
                   <sequence>
                        <element name="result" type="string"/>
                   </sequence>
              </complexType>
         </element>
    <element name="element5">
    <complexType>
    <sequence>
    <element name="result" minOccurs="0" maxOccurs="unbounded"
    type="string"/>
    </sequence>
    </complexType>
    </element>
    </schema>
    wdsl is
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="BPELProcess4"
    targetNamespace="http://xmlns.oracle.com/BPELProcess4"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:client="http://xmlns.oracle.com/BPELProcess4"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         TYPE DEFINITION - List of services participating in this BPEL process
         The default output of the BPEL designer uses strings as input and
         output to the BPEL Process. But you can define or import any XML
         Schema type and use them as part of the message types.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <types>
              <schema xmlns="http://www.w3.org/2001/XMLSchema">
                   <import namespace="http://xmlns.oracle.com/BPELProcess4" schemaLocation="BPELProcess4.xsd" />
              </schema>
         </types>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         MESSAGE TYPE DEFINITION - Definition of the message types used as
         part of the port type defintions
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <message name="BPELProcess4RequestMessage">
              <part name="payload" element="client:BPELProcess4ProcessRequest"/>
         </message>
         <message name="BPELProcess4ResponseMessage">
              <part name="payload" element="client:BPELProcess4ProcessResponse"/>
         </message>
    <message name="BPELProcessMessage">
              <part name="payload" element="client:element5"/>
         </message>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PORT TYPE DEFINITION - A port type groups a set of operations into
         a logical service unit.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <!-- portType implemented by the BPELProcess4 BPEL process -->
         <portType name="BPELProcess4">
              <operation name="initiate">
                   <input message="client:BPELProcess4RequestMessage"/>
              </operation>
         </portType>
         <!-- portType implemented by the requester of BPELProcess4 BPEL process
         for asynchronous callback purposes
         -->
         <portType name="BPELProcess4Callback">
              <operation name="onResult">
                   <input message="client:BPELProcess4ResponseMessage"/>
              </operation>
         </portType>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PARTNER LINK TYPE DEFINITION
         the BPELProcess4 partnerLinkType binds the provider and
         requester portType into an asynchronous conversation.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <plnk:partnerLinkType name="BPELProcess4">
              <plnk:role name="BPELProcess4Provider">
                   <plnk:portType name="client:BPELProcess4"/>
              </plnk:role>
              <plnk:role name="BPELProcess4Requester">
                   <plnk:portType name="client:BPELProcess4Callback"/>
              </plnk:role>
         </plnk:partnerLinkType>
    </definitions>
    bpel file is
    <?xml version = "1.0" encoding = "UTF-8" ?>
    <!--
    Oracle JDeveloper BPEL Designer
    Created: Fri Aug 27 10:01:38 IST 2010
    Author: ruck
    Purpose: Asynchronous BPEL Process
    -->
    <process name="BPELProcess4"
    targetNamespace="http://xmlns.oracle.com/BPELProcess4"
    xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:ns4="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
    xmlns:ns1="http://xmlns.oracle.com/bpel/workflow/xpath"
    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ns3="http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions"
    xmlns:ns2="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
    xmlns:client="http://xmlns.oracle.com/BPELProcess4"
    xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
    <!--
    PARTNERLINKS
    List of services participating in this BPEL process
    -->
    <partnerLinks>
    <!--
    The 'client' role represents the requester of this service. It is
    used for callback. The location and correlation information associated
    with the client role are automatically set using WS-Addressing.
    -->
    <partnerLink name="client" partnerLinkType="client:BPELProcess4"
    myRole="BPELProcess4Provider"
    partnerRole="BPELProcess4Requester"/>
    </partnerLinks>
    <!--
    VARIABLES
    List of messages and XML documents used within this BPEL process
    -->
    <variables>
    <!-- Reference to the message passed as input during initiation -->
    <variable name="inputVariable"
    messageType="client:BPELProcess4RequestMessage"/>
    <!-- Reference to the message that will be sent back to the requester during callback -->
    <variable name="outputVariable"
    messageType="client:BPELProcess4ResponseMessage"/>
    <variable name="elementMessage"
    messageType="client:BPELProcessMessage"/>
    <variable name="count" type="xsd:int"/>
    </variables>
    <!--
    ORCHESTRATION LOGIC
    Set of activities coordinating the flow of messages across the
    services integrated within this business process
    -->
    <sequence name="main">
    <!-- Receive input from requestor. (Note: This maps to operation defined in BPELProcess4.wsdl) -->
    <receive name="receiveInput" partnerLink="client"
    portType="client:BPELProcess4" operation="initiate"
    variable="inputVariable" createInstance="yes"/>
    <!--
    Asynchronous callback to the requester. (Note: the callback location and correlation id is transparently handled using WS-addressing.)
    -->
    <assign name="Assign_1">
    <copy>
    <from expression="number(1)"/>
    <to variable="count"/>
    </copy>
    </assign>
    <while name="While_1"
    condition="bpws:getVariableData('count') &lt;= number(5)">
    <assign name="Assign_2">
    <copy>
    <from expression="'value'"/>
    <to variable="elementMessage" part="payload"
    query="/client:element5/client:result[bpws:getVariableData('count')]"/>
    </copy>
    <copy>
    <from expression="bpws:getVariableData('count')+number(1)"/>
    <to variable="count"/>
    </copy>
    </assign>
    </while>
    <invoke name="callbackClient" partnerLink="client"
    portType="client:BPELProcess4Callback" operation="onResult"
    inputVariable="outputVariable"/>
    </sequence>
    </process>
    For the count 1 code is working fine.. for count=2 thrwoing exception
    <while>
    Assign_2
    [2010/08/27 10:23:20] Updated variable "elementMessage" less
    -<elementMessage>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    -<element5 xmlns="http://xmlns.oracle.com/BPELProcess4">
    <result>value
    </result>
    </element5>
    </part>
    </elementMessage>
    [2010/08/27 10:23:20] Updated variable "count" More...
    <count>2
    </count>
    Assign_2
    [2010/08/27 10:23:20] Error in <assign> expression: <to> value is empty at line "86". The XPath expression : "" returns zero node, when applied to document shown below: More...
    [2010/08/27 10:23:20] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown. More...
    </while>
    </sequence>
    [2010/08/27 10:23:20] "BPELFault" has not been caught by a catch block.
    [2010/08/27 10:23:20] There is a system exception while performing the BPEL instance, the reason is "faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure} messageType: {} parts: {{summary=XPath query string returns zero node. According to BPEL4WS spec 1.1 section 14.3, The assign activity &lt;to&gt; part query should not return zero node. Please check the BPEL source at line number "86" and verify the &lt;to&gt; part xpath query. Possible reasons behind this problems are: some xml elements/attributes are optional or the xml data is invalid according to XML Schema. To verify whether XML data received by a process is valid, user can turn on validateXML switch at the domain administration page. }} ". Please check the error log file for more infromation. Please try to use bpel fault handlers to catch the faults in your bpel process. If this is a system exception, please report this to your system administrator. Administrator could perform manual recovery of the instance from last non-idempotent activity or dehydration point. More...
    [2010/08/27 10:23:20] BPEL process instance #"60002" cancelled

  • Invoking Web Service with array paramter

    Hi,
    I'm trying to invoke a Java web service having an array as input parameter but it only works if i have only one child or if i chose one specific element with xpath.
    bpel variables:
    <variables>
    <variable name="mergedSupps" element="client:suppliers"/>
    <variable name="Invoke_1_getRating_InputVariable" messageType="ns1:getRating"/>
    <variable name="Invoke_1_getRating_OutputVariable" messageType="ns1:getRatingResponse"/>
    </variables>
    this works:
    <assign name="Assign_1">
    <copy>
    <from variable="mergedSupps" query="/client:suppliers/client:suppID[1]"/>
    <to variable="Invoke_1_getRating_InputVariable" part="parameters" query="/ns1:getRating/suppID"/>
    </copy>
    </assign>
    does not work:
    <assign name="Assign_1">
    <copy>
    <from variable="mergedSupps" query="/client:suppliers/client:suppID"/>
    <to variable="Invoke_1_getRating_InputVariable" part="parameters" query="/ns1:getRating/suppID"/>
    </copy>
    </assign>
    wsdl:
    <element name="suppliers" type="client:supplierType"/>
    <element name="procRatingTestProcessRequest" type="client:requestType"/>
                   <element name="procRatingTestProcessResponse" type="client:responseType"/>
         <complexType name="requestType">
    <sequence>
                                  <element name="suppliers" type="client:supplierType"/>
                             </sequence>
                        </complexType>
                   <complexType name="supplierType">
         <sequence>
                                  <element name="suppID" type="string" maxOccurs="unbounded"/>
                             </sequence>
                        </complexType>
                        <complexType name="responseType">
                             <sequence>
                                  <element name="rating" type="double"/>
                             </sequence>
                        </complexType>
    java:
    @WebMethod
    public double getRating(@WebParam(name= "suppID") String[] s) {
    anyone can help?????

    Sorry i was trying around too much, it was empty some other time ;)
    when i try:
    <assign name="Assign_1">
    <copy>
    <from variable="mergedSupps" query="/client:suppliers/client:suppID"/>
    <to variable="Invoke_1_getRating_InputVariable" part="parameters" query="/ns1:getRating/suppID"/>
    </copy>
    </assign>
    i get:
    <selectionFailure>
    <part name="summary" >
    <summary>
    XPath query string returns multiple nodes. According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query /client:suppliers/client:suppID should not return multipe nodes. Please check the BPEL source at line number "70" and verify the part and xpath query /client:suppliers/client:suppID.</summary>
    </part>
    </selectionFailure>

  • Error provisioning a resource with custom approval process

    Hi,
    While trying to provision a resource with custom approval process, I get the following error:
    <May 11, 2012 8:07:18 AM IST> <Warning> <oracle.wsm.agent.handler.wls.WLSPropertyUtils> <BEA-000000> <WLSPropertyUtils:getOperationName(),operation name is null>
    <May 11, 2012 8:07:18 AM IST> <Warning> <org.eclipse.persistence.session.oim> <BEA-000000> <
    Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-12899: value too large for column "DEV_OIM"."REQUEST_APPROVALS"."APPROVAL_STATUS" (actual: 442, maximum: 32)
    Error Code: 12899
    Call: UPDATE REQUEST_APPROVALS SET APPROVAL_STATUS = ? WHERE (REQUEST_APPROVALS_KEY = ?)
    bind => [com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
    parts: {{
    summary=<summary>XPath query string returns zero node.
    The assign activity of the to node query is returning zero node.
    Either the to node data or the xpath query in the to node was invalid.
    According to BPEL4WS spec 1.1 section 14.3, verify the to node value at line number 251 in the BPEL source.
    </summary>}
    , 6]
    Query: UpdateObjectQuery(oracle.iam.request.vo.ApprovalData@11e00d4b)
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:324)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:801)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:867)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:587)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:530)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeCall(AbstractSession.java:914)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:206)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:192)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.updateObject(DatasourceCallQueryMechanism.java:715)
    at org.eclipse.persistence.internal.queries.StatementQueryMechanism.updateObject(StatementQueryMechanism.java:430)
    at org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.updateObjectForWriteWithChangeSet(DatabaseQueryMechanism.java:1141)
    at org.eclipse.persistence.queries.UpdateObjectQuery.executeCommitWithChangeSet(UpdateObjectQuery.java:84)
    at org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:287)
    at org.eclipse.persistence.queries.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:58)
    at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:675)
    at org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:589)
    at org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:109)
    at org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:86)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2898)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1225)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1207)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1167)
    at org.eclipse.persistence.internal.sessions.CommitManager.commitChangedObjectsForClassWithChangeSet(CommitManager.java:233)
    at org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsWithChangeSet(CommitManager.java:108)
    at org.eclipse.persistence.internal.sessions.AbstractSession.writeAllObjectsWithChangeSet(AbstractSession.java:3260)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1413)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1518)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.writeChanges(UnitOfWorkImpl.java:5499)
    at oracle.iam.request.repository.ApprovalRepository.updateApprovalInstanceWithOutcome(ApprovalRepository.java:84)
    at oracle.iam.request.impl.ApprovalManager.approvalInstanceComplete(ApprovalManager.java:111)
    at oracle.iam.request.impl.ApprovalPolicyServiceImpl.updateApprovalResult(ApprovalPolicyServiceImpl.java:52)
    at oracle.iam.request.api.ApprovalPolicyServiceEJB.updateApprovalResultx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
    at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
    at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy351.updateApprovalResultx(Unknown Source)
    at oracle.iam.request.api.ApprovalPolicyService_1nib43_ApprovalPolicyServiceRemoteImpl.updateApprovalResultx(ApprovalPolicyService_1nib43_ApprovalPolicyServiceRemoteImpl.java:462)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:84)
    at $Proxy184.updateApprovalResultx(Unknown Source)
    at oracle.iam.request.api.ApprovalPolicyServiceDelegate.updateApprovalResult(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at Thor.API.Base.SecurityInvocationHandler$1.run(SecurityInvocationHandler.java:68)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.security.Security.runAs(Security.java:41)
    at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(weblogicLoginSession.java:52)
    at Thor.API.Base.SecurityInvocationHandler.invoke(SecurityInvocationHandler.java:79)
    at $Proxy350.updateApprovalResult(Unknown Source)
    at oracle.iam.request.workflowcallback.ApprovalCallBack.completed(ApprovalCallBack.java:28)
    at oracle.iam.platform.workflowservice.ws.CallbackServiceImpl.callback(CallbackServiceImpl.java:98)
    at oracle.iam.platform.workflowservice.ws.wls.CallbackService.callback(CallbackService.java:33)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:92)
    at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:74)
    at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151)
    at com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:265)
    at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube$FlowControlAwareTube.processRequest(FlowControlTube.java:155)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube$1.run(FlowControlTube.java:94)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube$1.run(FlowControlTube.java:92)
    at javax.security.auth.Subject.doAs(Subject.java:337)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube.processRequest(FlowControlTube.java:91)
    at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
    at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
    at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
    at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
    at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:373)
    at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:524)
    at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:255)
    at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)
    at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:208)
    at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:310)
    at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:223)
    at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:124)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:79)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.am.agent.wls.filters.OAMServletAuthenticationFilter.doFilter(OAMServletAuthenticationFilter.java:260)
    at oracle.security.am.agent.wls.filters.OAMValidationSystemFilter.doFilter(OAMValidationSystemFilter.java:133)
    at oracle.security.wls.oamagent.OAMAgentWrapperFilter.doFilter(OAMAgentWrapperFilter.java:121)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused By: java.sql.SQLException: ORA-12899: value too large for column "DEV_OIM"."REQUEST_APPROVALS"."APPROVAL_STATUS" (actual: 442, maximum: 32)
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:135)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:210)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:473)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:423)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1095)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1040)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1379)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3568)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3694)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1508)
    at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:172)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:792)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:867)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:587)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:530)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeCall(AbstractSession.java:914)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:206)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:192)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.updateObject(DatasourceCallQueryMechanism.java:715)
    at org.eclipse.persistence.internal.queries.StatementQueryMechanism.updateObject(StatementQueryMechanism.java:430)
    at org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.updateObjectForWriteWithChangeSet(DatabaseQueryMechanism.java:1141)
    at org.eclipse.persistence.queries.UpdateObjectQuery.executeCommitWithChangeSet(UpdateObjectQuery.java:84)
    at org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:287)
    at org.eclipse.persistence.queries.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:58)
    at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:675)
    at org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:589)
    at org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:109)
    at org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:86)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2898)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1225)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1207)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1167)
    at org.eclipse.persistence.internal.sessions.CommitManager.commitChangedObjectsForClassWithChangeSet(CommitManager.java:233)
    at org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsWithChangeSet(CommitManager.java:108)
    at org.eclipse.persistence.internal.sessions.AbstractSession.writeAllObjectsWithChangeSet(AbstractSession.java:3260)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1413)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1518)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.writeChanges(UnitOfWorkImpl.java:5499)
    at oracle.iam.request.repository.ApprovalRepository.updateApprovalInstanceWithOutcome(ApprovalRepository.java:84)
    at oracle.iam.request.impl.ApprovalManager.approvalInstanceComplete(ApprovalManager.java:111)
    at oracle.iam.request.impl.ApprovalPolicyServiceImpl.updateApprovalResult(ApprovalPolicyServiceImpl.java:52)
    at oracle.iam.request.api.ApprovalPolicyServiceEJB.updateApprovalResultx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
    at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
    at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy351.updateApprovalResultx(Unknown Source)
    at oracle.iam.request.api.ApprovalPolicyService_1nib43_ApprovalPolicyServiceRemoteImpl.updateApprovalResultx(ApprovalPolicyService_1nib43_ApprovalPolicyServiceRemoteImpl.java:462)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:84)
    at $Proxy184.updateApprovalResultx(Unknown Source)
    at oracle.iam.request.api.ApprovalPolicyServiceDelegate.updateApprovalResult(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at Thor.API.Base.SecurityInvocationHandler$1.run(SecurityInvocationHandler.java:68)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.security.Security.runAs(Security.java:41)
    at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(weblogicLoginSession.java:52)
    at Thor.API.Base.SecurityInvocationHandler.invoke(SecurityInvocationHandler.java:79)
    at $Proxy350.updateApprovalResult(Unknown Source)
    at oracle.iam.request.workflowcallback.ApprovalCallBack.completed(ApprovalCallBack.java:28)
    at oracle.iam.platform.workflowservice.ws.CallbackServiceImpl.callback(CallbackServiceImpl.java:98)
    at oracle.iam.platform.workflowservice.ws.wls.CallbackService.callback(CallbackService.java:33)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:92)
    at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:74)
    at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151)
    at com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:265)
    at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube$FlowControlAwareTube.processRequest(FlowControlTube.java:155)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube$1.run(FlowControlTube.java:94)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube$1.run(FlowControlTube.java:92)
    at javax.security.auth.Subject.doAs(Subject.java:337)
    at weblogic.wsee.jaxws.tubeline.FlowControlTube.processRequest(FlowControlTube.java:91)
    at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
    at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
    at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
    at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
    at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:373)
    at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:524)
    at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:255)
    at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140)
    at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:208)
    at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:310)
    at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:223)
    at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:124)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:79)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.am.agent.wls.filters.OAMServletAuthenticationFilter.doFilter(OAMServletAuthenticationFilter.java:260)
    at oracle.security.am.agent.wls.filters.OAMValidationSystemFilter.doFilter(OAMValidationSystemFilter.java:133)
    at oracle.security.wls.oamagent.OAMAgentWrapperFilter.doFilter(OAMAgentWrapperFilter.java:121)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    >
    <May 11, 2012 8:07:18 AM IST> <Error> <oracle.iam.request.impl> <IAM-2050200> <Failed to create the request in the repository.>
    <May 11, 2012 8:07:18 AM IST> <Error> <oracle.iam.request.impl> <IAM-2050050> <Exception thrown Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-12899: value too large for column "DEV_OIM"."REQUEST_APPROVALS"."APPROVAL_STATUS" (actual: 442, maximum: 32)
    Error Code: 12899
    Call: UPDATE REQUEST_APPROVALS SET APPROVAL_STATUS = ? WHERE (REQUEST_APPROVALS_KEY = ?)
    bind => [com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
    parts: {{
    summary=<summary>XPath query string returns zero node.
    The assign activity of the to node query is returning zero node.
    Either the to node data or the xpath query in the to node was invalid.
    According to BPEL4WS spec 1.1 section 14.3, verify the to node value at line number 251 in the BPEL source.
    </summary>}
    , 6]
    Any idea how to resolve this ??
    Thanks,

    Based on the error trace
    Caused By: java.sql.SQLException: ORA-12899: value too large for column "DEV_OIM"."REQUEST_APPROVALS"."APPROVAL_STATUS" (actual: 442, maximum: 32)
    you are inserting a value too large for REQUEST_APPROVALS.APPROVAL_STATUS column. It should contain values like COMPLETED, approved, rejected etc... Check your custom approval process again.
    Regards
    user12841694

  • How to operate multiple querys using DB Adapter and 'Execute Custom SQL'

    I have a requirment that I need to create database adapter in your BPEL process with 'Execute Custom SQL' to operate multiple query in DB in one atomic
    here are the details:
    inbound request:
    <ns1:Query_bpelProcessRequest>
    <ns1:input>
    <ns1:ItemDetail>
    <ns1:ItemID>1123DDDS</ns1:ItemID>
    </ns1:ItemDetail>
    <ns1:ItemDetail>
    <ns1:ItemID>1126EWWA</ns1:ItemID>
    </ns1:ItemDetail>
    <ns1:ItemDetail>
    <ns1:ItemID>11208FSAA</ns1:ItemID>
    </ns1:ItemDetail>
    </ns1:input>
    </ns1:Query_bpelProcessRequest>
    I use for-each fuction in XSLT to mapping the all ItemID value:
    <xsl:template match="/">
    <xsl:for-each select="/tns:Query_bpelProcessRequest/tns:input/tns:ItemDetail">
    <ns1:QueryFromDB_Input>
    <ns1:ItemID>
    <xsl:value-of select="tns:ItemID"/>
    </ns1:ItemID>
    </ns1:QueryFromDB_Input>
    </xsl:for-each>
    </xsl:template>
    and in DB Adapter I use the 'Execute Custom SQL' to query the CONTENT value according the ItemID value:
    select distinct CONTENT from agile.item where ITEM_NUMBER=’<ItemID>’
    However, in the result, It only query the first item value for <ns1:ItemID>1123DDDS</ns1:ItemID>
    <<QueryFromDB_InputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="QueryFromDB_Input_msg">
    <QueryFromDB_Input xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB">
    <ns1:ItemID>1123DDDS</ns1:ItemID>
    </QueryFromDB_Input>
    </part></QueryFromDB_InputVariable>
    <QueryFromDB_OutputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="QueryFromDB_OutputCollection">
    <QueryFromDB_OutputCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB">
    <QueryFromDB_Output>
    <ITEM_NUMBER>1123DDDS</ITEM_NUMBER>
    <CONTENT >SJIFESSFFJ</CONTENT >
    </QueryFromDB_Output>
    </QueryFromDB_OutputCollection>
    </part></QueryFromDB_OutputVariable>
    the other two querys are not operated.
    what can I do to operate multiple querys??
    Thanks

    Hi Rod,
    I are using while loop and assign array inputvalue to the inputvarable of DBadapter now, but actually it doesn't work.
    Throw expection
    <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><part name="summary"><summary>XPath query string returns multiple nodes.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query /client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID["ItemIndex"] should not return multipe nodes.
    Please check the BPEL source at line number "89" and verify the part and xpath query /client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID["ItemIndex"].
    Possible reasons behind this problems are: some xml elements has maxOccurs > 1 or the xml data is invalid according to XML Schema.
    To verify whether XML data received by a process is valid, user can turn on validateXML switch at the domain administration page.
    </summary>
    </part></selectionFailure>
    my inbound XSD:
    <element name="ItemsQuery_bpelProcessRequest">
    <complexType>
    <sequence>
    <element name="input" type="tns:inputType"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="inputType">
    <sequence>
    <element name="inputDetail" minOccurs="0" maxOccurs="unbounded">
    <complexType>
    <sequence>
    <element name="ProductID" type="string" minOccurs="0"/>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    <element name="ItemsQuery_bpelProcessResponse">
    <complexType>
    <sequence>
    <element name="result" type="tns:outputType"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="outputType">
    <sequence>
    <element name="ItemOutput" minOccurs="0" maxOccurs="unbounded">
    <complexType>
    <sequence>
    <element name="item_id" type="string" minOccurs="0"/>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    DB Adapter XSD:
    <xs:schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/QueryItem" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryItem" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="QueryItem_Input" type="QueryItem_Input"/>
    <xs:complexType name="QueryFrom_Input">
    <xs:sequence>
    <xs:element name="ProductID" type="xs:string" nillable="true"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="QueryItem_OutputCollection" type="QueryItem_OutputCollection"/>
    <xs:complexType name="QueryItem_OutputCollection">
    <xs:sequence>
    <xs:element name="QueryItem_Output" type="QueryItem_Output" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="QueryItem_Output">
    <xs:sequence>
    <xs:element name="item_id" type="xs:string" nillable="true"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    the bpel assign:
    <assign name="Initial_Index">
    <copy>
    <from expression="0"/>
    <to variable="ItemIndex"/>
    </copy>
    </assign>
    <while name="While_1"
    condition="bpws:getVariableData('ItemIndex')&lt;ora:countNodes('inputVariable','payload','/client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID)">
    <sequence name="Sequence_1">
    <assign name="Assign_QueryInput">
    <copy>
    <from variable="inputVariable" part="payload"
    query='/client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID{bpws:getVariableData('ItemIndex')}'/>
    <to variable="QueryItem_InputVariable"
    part="QueryItem_nput_msg"
    query="/ns2:QueryItem_Input/ns2:ProductID"/>
    </copy>
    </assign>
    <invoke name="Invoke_QueryDB" partnerLink="QueryItem"
    portType="ns1:QueryItem_ptt"
    operation="QueryItem_PSFT"
    inputVariable="QueryItem_InputVariable"
    outputVariable="QueryItem_OutputVariable"/>
    <assign name="Assign_Output">
    <copy>
    <from variable="QueryItem_OutputVariable"
    part="QueryItem_OutputCollection"
    query="/ns2:QueryItem_OutputCollection/ns2:QueryItem_Output/ns2:item_id"/>
    <to variable="outputVariable" part="payload"
    query='/client:ItemsQuery_bpelProcessResponse/client:result/client:ItemOutput/client:item_id{bpws:getVariableData('ItemIndex')}'/>
    </copy>
    <copy>
    <from expression="bpws:getVariableData('ItemIndex')+1"/>
    <to variable="ItemIndex"/>
    </copy>
    </assign>
    </sequence>
    </while>
    I use {} instead of  []  for array,  because [] seams not reveal in this message board
    seems I can't assign array values to the DB inputvalue, Are there any solutions for this ?
    I still haven't found any way for operating multiple querys using DB Adapter.
    Thanks
    Edited by: user1065212 on 07-Jan-2010 19:39
    Edited by: user1065212 on 07-Jan-2010 19:41
    Edited by: user1065212 on 07-Jan-2010 19:44
    Edited by: user1065212 on 07-Jan-2010 19:45

  • Send email to each message selected using applescript

    Hi,
    I have a script which will send a single email to a number of recipients but I wanted it to send individual emails to the selected messages. I also wanted the script to extract the first name from the sender field. The problem I've had with that is the sender field reads something like "Joe Blogs via PayPal" I'd be happy with "Joe Blogs" if I could remove the "via PayPal". I found a script to remove words from text
    set replyName to {}
    set replyNametext to ""
    set replyName to "Joe Blogs via PayPal"
    set haystack to replyName
    set needle to " via PayPal"
    set replacement to ""
    search_replace(haystack, needle, replacement)
    on search_replace(haystack, needle, replacement)
              set old_delimiters to AppleScript's text item delimiters
              set AppleScript's text item delimiters to needle
              set temp_list to every text item of haystack
              set AppleScript's text item delimiters to replacement
              set return_value to temp_list as text
              set AppleScript's text item delimiters to old_delimiters
              return return_value
    end search_replace
    But I can't get that to work in the main script.
    This is my main script:
    set thesenders to {}
    set thesenderstext to ""
    set replyName to {}
    set replyName to ""
    tell application "Mail"
              set themessage to the selection
              repeat with i from 1 to the number of items in themessage
                        set thesender to (extract address from (the reply to of (item i of themessage)))
                        set replyName to (extract name from (the reply to of (item i of themessage)))
                        if thesenders does not contain thesender then
                                  set thesenders to {thesender}
                                  set replyName to {replyName}
                        end if
              end repeat
              set AppleScript's text item delimiters to ", "
              set thesenderstext to thesenders as rich text
              set AppleScript's text item delimiters to ""
              set newMessage to make new outgoing message
              set theSubject to "instructions"
              set theContent to "Dear " & replyName & ",
    Thanks so much for your email. ...
    Regards ..."
              set newMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}
              set theAttachment1 to POSIX file "/Users/Jim/qrcode.13177607.png"
              set theAttachment2 to POSIX file "/Users/Jim/qrcode.13177658.png"
              set theAttachment3 to POSIX file "/Users/Jim/qrcode.13177665.png"
              tell newMessage
                        set visible to true
                        make new to recipient with properties {address:thesenderstext}
                        make new attachment with properties {file name:theAttachment1} at after the last paragraph
                        make new attachment with properties {file name:theAttachment2} at after the last paragraph
                        make new attachment with properties {file name:theAttachment3} at after the last paragraph
              end tell
              set toAddress to thesenders as rich text
              tell newMessage
                        make new to recipient with properties {address:toAddress}
                        --  send
              end tell
              activate
    end tell
    I realise this is probably a bit of a Frankenstein monster of a script which probably contains lots of redundant features but I'm a total novice to scripts. Please could you help.
    Thanks.
    Jim

    Hi all,
    We are also facing same issue.
    The function ids:getUsersInGroup doesnt return value.
    Even i imported identityservice.xsd and is_config .xsd and created variable using the *"users"* element of identityservice.xsd schema and assigned the value to this variable.
    But Audit always says
    *"XPath query string returns multiple nodes.*
    *According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query should not return multipe nodes.*
    *Please check the BPEL source at line number "72" and verify the part and xpath query "*
    Help me to resolve this issue.

  • Problem with array param when calling a webservice from a BPM Process

    Hi. I have a web service and uses an array as parameter.
    The array (named "atributos") as part of a business object is defined here:
    <xs:schema targetNamespace="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/TrackPCPDOTrans" ...>
    <xs:complexType name="TrackPCPDOTransType">
    <xs:sequence>
    <xs:element name=... />
    <xs:element name="atributos" nillable="true" type="ns2:AtributosType" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="TrackPCPDOTrans" type="TrackPCPDOTransType"/>
    </xs:schema>
    <xs:schema targetNamespace=... >
    <xs:complexType name="AtributosType">
    <xs:sequence>
    <xs:element name="key" nillable="true" type="xs:string"/>
    <xs:element name="value" nillable="true" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="Atributos" type="AtributosType"/>
    </xs:schema>
    In the service task activity, I pass the params to the web service:
    "descripcion" --> TrackPCPDOTrans.atributos[1].key
    DataObject.descripcion --> TrackPCPDOTrans.atributos[1].value
    "estado" --> TrackPCPDOTrans.atributos[2].key
    DataObject.estado --> TrackPCPDOTrans.atributos[2].value
    "justificacion" --> TrackPCPDOTrans.atributos[3].key
    DataObject.justificacion --> TrackPCPDOTrans.atributos[3].value
    But when I test the process, an error ocurrs:
    <auditQueryPayload auditId="8712004" ciKey="380019">
    <dataState>
    <dataObject name="FaultMessage" isBusinessIndicator="false">
    <value> oracle.bpm.bpmn.engine.model.runtime.microinstructions.TrappableException: faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} cause: {faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} parts: {{ summary=<summary>empty expression result. The expression bpmn:getDataInput('trackPCPDOTrans')/ns:atributos[2]/ns1:key is empty. An attempt to read or copy data referenced or computed by the XPath expression either had invalid data, according to the XML schema, or did not contain certain optional data. Ensure that the variable or expression result named in the error message is not empty. Enable XML schema validation of related data elements to ensure the run-time data is valid. </summary>} } </value>
    </dataObject>
    </dataState>
    </auditQueryPayload>
    What is wrong?
    Thanks for your help.

    I did the assignment in XPATH:
    oraext:parseXML(concat('<AtributosTracking xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/AtributosTracking">
    <arrayAtributosTracking>
    <key xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos">','descripcion','</key>
    <value xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos">',bpmn:getDataObject('DataObjectDDSAO')/ns:descripcion,'</value>
    </arrayAtributosTracking>
    <arrayAtributosTracking>
    <key xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos">','estado','</key>
    <value xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos">',bpmn:getDataObject('DataObjectDDSAO')/ns:estado,'</value>
    </arrayAtributosTracking>
    </AtributosTracking>'))
    AtributosTracking.xsd:
    <?xml version="1.0" encoding="UTF-8"?>
    <?bpmo version="11.1.1.6.0.15.53" build="15.53" fullName="DataTypes.AtributosTracking" modifiers="268435456"?>
    <xs:schema targetNamespace="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/AtributosTracking" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/AtributosTracking" xmlns:ns1="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos" xmlns:bpmo="http://xmlns.oracle.com/bpm/bpmobject/" >
    <xs:import namespace="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos" schemaLocation="Atributos.xsd"/>
    <xs:complexType name="AtributosTrackingType">
    <xs:sequence>
    <xs:element name="arrayAtributosTracking" nillable="true" type="ns1:AtributosType" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="AtributosTracking" type="AtributosTrackingType"/>
    Atributos.xsd:
    <?xml version="1.0" encoding="UTF-8"?>
    <?bpmo version="11.1.1.6.0.15.53" build="15.53" fullName="DataTypes.Atributos" modifiers="0"?>
    <xs:schema targetNamespace="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos" xmlns:bpmo="http://xmlns.oracle.com/bpm/bpmobject/" >
    <xs:complexType name="AtributosType">
    <xs:sequence>
    <xs:element name="key" nillable="true" type="xs:string"/>
    <xs:element name="value" nillable="true" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="Atributos" type="AtributosType"/>
    </xs:schema>
    But a new error occurrs when I run the BPM process:
    <auditQueryPayload auditId="8724004" ciKey="380025">
    <dataState>
    <dataObject name="FaultMessage" isBusinessIndicator="false">
    <value> oracle.bpm.bpmn.engine.model.runtime.microinstructions.TrappableException:
    faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    cause: {faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    parts: {{ summary=<summary>XPath query string returns multiple nodes.
    The assign activity part and query bpmn:getDataObject('AtributosTracking')/ns:atributosTracking are returning multiple nodes.
    The assign activity part and query named in the error message returned multiple nodes. It should return single node.
    According to BPEL4WS specification 1.1 section 14.3, the assign activity part and query named in the error message should
    not return multiple nodes. Verify the part and xpath query named in the error message at line number -1 in the BPEL source. </summary>} } </value>
    </dataObject>
    </dataState>
    </auditQueryPayload>
    Any idea?
    Thanks
    Edited by: César on 10/01/2013 11:02 AM

  • Error in adding multiple attachments to Human Task in BPM

    Hi
    Hope you are doing fine.
    My version is 11.1.1.5 without Feature Pack.
    I have a scenario where I get a set of documents from UCM, and I have all of them in an array(of type GetFileByIDResult(UCM GetFile Webservice response type)).
    Please note that for a single attachment, I'm not getting this problem.
    I know that ExecData.Attachments[] takes array of Attachment types.
    But I could not create an Attachments[](array type) type data object, What I could create is of type '<>Attachments' which I thought was an array, but not, as it is not letting me associate to ExecData.attachments
    So, I've created a variable of type ExecData(say PDOExecData), used a script task, and did XSLT between the array and this new PDOExecData
    I've used for-each on the arrayOfUCMOutput, mapped the content, name, etc.
    And, now, in the human task association, I've assigned PDOExecData.attachments to Human Task's ExecData.attachments
    But I'm getting the following error
    XPath query string returns multiple nodes. The assign activity part and query bpmn:getDataObject('taskExecData2')/ns:attachment are returning multiple nodes. The assign activity part and query named in the error message returned multiple nodes. It should return single node. According to BPEL4WS specification 1.1 section 14.3, the assign activity part and query named in the error message should not return multiple nodes. Verify the part and xpath query named in the error message at line number -1 in the BPEL source.
    This means htat attachments take a single element, but it should take array of elements, and that is what is showin in the mapper file indicated by attachments[] in the ExecData
    Would you please help me in this regard.
    One possible solution could be, if I'm able to create an array of 'Attachment' type, I could map to it and finally map this var to ExecData.attachments, but how to create an array of a type in BusinessObjects/ProcessDataObjects
    Regards
    RaviKiran

    Resolved!
    Will write a blog and paste the link
    Regards
    RaviKiran

  • BPM 11g - FYI task to send a copy to each member of a group

    In BPM 11g I am trying to send an FYI task to each member of a group. They should each get their own copy of the task so that it does not get removed from their inbox when the first person dismisses it.
    I was not successful in getting multiple copies of the task using FYI type even when multiple users were defined in the participant list. So, I changed the participant type to parallel. This was successful in sending mulitiple copies when I defined a participant list of hard coded users, but the process stopped and waited until at least one of the users dismissed it (so the FYI only behavior changed, but I can get around that with a parallel process flow).
    Still using parallel participant type, I have been trying to change from my hard coded list of users to a security group of users. If I set assignment to the group, only one task is created for the group. So, I have been trying to assign to users and use the expression ids:getUsersInGroup('LoanAnalyticGroup') to get the users in this group. I have tried several approaches to this expression but can't get it to work.
    Has anyone else successfully implemented sending tasks to all members of a group in 11g? Any advice?

    Hi all,
    We are also facing same issue.
    The function ids:getUsersInGroup doesnt return value.
    Even i imported identityservice.xsd and is_config .xsd and created variable using the *"users"* element of identityservice.xsd schema and assigned the value to this variable.
    But Audit always says
    *"XPath query string returns multiple nodes.*
    *According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query should not return multipe nodes.*
    *Please check the BPEL source at line number "72" and verify the part and xpath query "*
    Help me to resolve this issue.

Maybe you are looking for

  • NOOB Question - Cannot seem to get the output in a text or CSV file - Please help!!

    I was able to put together a script which finds members of a certain AD group, filters down the users, and then calculates the number of days till a password reset is needed.  I am able to get on screen exactly what i am looking for, but cannot seem

  • Sap abap hr query (top urgent)

    hello, i want to take the list of two fields of students last name i.e. field name is NACHN and first name field name is VORNA the table name both of is P1702 i have the screen. and i have to do the input of students id like from to, let me know how

  • Standby database 10.2

    HI , I have problem with my standby database, all parameters are good work but in my alert log file have following error; ORA-16401: archivelog rejected by RFS, pls help me what the problem??? On Primary: spfileORCL.ora *.control_files='/u01/oracle/o

  • Question for Moderator - Delete post

    I'm trying to contact a moderator to delete a post I made to this forum. It contains two photos that I needed to post in order to have my question answered... but I'd rather not have them public forever. Since a delete option was available before I g

  • Adding a layer with image from URL

    I am trying to write a script that adds a layer to a document, and loads an image from a url such as "http://fantasy411.mlblogs.com/ron-burgundy.jpg" . How can I go about doing this? Thanks in advance.