Designing Sequence of Human Task

Hii All,
I want to design a BPEL work flow for for LOAN approval process where user submits application and if system checks for all required fields if found correct then
it goes as a task to user RM and if approves it it goes for another user AM for approval otherwise it rejects with reason stated.here two human task are involved can anyone please help me and tell the steps i should follow to design this.whether i have to make nested human task or any other process is there in human task.
thanks and regards,
Deekay

Another option is that while designing human task you can have two stages instead of one.
- Open Human Task from Composite.xml
- Expand 'Assignment and Routing Policy'
- Select 'Stage1.Participant1' that is the first stage activity
- Click on th '+' icon under Assignment and Routing
- Select Sequential Participant Block. In the popup select your second participnat/block.
- Go to advanced section of this popup, and check 'skip', Specify a skip rule for this stage. You can choose the outcome from first stage and match it with 'Reject' to skip this stage
HTH

Similar Messages

  • Outcome Sequence of Human Tasks changed REJECT,APPROVE once deployed

    Dear All,
    We have setup the human workflow, and the outcome list we choose as APPROVE,REJECT and in our Jdeveloper it is in the same order. But once deployed, the order gets changed to REJECT,APPROVE in the tmp folder of the server, and accordingly the approver gets REJECT as the first item in the select list.
    Kindly show us the light to disable this conversion.

    Hi,
    hope you are using 11g Jdev..
    What is the mode of deployment you are using?
    you said some temp folder, will that present in Project file? or you are refering to server folder??
    If you are using Scripts to deploy then try to deploy the service usig tool itself or import it as jar. and check this.
    then if u r not facing any issue, check your deployment script properly.
    Thanks,
    Santosh M E

  • Can we call the Human Task operations and the Rule Designer, etc. from outs

    Hi,
    I just had one of my customers ask me -
    Can we call the Human Task operations and the Rule Designer, etc. from outside the SOA Suite ??
    Since these are independent applications, and that they are based on Service Oriented Architecture, I should be able to call these services from outside Oracle SOA Suite (SCA) for reuse.
    In case you have any idea about the possibilities, could you share some real world examples / URLs please ?
    Thanks & Regards

    Hi Vaibhav,
    Yes, you are right. We are using Oracle SOA suite 11g.
    My question is, can these Web Services be directly accessed from, say a .NET application without using BPEL PM, or is using BPEL a must to invoke these services in Human Task operations, Rule Designer, etc ?
    Regards

  • How to Design User Accounts and Groups for Human Task

    Hi All,
    I have a requirement wherein we have a group of people to whom tasks get assigned. Details are below
    Assume
    PO- Purchase Order
    IN- Invoice
    CL1 - Client 1
    CL2 - Client 2
    CL3 - Client 3
    REP1 - User 1
    REP2 - User 2
    REP3 - User 3
    APP1 - Approver 1
    APP2 - Approver 2
    APP3 - Approver 3
    1. There are two groups of people say PO_Team and IN_Team.
    2. REPx are the folks who are in the IN_Team. They handle monitor invoices and run reports on them (READ - Only)
    3. APPx are the folks who are in the PO_team. They approve order and sometimes modify them (READ-WRITE)
    4. CLIx are the clients each of whom send PO and expect IN in return
    5. CLI1 - APP1- REP1 together handle one client.
    Now the requirement is something like this
    1. APP1 must be able to see the PO and IN only from CLI1
    2. APP1 must be able to see editable view of PO from CLI1
    3. APP1 must be able to see red only view of IN from CLI1
    4. REP1 must be able to see the PO and IN only from CLI1
    5. REP1 must be able to see read only view of IN from CLI1
    6. REP1 must be able to see read only view of PO from CLI1
    7. In exception cases APP1 can assign a PO from CLI1 to APP2
    Can someone help me in the design of groups and permissions for this?
    TIA

    Groups are the way to go. Every Human Task can be assigned to either a user or a group or a user and a group. Select the last option so that it goes to a particular user but also to a group. That way anyone in the group can approve these tasks though it is sent to one particular users list. Anyone from that group can pick that task up and approve it

  • Query about Human task (Management Chain)

    hi'
    I am designing work flow in which Human task is there, where I need a group of users to approve
    one after the other based on there seniority.
    my question is:
    1.) How to determine the seniority, if this is in OID how to do this.
    2.) I mentioned 3 users in management chain "A", "B", "C" the request goes to them
    and then in the work list if I log in to any one of them it ask for "Claim" in stead of approve/ reject
    once I do claim for that user, then approve/reject comes in and and after selecting approve/ reject
    the request goes away from all 3 users.
    I am checking the developers guide for Oracle BPEL, it says some thng else but some thing else is happening.
    please advice
    -yatan

    Hi, please make sure that you select Users not Groups under the option 'Requires sequential approval of all partcipants below'. While designing the humantask, under 'Assignment and routing policy' --> type = Sequential List Of Approvers;
    Label=Your_Label
    Requires sequential approval of all participants below: This has two options:By Name, By expression.
    The option By Name has two options: Users, and Groups.
    Here make sure you select 'Users'.
    Then assign all the users in sequence you want them to approve. Then when you login the worklist application, you would see Approve/Reject.
    If the first/current approver approves, then only second/next approver in sequence can see/approve/reject.
    Regards,
    Help Please.
    Edited by: Help please on Oct 26, 2009 10:47 AM

  • Query about Human task (Sequential list of approvers)

    hi'
    I am designing work flow with Human task, with "Sequential list of approvers",
    where I have given "A", "B", "C" users for approval, it goes for approval in sequence
    i.e. 1st to "A" when "A" approves it goes to "B" when "B" approves it goes to "C"
    the issue is if "B" is rejecting it still goes to "C".
    According to to Develpers guide it should not go further.
    pelase advice where I am wrong.
    thanks
    Yatan

    Need to check "Enable abrupt completion condition".
    -Yatan

  • Human tasks, complex types and variable assignment.

    Hi folks,
    I encountered a problem while working with 10.1.3.1 which I haven't managed to solve yet and would be grateful for assistance. I have defined a complex data type (just a sequence of strings) and want to fill that data type by going through a flow of screens, e.g. through several human tasks. I have defined that type as a variable to the BPEL process and have managed to assign simple expressions to the variable and pass that into a Human Task. In the task I see now a simple input form for all attributes of the type.
    Now the problem. After I fill out the form and complete the human task, I have
    The global variable:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                   <vorname/>
                   <nachname/>
                   <strasse/>
                   <nummer/>
                   <postleitzahl/>
                   <stadt/>
                   <maximaleDauer/>
                   <minimaleDauer/>
              </MyProcessResponse>
         </part>
    </outputVariable>
    and the return value from the human task:
    <task>
         <title>CaptureData</title>-
              <payload>
                   <MyProcessResponse>
                        <vorname>David</vorname>
                        <nachname>Beckham</nachname>
                        <strasse>HighStreet</strasse>
                        <nummer/>
                        <postleitzahl/>
                        <stadt/>
                        <maximaleDauer/>
                        <minimaleDauer/>
                   </MyProcessResponse>
              </payload>
    </task>
    Now the only thing I would like to do is to replace the original values in the variable with the new values that have been returned from the task, this should be performed in an extra assign step. Sounds simple. JDeveloper wouldn't even let me klick through the return value from the HumanTask, so it seems as if I have to do things manually.
    These are my tries:
    Command 1:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload" />
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse"/>
    </copy>
    Result 1:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <ns0:MyProcessResponse xmlns="http://xmlns.oracle.com/bpel/workflow/task"     xmlns:ns0="http://xmlns.oracle.com/VacationRequest">
                   <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                        <vorname>David</vorname>
                        <nachname>Beckham</nachname>
                        <strasse>HighStreet</strasse>
                        <nummer/>
                        <postleitzahl/>
                        <stadt/>
                        <maximaleDauer/>
                        <minimaleDauer/>
                   </MyProcessResponse>
              </ns0:MyProcessResponse>
         </part>
    </outputVariable>
    --> There is one MyProcessResponse element too many
    Command 2:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload"/>
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse/ns1:vorname"/>
    </copy>
    Result 2:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                   <ns0:vorname xmlns="http://xmlns.oracle.com/bpel/workflow/task"                     xmlns:ns0="http://xmlns.oracle.com/VacationRequest">
                        <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                             <vorname>David</vorname>
                             <nachname>Beckham</nachname>
                             <strasse>HighStreet</strasse>
                             <nummer/>
                             <postleitzahl/>
                             <stadt/>
                             <maximaleDauer/>
                             <minimaleDauer/>
                        </MyProcessResponse>
                   </ns0:vorname>
                   <nachname/>
                   <strasse/>
                   <nummer/>
                   <postleitzahl/>
                   <stadt/>
                   <maximaleDauer/>
                   <minimaleDauer/>
              </MyProcessResponse>
         </part>
    </outputVariable>
    --> This was moreless expected, since I tried to copy the stuff to some wrong place.
    Command 3:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload/ns0:MyProcessResponse"/>
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse"/>
    </copy>
    Result 3:
    --> Task does't return (!!!). In the BPEL Worklist, the task is completed, however in the BPEL console it still apears as "waiting to return from Human task".
    Does anyone have a hint on how to copy the values so that I get exactly the structure that I printed at the very top?
    Thanks for help. Rock On !

    Hello everyone,
    It seems that we are talking about different things, I am afraid. Let me describe the scenario once again:
    - I want to have a BPEL process with more than one role involved
    - This process should be used to gather some complex data.
    - All data gathering should be done through HumanTasks.
    So I defined an xsd complex type, that contains a sequence of fields. This complex type should be part of the process payload.
    Now before HumanTask 1 is called, I copy the contents of this variable into the input for tasks1. This works fine and I see the appropriate values, when opening the Human Task in the BPEL worklist application.
    Now after HumanTask1 is completed, the values I entered inside that tasks are returned as a variable from the HumanTask. My problem is, that I cannot copy the contents of the task back into the main process. With simpleTypes this is relatively ok, since Jdev supports the assembling of the copy operation, however for complex tasks it fails.
    A typical scenario for this would be where e.g. a customer fills a shipping address and afterwards a store staff fills product details in the same order. In Java this could be solved via "pass by reference". Who can provide an example?

  • BPEL Test waits forever to receive callback from human task service

    Hi,
    I've created a test (CreditCardInvalidTest.xml) to test a bpel process (testbpel.bpel) which contains a call to a human task service. The problem is when the test executes it waits forever to receive the response message from the human task service but clearly i've emulated it! Would appreciate help.
    I've attached both files and highlighted the relevant sections. Thanks.
    testbpel.bpel
    <process name="testbpel" targetNamespace="http://xmlns.oracle.com/testbpel"
    xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:wfcommon="http://xmlns.oracle.com/bpel/workflow/common"
    xmlns:bpws="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:ns4="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
    xmlns:ns7="http://xmlns.oracle.com/testbpel/creditFault"
    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:wf="http://schemas.oracle.com/bpel/extension/workflow"
    xmlns:ns5="http://oracle.com/esb/namespaces/Fufillment"
    xmlns:client="http://xmlns.oracle.com/testbpel"
    xmlns:ns6="http://www.creditcardagency.com/CreditCardService"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:taskservice="http://xmlns.oracle.com/bpel/workflow/taskService"
    xmlns:ns9="http://xmlns.oracle.com/testbpel/orderRejected"
    xmlns:ns1="http://xmlns.oracle.com/bpel/workflow/xpath"
    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:bpelx="http://schemas.oracle.com/bpel/extension"
    xmlns:task="http://xmlns.oracle.com/bpel/workflow/task"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
    xmlns:ns8="http://xmlns.oracle.com/testbpel/genericFault">
    <!--
    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:testbpel"
    myRole="testbpelProvider" partnerRole="testbpelRequester"/>
    <partnerLink name="ShipmentService" partnerRole="execute_pptProvider"
    partnerLinkType="ns5:execute_pptLT"/>
    <partnerLink name="CreditCardService"
    partnerRole="CreditCardServiceProvider"
    partnerLinkType="ns6:CreditCardService"/>
    <partnerLink myRole="TaskServiceCallbackListener" name="TaskService"
    partnerRole="TaskService"
    partnerLinkType="taskservice:TaskService"/>
    </partnerLinks>
    <!--
    VARIABLES
    List of messages and XML documents used within this BPEL process
    -->
    <variables>
    <!-- Reference to the message passed as input during initiation -->
    <!-- Reference to the message that will be sent back to the requester during callback -->
    <variable name="inputVariable"
    messageType="client:testbpelRequestMessage"/>
    <variable name="outputVariable"
    messageType="client:testbpelResponseMessage"/>
    <variable name="n" type="xsd:integer"/>
    <variable name="Invoke_ShipmentService_execute_InputVariable"
    messageType="ns5:orderRequest_request"/>
    <variable name="paymentFault"
    messageType="client:testbpelFaultMessage"/>
    <variable name="ApproveOrder_1_globalVariable"
    messageType="taskservice:taskMessage"/>
    <variable name="orderRejectedFault"
    messageType="client:testbpelFaultMessage"/>
    </variables>
    <faultHandlers>
    <catchAll>
    <sequence name="Sequence_6">
    <throw name="Throw_AllFaults"
    faultName="ns8:testbpelGenericFault"
    faultVariable="paymentFault"/>
    </sequence>
    </catchAll>
    </faultHandlers>
    <!--
    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 testbpel.wsdl) -->
    <receive name="receiveInput" partnerLink="client"
    portType="client:testbpel" operation="initiate"
    variable="inputVariable" createInstance="yes"/>
    <!--
    Asynchronous callback to the requester. (Note: the callback location and correlation id is transparently handled using WS-addressing.)
    -->
    <scope name="CheckForApproval">
    <sequence name="Sequence_4">
    <sequence name="Sequence_5">
    <scope name="ApproveOrder_1"
    xmlns:wf="http://schemas.oracle.com/bpel/extension/workflow"
    wf:key="ApproveOrder_1_globalVariable">
    <bpelx:annotation>
    <bpelx:pattern patternName="bpelx:workflow"></bpelx:pattern>
    </bpelx:annotation>
    <variables>
    <variable name="initiateTaskInput"
    messageType="taskservice:initiateTaskMessage"/>
    <variable name="initiateTaskResponseMessage"
    messageType="taskservice:initiateTaskResponseMessage"/>
    </variables>
    <correlationSets>
    <correlationSet name="WorkflowTaskIdCor"
    properties="taskservice:taskId"/>
    </correlationSets>
    <sequence>
    <assign name="ApproveOrder_1_AssignTaskAttributes">
    <copy>
    <from expression="concat(ora:getProcessURL(), string('/ApproveOrder/ApproveOrder.task'))"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:taskDefinitionURI"/>
    </copy>
    <copy>
    <from expression="number(3)"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:priority"/>
    </copy>
    <copy>
    <from>
    <payload xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
    </from>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:payload"/>
    </copy>
    </assign>
    <assign name="ApproveOrder_1_AssignSystemTaskAttributes">
    <copy>
    <from expression="ora:getInstanceId()"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:instanceId"/>
    </copy>
    <copy>
    <from expression="ora:getProcessId()"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:processName"/>
    </copy>
    <copy>
    <from expression="ora:getProcessId()"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:processId"/>
    </copy>
    <copy>
    <from expression="ora:getProcessVersion()"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:processVersion"/>
    </copy>
    <copy>
    <from expression="ora:getDomainId()"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:domainId"/>
    </copy>
    <copy>
    <from expression="string('BPEL')"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:processType"/>
    </copy>
    </assign>
    <invoke name="initiateTask_ApproveOrder_1"
    partnerLink="TaskService"
    portType="taskservice:TaskService"
    operation="initiateTask"
    inputVariable="initiateTaskInput"
    outputVariable="initiateTaskResponseMessage">
    <correlations>
    <correlation initiate="yes"
    set="WorkflowTaskIdCor"
    pattern="in"/>
    </correlations>
    </invoke>
    *<receive name="receiveCompletedTask_ApproveOrder_1"*
    partnerLink="TaskService"
    portType="taskservice:TaskServiceCallback"
    operation="onTaskCompleted"
    variable="ApproveOrder_1_globalVariable"
    createInstance="no">
    *<correlations>*
    *<correlation initiate="no"*
    set="WorkflowTaskIdCor"/>
    *</correlations>*
    *</receive>*
    </sequence>
    </scope>
    <switch name="taskSwitch">
    <case condition="bpws:getVariableData('ApproveOrder_1_globalVariable', 'payload', '/task:task/task:systemAttributes/task:state') = 'COMPLETED' and bpws:getVariableData('ApproveOrder_1_globalVariable', 'payload', '/task:task/task:systemAttributes/task:outcome') = 'REJECT'">
    <bpelx:annotation>
    <bpelx:pattern patternName="case">Task outcome is REJECT</bpelx:pattern>
    </bpelx:annotation>
    <sequence>
    <assign name="AssignOrderRejected">
    <copy>
    <from expression="string('Order rejected by manager')"/>
    <to variable="paymentFault"
    part="payload"
    query="/client:testbpelProcessFault/client:status"/>
    </copy>
    </assign>
    <throw name="ThrowOrderRejected"
    faultName="ns9:orderRejectedFault"
    faultVariable="orderRejectedFault"/>
    </sequence>
    </case>
    <case condition="bpws:getVariableData('ApproveOrder_1_globalVariable', 'payload', '/task:task/task:systemAttributes/task:state') = 'COMPLETED' and bpws:getVariableData('ApproveOrder_1_globalVariable', 'payload', '/task:task/task:systemAttributes/task:outcome') = 'APPROVE'">
    <bpelx:annotation>
    <bpelx:pattern patternName="case">Task outcome is APPROVE</bpelx:pattern>
    </bpelx:annotation>
    <sequence>
    <empty name="Empty_1"/>
    </sequence>
    </case>
    <otherwise>
    <bpelx:annotation>
    <bpelx:pattern>Task is outcome is EXPIRED, STALE, WITHDRAWN or ERRORED</bpelx:pattern>
    </bpelx:annotation>
    <sequence>
    <empty name="Empty_2"/>
    </sequence>
    </otherwise>
    </switch>
    </sequence>
    </sequence>
    </scope>
    <scope name="CheckCreditCard">
    <variables>
    <variable name="InvokeCreditCardService_process_InputVariable"
    messageType="ns6:CreditCardServiceRequestMessage"/>
    <variable name="InvokeCreditCardService_process_OutputVariable"
    messageType="ns6:CreditCardServiceResponseMessage"/>
    </variables>
    <sequence name="Sequence_2">
    <assign name="Assign_1">
    <copy>
    <from variable="inputVariable" part="payload"
    query="/client:testbpelProcessRequest/client:CreditCardNumber"/>
    <to variable="InvokeCreditCardService_process_InputVariable"
    part="payload"
    query="/ns6:CreditCardServiceProcessRequest/ns6:CreditCardNumber"/>
    </copy>
    </assign>
    <scope name="Scope_1">
    <compensationHandler>
    <sequence name="Sequence_7">
    <empty name="Empty_3"/>
    </sequence>
    </compensationHandler>
    <invoke name="InvokeCreditCardService"
    partnerLink="CreditCardService"
    portType="ns6:CreditCardService" operation="process"
    inputVariable="InvokeCreditCardService_process_InputVariable"
    outputVariable="InvokeCreditCardService_process_OutputVariable"/>
    </scope>
    <switch name="CheckCreditCardValid">
    <case condition="bpws:getVariableData('InvokeCreditCardService_process_OutputVariable','payload','/ns6:CreditCardServiceProcessResponse/ns6:result') = 'false'">
    <sequence name="Sequence_3">
    <assign name="AssignCreditFault">
    <copy>
    <from expression="string('Invalid credit card number')"/>
    <to variable="paymentFault" part="payload"
    query="/client:testbpelProcessFault/client:status"/>
    </copy>
    </assign>
    <throw name="ThrowCreditFault"
    faultName="ns7:CreditCardNumberFault"
    faultVariable="paymentFault"/>
    </sequence>
    </case>
    </switch>
    </sequence>
    </scope>
    <assign name="AssignInitial">
    <copy>
    <from expression="string('Select Manufacturer')"/>
    <to variable="outputVariable" part="payload"
    query="/client:testbpelProcessResponse/client:result"/>
    </copy>
    <copy>
    <from expression="1"/>
    <to variable="n"/>
    </copy>
    <copy>
    <from expression="0.0"/>
    <to variable="outputVariable" part="payload"
    query="/client:testbpelProcessResponse/client:price"/>
    </copy>
    </assign>
    <while name="While_1"
    condition="bpws:getVariableData('n') &lt;= count(bpws:getVariableData('inputVariable','payload','/client:testbpelProcessRequest/client:input'))">
    <sequence name="Sequence_1">
    <assign name="DoCalculation">
    <copy>
    <from expression="bpws:getVariableData('inputVariable','payload', concat('/client:testbpelProcessRequest/client:input[', bpws:getVariableData('n'), ']/client:quantity')) * bpws:getVariableData('inputVariable','payload',concat('/client:testbpelProcessRequest/client:input[', bpws:getVariableData('n'), ']/client:bookPrice')) + bpws:getVariableData('outputVariable','payload','/client:testbpelProcessResponse/client:price')"/>
    <to variable="outputVariable" part="payload"
    query="/client:testbpelProcessResponse/client:price"/>
    </copy>
    <copy>
    <from expression="bpws:getVariableData('n') + 1"/>
    <to variable="n"/>
    </copy>
    </assign>
    </sequence>
    </while>
    <assign name="Transform_2">
    <bpelx:annotation>
    <bpelx:pattern>transformation</bpelx:pattern>
    </bpelx:annotation>
    <copy>
    <from expression="ora:processXSLT('TransformOrder.xsl',bpws:getVariableData('inputVariable','payload'))"/>
    <to variable="Invoke_ShipmentService_execute_InputVariable"
    part="orderRequest"/>
    </copy>
    </assign>
    <invoke name="Invoke_ShipmentService" partnerLink="ShipmentService"
    portType="ns5:execute_ppt" operation="execute"
    inputVariable="Invoke_ShipmentService_execute_InputVariable"/>
    <invoke name="callbackClient" partnerLink="client"
    portType="client:testbpelCallback" operation="onResult"
    inputVariable="outputVariable"/>
    </sequence>
    </process>
    CreditCardInvalidTest.xml
    <BPELTest processName="testbpel"
    xmlns="http://xmlns.oracle.com/bpel/instancedriver"
    xmlns:client="http://xmlns.oracle.com/testbpel">
    <initiate operation="initiate">
    <inboundMessage>
    <part fileName="testInput.xml" name="payload"/>
    </inboundMessage>
    </initiate>
    <activityDriver name="callbackClient">
    <assertValue variableName="outputVariable" partName="payload"
    comparisonMethod="string" fatal="false" patternMatch="false">
    <message>Expected "Select Manufacturer"</message>
    <actualPath>/client:testbpelProcessResponse/client:result</actualPath>
    <expected>Select Manufacturer</expected>
    </assertValue>
    <assertValue variableName="outputVariable" partName="payload"
    comparisonMethod="string" fatal="true" patternMatch="false">
    <message>Expected price of "1"</message>
    <actualPath>/client:testbpelProcessResponse/client:price</actualPath>
    <expected>1</expected>
    </assertValue>
    </activityDriver>
    *<activityDriver name="receiveCompletedTask_ApproveOrder_1">*
    *<emulate duration="PT">*
    *<inboundMessage>*
    *<part fileName="approverResponse.xml" name="payload"/>*
    *</inboundMessage>*
    *</emulate>*
    *</activityDriver>* <--- it waits FOREVER at this bit to receive the approverResponse.xml :s
    <activityDriver name="InvokeCreditCardService">
    <emulate duration="PT">
    <inboundMessage>
    <part fileName="creditCardServiceResponse.xml" name="payload"/>
    </inboundMessage>
    </emulate>
    </activityDriver>
    <activityDriver name="initiateTask_ApproveOrder_1">
    <emulate duration="PT">
    <inboundMessage>
    <part fileName="getApproval.xml" name="payload"/>
    </inboundMessage>
    </emulate>
    </activityDriver>
    </BPELTest>

    RaviKiran,
    I agree that the explanation oracle provided in the attach link, is a bit confusing. The main goal there is to describe the behavior of processes, when there is a need to combine, or split the transactions within those processes (or in some cases the processes themselves).
    The thing is - The default transaction for a synchronous process is requiresNew. That was until version 11.1.1.6. On this last version, you are asking to enter a Transaction parameter when creating a new synchronous bpel process. The default value being prompt is required and that's what causing the problem – You automatically accept the default.
    The assumption is, that developing bpel processes, should come with understanding of all those behaviors.
    The problem for my understanding is that some of those behaviors were not so cleared until now.
    Arik

  • Human Task form data needs to be refreshed in case of abrupt shutdown.

    Hi Everyone,
    I've got an interesting challenge in my BPM process and was hoping for some guidance.
    I'm using the 11g SOA suite. A BPM process within my application is designed such
    1. A start node passes a String to a service task
    2.The service task makes a call to a webservice operation and passes a payload to a human task
    3. The human task has an ADF form built on it and a user can add data to this form in addition to the payload it recd in step 2. When the human task is updated, we have partial submits that invoke webservices to update this data in the database.
    Now here's the challenge : If the form is abruptly closed, how do I refresh the data in my form so that it contains the changes made by the user. Do BPM processes auntomatically buffer such data? Or is there way in which I can loop back to the previous step of calling the webservice? All that my form has now is the payload from step 2, I'm resisiting writing a webservice call to refresh data in my form as I can't define what would trigger this webservice call.
    Also, another thought I had was that this is a BPM process made of synchronous calls throughout. How can I rectify this so that data is always up to date in the form? Adapters come to mind, but not too sure how. Any guidance is much appreciated.
    Many thanks,
    Preethi.

    Hi,
    First thoughts:
    I know you say that the data is not in a database, but I think that's the best place for a list like you're describing. Is there a reason why you don't want it in a database?
    If it can't be in a database, you could put it in a file and read the file to build your list. That should be pretty easy to do. For changes to the list you maintain the file instead of the hardcoding in the application.

  • Complete Task with Payload Problem  -- no Human Task Drop Handler

    I'm reading section 26.4.1 of Developer’s Guide for Oracle SOA Suite 11g Release 1 (11.1.1) E10224-01 where it refers to figure 26-5 Human Task Drop Handler for Creating the Task Display Form of section 26.4 Creating a Task Display Form.
    I've generated taskDetails1.jspx. I highlight Task as in the figure and right click in askDetails1.jspx (design tab) but I don't get a Create JSF page dialog as in the figure.
    I get a dialog with Insert Before Show Detail Spacer ... etc (no Create /Human Task/Complete Task with payload etc)
    Do I need to position within a particular element ? or is this a bug ? wrongly documented?

    Hi Diana, thanks for your reply.
    You're probably right about 2 different error messages.
    To the 1st one: I'm sure that status task is Assigned (to me). I received an email and I also reply on that email.
    To error log: I found out that error log appears when I enable email endpoint on Complete Task service. But I managed to solve this problem. I set wrong user. Now I have here the same user as is written in login-config.xml so log seems to be ok.
    So I created new task and tried to complete it via email. Now I receive email with another error:
    LiveCycle ES has tried to process your request and encountered the following error:
    com.adobe.idp.dsc.provider.service.email.impl.EmailProviderException: Error getting user context
    This response to your original email
    Subject:RE:Task Assignment - Process: WorkFlowClient/Test. Task 92 has been assigned to you.
    Date Sent:Thursday, October 27, 2011 3:05 PM
    Body:Complete
    DO-NOT-DELETE: MTIxMSExNjAzITIwMTE=!
    Attachments:
    And to the last point: email endpoint is set up with TestPOP3@mydomain and user receiving email has jpetrla@mydomain. I use Lotus Notes as email client, I tried another account with gmail, but the result was same.
    Now I really don't know to do...
    Jan

  • How to fire diffent queries through Human Task

    hi',
    I am designing work-flow for my application where Sales Manager(Human Task) will get one order and it is up to him to approve or reject. I want to fire different queries for when he approve or reject, please guide me how to achieve this.
    thanks
    Yatan

    Usually when the user approves the task workflow API will be invoked and the response will initiate the BPEL process. If you want to fire different queries you may have to use ADF or use some external portal applications and jse java to call the work flow API's and complete the task.
    Steps:
    1. Add the workflow process activity in the BPEL process which initiate the task, this will generate the email notification. In this notification send the portal UI link.
    2. Once user access the link and approve in the back end all the workflow API's in your case you can fire other queries and then call the workfloe API's and finish the waiting the task to be complieted.
    Let me know if you have any questions.
    Thanks
    Ramana.

  • How to know which stage has been completed in Human task flow.

    Hi All,
    I have one human task flow where there is three participants. Participant A, B and C and all are in sequence.
    When User B approves the task, i need to do some business logic. when user B approves the task, it will be assigned to User C. I have defined call back events. There i can use task assigned condition to do my business logic.
    My question is that how i can get to know that Task assigned to user C. Because it is a call back event and will be triggered when it will be assigned to A or B. I have tried to user the function previousOutcomeUpdatedBy to check whether it previous user was B or not. but in my case it is coming as workflowsystem.
    instead of User B it is using workflowsystem
    User:workflowsystem; State:OUTCOME_UPDATED; Outcome:CONFIRM
    I am not aware, why workflow system is coming in picture.
    do any one idea, how to solve this use case.
    Regards,
    Sunil

    You can get the status from back end tables.
    Check in SOA INFRA tables. Below is the list of human work flow tables.
    WFTASK
    WFTASK_TL
    WFTASKHISTORY
    WFTASKHISTORY_TL
    WFCOMMENTS
    WFMESSAGEATTRIBUTE
    WFATTACHMENT
    WFASSIGNEE
    WFREVIEWER
    WFCOLLECTIONTARGET
    WFROUTINGSLIP
    WFNOTIFICATION
    WFNOTIFICATIONSTATUS
    BPELNOTIFICATION
    BPELNOTIFICATION_FILTERMSGS
    BPELNOTIFICATION_INVALADDRS
    WFTASKMETADATA
    WFATTRIBUTELABELMAP
    WFATTRIBUTELABELUSAGE
    WFUSERVACATION
    BPM_PRESENTATION
    BPM_PRESENTATION_GRANT
    WFUSERTASKVIEW
    WFUSERTASKVIEWGRANT
    WFUSERPREFERENCE
    BPM_USERAPPLICATIONDATA
    BPM_USERAPPLICATIONDATA_GRANT
    WFRULEDICTIONARY
    WFTASKDISPLAY
    WFTASKTIMER
    WFNOTIFICATIONMESSAGES
    WFTASKERROR
    WFHEADERPROPS
    WFCERTAUTHORITY
    WFCERTIFICATEREVOKED
    WFCERTIFICATE
    WFEVIDENCE
    WFTASKASSIGNMENTSTATISTIC
    WFTASKSEQUENCECHANGES
    WFTASKAGGREGATION
    WFAPPROVALGROUPS
    WFAPPROVALGROUPMEMBERS
    Thanks,
    Vijay

  • Test waits forever for a callback from a human task

    Hi,
    I've create a test to test a BPEL process. Now within the BPEL process there is a call to a human task service. I've emulated the task initiation message which is fine. I also tried to emulate the receive message from the human task service but during the test execution, the test waits forever to receive the callback from the human task service, even though i've specified the return message. Would appreciate help with this! I've posted my testbpel.bpel and the test case (CreditCardInvalidTest.xml) below. For both these files I've highlighted in bold the relevant bits of code that's giving me problems. Thanks
    testbpel.bpel:
    <?xml version = "1.0" encoding = "UTF-8" ?>
    <process name="testbpel" targetNamespace="http://xmlns.oracle.com/testbpel"
    xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:wfcommon="http://xmlns.oracle.com/bpel/workflow/common"
    xmlns:bpws="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:ns4="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
    xmlns:ns7="http://xmlns.oracle.com/testbpel/creditFault"
    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:wf="http://schemas.oracle.com/bpel/extension/workflow"
    xmlns:ns5="http://oracle.com/esb/namespaces/Fufillment"
    xmlns:client="http://xmlns.oracle.com/testbpel"
    xmlns:ns6="http://www.creditcardagency.com/CreditCardService"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:taskservice="http://xmlns.oracle.com/bpel/workflow/taskService"
    xmlns:ns9="http://xmlns.oracle.com/testbpel/orderRejected"
    xmlns:ns1="http://xmlns.oracle.com/bpel/workflow/xpath"
    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:bpelx="http://schemas.oracle.com/bpel/extension"
    xmlns:task="http://xmlns.oracle.com/bpel/workflow/task"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
    xmlns:ns8="http://xmlns.oracle.com/testbpel/genericFault">
    <!--
    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:testbpel"
    myRole="testbpelProvider" partnerRole="testbpelRequester"/>
    <partnerLink name="ShipmentService" partnerRole="execute_pptProvider"
    partnerLinkType="ns5:execute_pptLT"/>
    <partnerLink name="CreditCardService"
    partnerRole="CreditCardServiceProvider"
    partnerLinkType="ns6:CreditCardService"/>
    <partnerLink myRole="TaskServiceCallbackListener" name="TaskService"
    partnerRole="TaskService"
    partnerLinkType="taskservice:TaskService"/>
    </partnerLinks>
    <!--
    VARIABLES
    List of messages and XML documents used within this BPEL process
    -->
    <variables>
    <!-- Reference to the message passed as input during initiation -->
    <!-- Reference to the message that will be sent back to the requester during callback -->
    <variable name="inputVariable"
    messageType="client:testbpelRequestMessage"/>
    <variable name="outputVariable"
    messageType="client:testbpelResponseMessage"/>
    <variable name="n" type="xsd:integer"/>
    <variable name="Invoke_ShipmentService_execute_InputVariable"
    messageType="ns5:orderRequest_request"/>
    <variable name="paymentFault"
    messageType="client:testbpelFaultMessage"/>
    <variable name="ApproveOrder_1_globalVariable"
    messageType="taskservice:taskMessage"/>
    <variable name="orderRejectedFault"
    messageType="client:testbpelFaultMessage"/>
    </variables>
    <faultHandlers>
    <catchAll>
    <sequence name="Sequence_6">
    <throw name="Throw_AllFaults"
    faultName="ns8:testbpelGenericFault"
    faultVariable="paymentFault"/>
    </sequence>
    </catchAll>
    </faultHandlers>
    <!--
    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 testbpel.wsdl) -->
    <receive name="receiveInput" partnerLink="client"
    portType="client:testbpel" operation="initiate"
    variable="inputVariable" createInstance="yes"/>
    <!--
    Asynchronous callback to the requester. (Note: the callback location and correlation id is transparently handled using WS-addressing.)
    -->
    <scope name="CheckForApproval">
    <sequence name="Sequence_4">
    <sequence name="Sequence_5">
    <scope name="ApproveOrder_1"
    xmlns:wf="http://schemas.oracle.com/bpel/extension/workflow"
    wf:key="ApproveOrder_1_globalVariable">
    <bpelx:annotation>
    <bpelx:pattern patternName="bpelx:workflow"></bpelx:pattern>
    </bpelx:annotation>
    <variables>
    <variable name="initiateTaskInput"
    messageType="taskservice:initiateTaskMessage"/>
    <variable name="initiateTaskResponseMessage"
    messageType="taskservice:initiateTaskResponseMessage"/>
    </variables>
    <correlationSets>
    <correlationSet name="WorkflowTaskIdCor"
    properties="taskservice:taskId"/>
    </correlationSets>
    <sequence>
    <assign name="ApproveOrder_1_AssignTaskAttributes">
    <copy>
    <from expression="concat(ora:getProcessURL(), string('/ApproveOrder/ApproveOrder.task'))"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:taskDefinitionURI"/>
    </copy>
    <copy>
    <from expression="number(3)"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:priority"/>
    </copy>
    <copy>
    <from>
    <payload xmlns="http://xmlns.oracle.com/bpel/workflow/task"/>
    </from>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:payload"/>
    </copy>
    </assign>
    <assign name="ApproveOrder_1_AssignSystemTaskAttributes">
    <copy>
    <from expression="ora:getInstanceId()"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:instanceId"/>
    </copy>
    <copy>
    <from expression="ora:getProcessId()"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:processName"/>
    </copy>
    <copy>
    <from expression="ora:getProcessId()"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:processId"/>
    </copy>
    <copy>
    <from expression="ora:getProcessVersion()"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:processVersion"/>
    </copy>
    <copy>
    <from expression="ora:getDomainId()"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:domainId"/>
    </copy>
    <copy>
    <from expression="string('BPEL')"/>
    <to variable="initiateTaskInput"
    part="payload"
    query="/taskservice:initiateTask/task:task/task:processInfo/task:processType"/>
    </copy>
    </assign>
    <invoke name="initiateTask_ApproveOrder_1"
    partnerLink="TaskService"
    portType="taskservice:TaskService"
    operation="initiateTask"
    inputVariable="initiateTaskInput"
    outputVariable="initiateTaskResponseMessage">
    <correlations>
    <correlation initiate="yes"
    set="WorkflowTaskIdCor"
    pattern="in"/>
    </correlations>
    </invoke>
    *<receive name="receiveCompletedTask_ApproveOrder_1"*
    partnerLink="TaskService"
    portType="taskservice:TaskServiceCallback"
    operation="onTaskCompleted"
    variable="ApproveOrder_1_globalVariable"
    createInstance="no">
    *<correlations>*
    *<correlation initiate="no"*
    set="WorkflowTaskIdCor"/>
    *</correlations>*
    *</receive>* </sequence>
    </scope>
    <switch name="taskSwitch">
    <case condition="bpws:getVariableData('ApproveOrder_1_globalVariable', 'payload', '/task:task/task:systemAttributes/task:state') = 'COMPLETED' and bpws:getVariableData('ApproveOrder_1_globalVariable', 'payload', '/task:task/task:systemAttributes/task:outcome') = 'REJECT'">
    <bpelx:annotation>
    <bpelx:pattern patternName="case">Task outcome is REJECT</bpelx:pattern>
    </bpelx:annotation>
    <sequence>
    <assign name="AssignOrderRejected">
    <copy>
    <from expression="string('Order rejected by manager')"/>
    <to variable="paymentFault"
    part="payload"
    query="/client:testbpelProcessFault/client:status"/>
    </copy>
    </assign>
    <throw name="ThrowOrderRejected"
    faultName="ns9:orderRejectedFault"
    faultVariable="orderRejectedFault"/>
    </sequence>
    </case>
    <case condition="bpws:getVariableData('ApproveOrder_1_globalVariable', 'payload', '/task:task/task:systemAttributes/task:state') = 'COMPLETED' and bpws:getVariableData('ApproveOrder_1_globalVariable', 'payload', '/task:task/task:systemAttributes/task:outcome') = 'APPROVE'">
    <bpelx:annotation>
    <bpelx:pattern patternName="case">Task outcome is APPROVE</bpelx:pattern>
    </bpelx:annotation>
    <sequence>
    <empty name="Empty_1"/>
    </sequence>
    </case>
    <otherwise>
    <bpelx:annotation>
    <bpelx:pattern>Task is outcome is EXPIRED, STALE, WITHDRAWN or ERRORED</bpelx:pattern>
    </bpelx:annotation>
    <sequence>
    <empty name="Empty_2"/>
    </sequence>
    </otherwise>
    </switch>
    </sequence>
    </sequence>
    </scope>
    <scope name="CheckCreditCard">
    <variables>
    <variable name="InvokeCreditCardService_process_InputVariable"
    messageType="ns6:CreditCardServiceRequestMessage"/>
    <variable name="InvokeCreditCardService_process_OutputVariable"
    messageType="ns6:CreditCardServiceResponseMessage"/>
    </variables>
    <sequence name="Sequence_2">
    <assign name="Assign_1">
    <copy>
    <from variable="inputVariable" part="payload"
    query="/client:testbpelProcessRequest/client:CreditCardNumber"/>
    <to variable="InvokeCreditCardService_process_InputVariable"
    part="payload"
    query="/ns6:CreditCardServiceProcessRequest/ns6:CreditCardNumber"/>
    </copy>
    </assign>
    <scope name="Scope_1">
    <compensationHandler>
    <sequence name="Sequence_7">
    <empty name="Empty_3"/>
    </sequence>
    </compensationHandler>
    <invoke name="InvokeCreditCardService"
    partnerLink="CreditCardService"
    portType="ns6:CreditCardService" operation="process"
    inputVariable="InvokeCreditCardService_process_InputVariable"
    outputVariable="InvokeCreditCardService_process_OutputVariable"/>
    </scope>
    <switch name="CheckCreditCardValid">
    <case condition="bpws:getVariableData('InvokeCreditCardService_process_OutputVariable','payload','/ns6:CreditCardServiceProcessResponse/ns6:result') = 'false'">
    <sequence name="Sequence_3">
    <assign name="AssignCreditFault">
    <copy>
    <from expression="string('Invalid credit card number')"/>
    <to variable="paymentFault" part="payload"
    query="/client:testbpelProcessFault/client:status"/>
    </copy>
    </assign>
    <throw name="ThrowCreditFault"
    faultName="ns7:CreditCardNumberFault"
    faultVariable="paymentFault"/>
    </sequence>
    </case>
    </switch>
    </sequence>
    </scope>
    <assign name="AssignInitial">
    <copy>
    <from expression="string('Select Manufacturer')"/>
    <to variable="outputVariable" part="payload"
    query="/client:testbpelProcessResponse/client:result"/>
    </copy>
    <copy>
    <from expression="1"/>
    <to variable="n"/>
    </copy>
    <copy>
    <from expression="0.0"/>
    <to variable="outputVariable" part="payload"
    query="/client:testbpelProcessResponse/client:price"/>
    </copy>
    </assign>
    <while name="While_1"
    condition="bpws:getVariableData('n') &lt;= count(bpws:getVariableData('inputVariable','payload','/client:testbpelProcessRequest/client:input'))">
    <sequence name="Sequence_1">
    <assign name="DoCalculation">
    <copy>
    <from expression="bpws:getVariableData('inputVariable','payload', concat('/client:testbpelProcessRequest/client:input[', bpws:getVariableData('n'), ']/client:quantity')) * bpws:getVariableData('inputVariable','payload',concat('/client:testbpelProcessRequest/client:input[', bpws:getVariableData('n'), ']/client:bookPrice')) + bpws:getVariableData('outputVariable','payload','/client:testbpelProcessResponse/client:price')"/>
    <to variable="outputVariable" part="payload"
    query="/client:testbpelProcessResponse/client:price"/>
    </copy>
    <copy>
    <from expression="bpws:getVariableData('n') + 1"/>
    <to variable="n"/>
    </copy>
    </assign>
    </sequence>
    </while>
    <assign name="Transform_2">
    <bpelx:annotation>
    <bpelx:pattern>transformation</bpelx:pattern>
    </bpelx:annotation>
    <copy>
    <from expression="ora:processXSLT('TransformOrder.xsl',bpws:getVariableData('inputVariable','payload'))"/>
    <to variable="Invoke_ShipmentService_execute_InputVariable"
    part="orderRequest"/>
    </copy>
    </assign>
    <invoke name="Invoke_ShipmentService" partnerLink="ShipmentService"
    portType="ns5:execute_ppt" operation="execute"
    inputVariable="Invoke_ShipmentService_execute_InputVariable"/>
    <invoke name="callbackClient" partnerLink="client"
    portType="client:testbpelCallback" operation="onResult"
    inputVariable="outputVariable"/>
    </sequence>
    </process>
    CreditCardInvalidTest.xml:
    <?xml version='1.0' encoding='utf-8'?>
    <BPELTest processName="testbpel"
    xmlns="http://xmlns.oracle.com/bpel/instancedriver"
    xmlns:client="http://xmlns.oracle.com/testbpel">
    <initiate operation="initiate">
    <inboundMessage>
    <part fileName="testInput.xml" name="payload"/>
    </inboundMessage>
    </initiate>
    <activityDriver name="callbackClient">
    <assertValue variableName="outputVariable" partName="payload"
    comparisonMethod="string" fatal="false" patternMatch="false">
    <message>Expected "Select Manufacturer"</message>
    <actualPath>/client:testbpelProcessResponse/client:result</actualPath>
    <expected>Select Manufacturer</expected>
    </assertValue>
    <assertValue variableName="outputVariable" partName="payload"
    comparisonMethod="string" fatal="true" patternMatch="false">
    <message>Expected price of "1"</message>
    <actualPath>/client:testbpelProcessResponse/client:price</actualPath>
    <expected>1</expected>
    </assertValue>
    </activityDriver>
    *<activityDriver name="receiveCompletedTask_ApproveOrder_1">*
    *<emulate duration="PT">*
    *<inboundMessage>*
    *<part fileName="approverResponse.xml" name="payload"/>*
    *</inboundMessage>*
    *</emulate>*
    *</activityDriver>* <activityDriver name="InvokeCreditCardService">
    <emulate duration="PT">
    <inboundMessage>
    <part fileName="creditCardServiceResponse.xml" name="payload"/>
    </inboundMessage>
    </emulate>
    </activityDriver>
    <activityDriver name="initiateTask_ApproveOrder_1">
    <emulate duration="PT">
    <inboundMessage>
    <part fileName="getApproval.xml" name="payload"/>
    </inboundMessage>
    </emulate>
    </activityDriver>
    </BPELTest>

    Hi hi, on a hunch I previewed the page in the browser, and copy pasted the faces/untitled1 portion of the URL there and pasted on the http://<server_address>:8001/BasicAPPDemo_Root therefore ending with http://<server_address>:8001/BasicAPPDemo_Root/faces/untitled1 and lo and behold I saw the little text box saying "Hello World" ;D
    So with that i escalated, switched to the application where the page from BPM was located, deployed it and did the same trick.
    But it borked it gave this error:
    JBO-29115 Unable to construct the error message due to error java.lang.NullPointerException. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-.
    I figured that the Default generation could be faulty so i created a new page and only recycled the data controls, created everything in read mode, just to test and deployed, when i tested, i was optimistic as the 1st tab didn't had any error (also does not have anything related to the HumanTask, even the data controls) the problem was in the other tabs as I show here.
    Many thanks sirs, and sorry for wasting thy time.

  • Human Task output variables (I need help I'm in a dead end alley)

    Good evening to all. I have a human task, that receives this input in the input variable:
         <element name="ReadWriteHumanTaskProcessRequest">
              <complexType>
                   <sequence>
                        <element name="numero" type="string"/>
                        <element name="apellidos" type="string"/>
                        <element name="nombres" type="string"/>
                        <element name="direccion" type="string"/>
                   </sequence>
              </complexType>
         </element>
    I append this to the payload of the task :
    <bpelx:append>
    <bpelx:from variable="inputVariable" part="payload"
    query="/client:ReadWriteHumanTaskProcessRequest"/>
    <bpelx:to variable="initiateTaskInput" part="payload"
    query="/taskservice:initiateTask/task:task/task:payload"/>
    </bpelx:append>
    The JSP page shows fine, user modify the fiels, I can see in the Receive part of the Human task the fields that are modified:
    <?xml version="1.0" encoding="UTF-8" ?>
    - <task xmlns="http://xmlns.oracle.com/bpel/workflow/task">
    <title>Another One</title>
    - <payload xmlns="http://xmlns.oracle.com/bpel/workflow/task">
    - <ns1:ReadWriteHumanTaskProcessRequest xmlns:ns1="http://xmlns.oracle.com/ReadWriteHumanTask">
    <ns1:numero>1</ns1:numero>
    <ns1:apellidos>q</ns1:apellidos>
    <ns1:nombres>a</ns1:nombres>
    <ns1:direccion>z</ns1:direccion>
    </ns1:ReadWriteHumanTaskProcessRequest>
    </payload>
    I need to retrieve the value of the contet of the payload, I have tried this:
    <copy>
    <from variable="ReadWriteHT_1_globalVariable"
    part="payload"
    query="/task:task/task:payload"/>
    <to variable="inputVariable" part="payload"
    query="/client:ReadWriteHumanTaskProcessRequest"/>
    During deploymet I got a warning about incompatible types in from-spec to-spect but it works anyway.
    But the result is this:
    <inputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload"><ns1:ReadWriteHumanTaskProcessRequest xmlns="http://xmlns.oracle.com/bpel/workflow/task" xmlns:ns1="http://xmlns.oracle.com/ReadWriteHumanTask"><ns1:ReadWriteHumanTaskProcessRequest xmlns:ns1="http://xmlns.oracle.com/ReadWriteHumanTask">
    <ns1:numero>1</ns1:numero>
    <ns1:apellidos>q</ns1:apellidos>
    <ns1:nombres>a</ns1:nombres>
    <ns1:direccion>z</ns1:direccion>
    </ns1:ReadWriteHumanTaskProcessRequest>
    </ns1:ReadWriteHumanTaskProcessRequest>
    </part></inputVariable>
    As you can see the payload is inside the input variable and I can't find a way in the copy to write anything but /task:task/task:payload.
    I've see the samples and tutorials, those work but mine no. There is a way to get the values from the element task:payload ?

    Hello to all. I´ve been trying to do something very similar to Ivan. I created a Human Task that has one Parameter called test which is a {http://www.w3.org/2001/XMLSchema}string. I then genereted a Auto Task Form so that I can update the value of this parameter in the worklist. So for so good. Now I want to get this value that was inputed in this variable and copy to a global variable that I have created, that has the same type: {http://www.w3.org/2001/XMLSchema}string
    I followed the instructions above but had no luck. here is the code:
    <assign name="CopyPayloadFromTask">
    <copy>
    <from variable="TesteFormulario_1_globalVariable"
    part="payload"
    query="/task:task/task:payload/client:TesteFormProcessRequest/client:test"/>
    <to variable="FormReturn"/>
    </copy>
    </assign>
    When I run the flow, it gives me this message:
    <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><part name="summary"><summary>empty variable/expression result.
    xpath variable/expression expression "/task:task/task:payload/client:TesteFormularioProcessRequest/client:test" is empty at line 175, when attempting reading/copying it.
    Please make sure the variable/expression result "/task:task/task:payload/client:TesteFormularioProcessRequest/client:test" is not empty.
    </summary>
    </part></selectionFailure>
    I have noticed that this is a general message. I´ve tryed changing the parameter name, from test do glauco, for instance, which doesn´t exist, and the same message is returned. What am I doing wrong?
    Thanks
    Glauco

  • Dynamic Sequential List of Approvers in the Human Task

    Hi all - I have this asynchronous BPEL process and want to dynamically assign a Sequential List of Approvers that are the result of an Invoke of a Database Adapter.
    1. Added the OutputCollection of the Invoke as a parameter to the Human Task (element type).
    2. Under Assignment and Routing Policy, chose Sequential List of Approvers, and By Expression, chose the value from the OutputCollection from the payload.
    3. After deployment, the instance falls through to completion without errors, but without assigning a task to any approvers. I can see in the Invoke where it pulled the names I want to be assigned.
    Any help or direction would be greatly appreciated.
    Using JDeveloper 10.1.3.3

    I tried to recreate the problem like listed above, but after I add the Outputcollection of the Invoke as a parameter, there is no schema info (not even task:task) when editing the Assignment and Routing Policy section. At any rate, there weren't errors to speak of - the instance completed with "The state of this instance is Completed".
    In the meantime, I've used a while loop to loop through a sequence of approvers that are result of a query. I'll have to keep track of approvers and include them in each new payload I think.

Maybe you are looking for

  • Runtime Mapping step throws error

    Good Morning All, Recently we migrgated our XI server from Windows to Linux environment. after migration,We tried to test our interfaces, No Interface are working, XI is getting the messages,In Runtime Mapping step it failed every interfaces due to e

  • DB authentication for Reports 10g

    Hi Following is our environment Oracle Application Server 10g (10.1.2.3.0) - Infrastructure and Middle Tier on same node. Oracle Database 10g R2 (10.2.0.1.0) Current Situation We are running Forms/Reports 10g that were upgraded from 6i Client-Server

  • Compressor crashing on startup.

    hey everyone. am using Final cut studio 2 and seem to be getting a few issues getting compressor to work. It just fails to launch and gives the following error report; Process: Compressor [5962] Path: /Applications/Compressor.app/Contents/MacOS/Compr

  • Mac does not show startup volumes

    Hello, I've got a problem with my MBP! It's the latest model (Core i7) and I'm using it with an Intel X25-M G2 SSD (160GB). On a third partition of the SSD, I installed Windows 7. (a little gaming, a few win-only applications) Booting Windows (or fro

  • Systemd error when using separate /var partition

    I recently moved /var to a new partition and have noticed this error in journalctl log Dec 05 07:48:00 archlinux systemd[1]: Started Console System Shutdown Logging. Dec 05 07:48:00 archlinux systemd[1]: var.mount mount process exited, code=exited st