BPEL task priority

In short can BPEL tasks be prioritised?
In long..
I have a system I am trying to model with several thousand tasks some of which need to be processed in 10 seconds and some of which need to be processed in 10 hours.
I see that I can set the priority of tasks using some Java enbedded code and possibly this is the only way to do it. Have I missed anything? Is there any documentation or a blog or something which explains more about how the setPriority method affects the BPEL process queue?
I have also seen that there is a 'due' column on the activities tab of the BPEL console, can that be set somehow?
Many Thanks,
Chris

Can you just clarify what you mean by tasks. Is it a BPEL process, or is it a human task, or is it a partner link call.
If it is the latter then you can use pick and functionality with in human task.
If you want to ensure that the high priority services get attention in load, this can be done very eaily in OSB. If you have SOA Suite licenses then OSB is part of that license.
cheers
James

Similar Messages

  • Task Priority in Process Routes

    Gurus,
    I would like to make changes to  the Task Priority showing Process Route tab.Is there a BADI available for making this change? or can it be accomplished through configuration.
    Attached is the screenshot for reference.
    Kindly advice
    Thanks & Regards
    Jo Pz

    Hi Samuli,
    By changes I mean if I want to reduce the number of Task priorities listed from 1-9 or change the description of the priorities from "Medium" to Moderate.
    I want to show only 3-5 Task priorities.
    Hope I made it clear.
    Thanks & Regards
    Jo

  • How can we modify the Task Priority in BPM workspace???

    How can we modify the Task Priority in BPM workspace??? Is it possible?? If so what is the best and easy way to implement this??

    Hi Chandra,
    First please find the job name in SM37 for FIGL and check the job status to be in "released" status. Select that job and go to job menu and click on change. then it will take you to the job screen where you have "job class". Here you can change the job class to "A" to get to high priority.
    If you are unable to edit the job then create a new job with the same variants by clicking STEP button in the Job screen.
    Try these steps, let me know if are able to do so.
    Regards,
    Ravi Kanth

  • ADF-SOA integration getting class cast exception when creating a BPEL task

    Hi,
    We are creating a BPEL task programmatically using below code snippet
    IInitiateTaskResponse tResponse = iTask.initiateTask(task);
    when initiateTask() is called i keep getting below exception.
    oracle.bpel.services.workflow.task.ejb.TaskServiceBean_399vcw_HomeImpl_1036_WLStub cannot be cast to oracle.bpel.services.workflow.task.ejb.TaskServiceRemoteHome.
    Sometime restarting the servers(soa and wls) solves the issue but most of the time i get above exception. I have a integrated WLS server and a remote SOA server. i have done necessary JNDI configuration in my integrated server and global trust is created betwen both the servers.
    Any pointers will help us in our development which is stuck because of this issue.

    Mozakkir,
    My name is Phil DeLaine and I work for one of Oracle's Gold Partners, TechDemocracy.
    I saw your post about the SOA/BPEL integration issue.
    Given the potential complexity of your situation, would it make sense to use one of our SOA experts to solve the problem and deliver your project?
    Please let me know how we can help. You can reach out to me anytime.
    Regards,
    Phil
    Phil DeLaine
    Sales Director
    TechDemocracy
    (978) 758-3156 (Cell)
    [email protected]
    http://www.techdemocracy.com/
    Our Successes:
    1) We won the 2011 Oracle Titan Award for the Best Middleware Implementation. Our award winning solutions included SOA, IAM and BI.
    2) We have been awarded with the highly prestigious Oracle ACE Director status for outstanding industry achievement and track record.
    3) We sit on several Advisory Boards for Oracle Product Management (for Fusion Middleware Products).
    4) We are an Oracle Center of Excellence Partner for SOA and IAM.
    5) We are frequently invited to speak at a number of Oracle Customer Success forums such as Oracle's "OpenWorld".
    6) We have been rated by Inc. Magazine as one of the top 10 fastest growing companies for 3 consecutive years.
    7) We have won and successfully deliveried several projects at Fortune 100, 500 and 1,000 companies. (References Available)

  • How to change task priority?

    How to change task priority? Task has been created and user claim it. TaskManager do not have method to change priority

    That is exactly how I did it. I did have a space after the 10, and I dragged the application to the terminal window, and it responded with the "Not found" error message.
    I will try the renice when I get home tonight. At work I am using Windows 2000 and Lotus notes (AAAArrrrgh!). I also support 4 PDP-11s and 6 antique VAX systems and an old Stratus.
    I have renamed the title of my position to "Paleocybernetic Systems Administrator".

  • Invoking BPEL Task Apis - Recommended approach

    Hi all,
    I am trying to invoke BPEL Task webservice APIs and am referring to this link . I have a few queries in this regard.
    1. Workflow Service Clients - Best approach - It appears that there are many approaches to get a workflow service client and am confused which to proceed with.
    i. wf_client_config.xml & use getWorkflowServiceClient to get the client
    ii. Using a JAXB Object
    iii. Using a Map
    2. If I am to invoke the webservice, what are the setups required at my client end to invoke the webservice?
    Thanks,
    Srini

    I added the jar files and I don;t get the exception anymore. I am able to login in as weblogic and the application works fine. When I login in as anyother user I get this error. Where is this pc.properties?
    Warning: Could not locate file pc.properties in classpath
    ORABPEL-30501
    Error in authenticating user.
    Error in authenticating and creating a workflow context for user jazn.com/pat.
    Verify that the user credentials and identity service configurations are correct.
    Thanks
    Saru

  • Task priority and background properties...

    Is it possible to set a task priority, as we can with System.Threading.Threads?
    What about the background concept of a thread (IsBackground property)?

    Yesterday I talked to a collegue that has a specific use for task priorities.
    He has a service that perform tasks that come in at a fairly high rate. He lets the ThreadPool to manage when things get executed. This worked fine in the beginning.
    Then users started complaining that the system was too slow. The problem is that user submitted work is added to the ThreadPool along with "system" tasks. He needed a way to indicate the user submitted work takes priority over all other tasks.
    His solution was to fix the max thread count of the pool to 1 less than the number of processors and to process user tasks on a seperate thread. His thinking is that user tasks are guaranteed to have a waiting processor to do the work.
    Although this solved the problem most of the time it did create two new problems: 1. all other tasks have fewer threads to do thier work...so they are slower. 2. user submitted tasks are essentially convoyed to a single thread. they block each other.
    I think his solution is a bit wacky. The question is: can Parallel Extentions deal with this better?

  • How to set dynamicaly the task-priority in a Process?

    Hello all,
    Once again with a question: Exists any way for set dynamicaly the priority in a human task?
    Because, we need to change this task attribute in runtime
    Thanks in advance again!

    Even in 7.3, I think you can achieve this only via API.
    There is no expression editor for priority

  • Query to grouping on task priority for each employee

    Hi All,
    We have following table structure for employee, task & taskallocation.
    CREATE TABLE EMP
       (     "EMP_ID" NUMBER(10,0) NOT NULL ENABLE,
              "FNAME"     NVARCHAR2(50) NOT NULL ENABLE,
              "LNAME"     NVARCHAR2(50) NOT NULL ENABLE
    CREATE TABLE TASKS
       (     "TASK_ID" NUMBER(10,0) NOT NULL ENABLE,
              "TASK_PRIORITY" NVARCHAR2(10) NOT NULL ENABLE          
    CREATE TABLE TASKSALLOCATION
       (     "TASKALLOCATION_ID" NUMBER(10,0) NOT NULL ENABLE,
              "EMP_ID" NUMBER(10,0) NOT NULL ENABLE,
              "TASK_ID" NUMBER(10,0) NOT NULL ENABLE
       The data for the same will be as follows
    Insert into EMP (EMP_ID,FNAME,LNAME) values (1,'XYZ','DFD');
    Insert into EMP (EMP_ID,FNAME,LNAME) values (2,'DFDS','FD');
    Insert into EMP (EMP_ID,FNAME,LNAME) values (3,'FDSF','GFH');
    Insert into EMP (EMP_ID,FNAME,LNAME) values (6,'GFHGF','GFHS');
    Insert into EMP (EMP_ID,FNAME,LNAME) values (4,'GFD','FDG');
    Insert into EMP (EMP_ID,FNAME,LNAME) values (5,'DSFDS','FDSAF');
    Insert into EMP (EMP_ID,FNAME,LNAME) values (7,'GHGY','EWE');
    Insert into EMP (EMP_ID,FNAME,LNAME) values (8,'FGRFSAD','SADF');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (1,'HIGH');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (2,'MEDIUM');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (3,'LOW');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (4,'HIGH');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (5,'MEDIUM');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (6,'LOW');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (7,'HIGH');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (8,'MEDIUM');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (9,'LOW');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (10,'HIGH');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (11,'MEDIUM');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (12,'LOW');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (13,'HIGH');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (14,'MEDIUM');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (15,'LOW');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (16,'HIGH');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (17,'MEDIUM');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (18,'LOW');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (19,'HIGH');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (20,'MEDIUM');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (21,'LOW');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (22,'HIGH');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (23,'MEDIUM');
    Insert into TASKS (TASK_ID,TASK_PRIORITY) values (24,'LOW');
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (1,1,1);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (2,2,1);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (3,3,2);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (4,3,3);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (5,4,4);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (6,4,5);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (7,4,6);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (8,4,7);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (9,5,6);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (10,6,8);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (11,7,9);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (12,8,8);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (13,8,10);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (14,8,11);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (15,8,12);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (16,6,13);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (17,5,14);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (18,3,12);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (19,3,13);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (20,2,15);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (21,1,16);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (22,2,17);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (23,1,18);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (24,4,19);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (25,6,20);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (26,5,21);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (27,1,22);
    Insert into TASKSALLOCATION (TASKALLOCATION_ID,EMP_ID,TASK_ID) values (28,3,23);
    COMMIT;And we are looking count of tasks based grouping on it's priority per employee. Something like this,
    Resultset
    with
        t as
              select     'XYZ DFD' as EMP_NAME,     3 as HIGH ,     0 as MEDIUM,     1 as LOW FROM dual union all
              select     'DFDS FD'     ,     1     ,     1     ,     1     FROM dual union all
              select     'FDSF GFH'     ,     1     ,     2     ,     2     FROM dual union all
              select     'GFHGF GFHS'     ,     3     ,     1     ,     1     FROM dual union all
              select     'GFD FDG'     ,     0     ,     1     ,     2     FROM dual union all
              select     'DSFDS FDSAF'     ,     1     ,     2     ,     0     FROM dual union all
              select     'GHGY EWE'     ,     0     ,     0     ,     1     FROM dual union all
              select     'FGRFSAD SADF'     ,     1     ,     2     ,     1     FROM dual)Note : We are using Oracle 11.2.0.2.0 version

    Hi,
    select emp.fname || ' ' || emp.lname EMP_NAME
         , sum(case when tasks.TASK_PRIORITY = 'HIGH' then 1 else 0 end) HIGH
         , sum(case when tasks.TASK_PRIORITY = 'MEDIUM' then 1 else 0 end) MEDIUM
         , sum(case when tasks.TASK_PRIORITY = 'LOW' then 1 else 0 end) LOW
      from emp
      join TASKSALLOCATION
        on emp.EMP_ID = TASKSALLOCATION.EMP_ID
      join TASKS
        on TASKSALLOCATION.TASK_ID = tasks.TASK_ID
    group by emp.fname || ' ' || emp.lname
    EMP_NAME                   HIGH     MEDIUM        LOW
    FGRFSAD SADF                  1          2          1
    XYZ DFD                       3          0          1
    GHGY EWE                      0          0          1
    GFHGF GFHS                    1          2          0
    GFD FDG                       3          1          1
    DFDS FD                       1          1          1
    FDSF GFH                      1          2          2
    DSFDS FDSAF                   0          1          2Regards
    Martin Preiss

  • LabView task priority and concurrent tasks on Win2K

    When doing some number crunching with LabVIEW, my program is
    using all CPU time on my Win2K desktop. Even when I have some
    other programs running in the background (like setiathome...)
    with the same taskpriority as LabVIEW, LabVIEW is using all the
    CPU time for its calculations. Normally it should share the
    CPU with all other tasks of the same priority, as I understand
    the task scheduling of Windows. Why doesn't work LabVIEW this way?

    > When doing some number crunching with LabVIEW, my program is
    > using all CPU time on my Win2K desktop. Even when I have some
    > other programs running in the background (like setiathome...)
    > with the same taskpriority as LabVIEW, LabVIEW is using all the
    > CPU time for its calculations. Normally it should share the
    > CPU with all other tasks of the same priority, as I understand
    > the task scheduling of Windows. Why doesn't work LabVIEW this way?
    LV does work that way. By default the execution takes place in threads
    that are the same priority as the LV process. If the LV process is
    lowered in priority, so are its threads, and vice versa. It is possible
    to set LV threads to be a few priority marks above or below this, so one
    thing to check is to see wh
    at the priority of the VI is set to.
    Also, Seti may always decide to execute in threads that are a lower
    priority than its process. It is possible to set process priorities to
    try and better balance these out, if that is your goal.
    Greg McKaskle

  • BPEL Task Object

    Using the BPEL Worklist API, how do I retrieve a Task's type (i.e., the Task is an Assignment, Group Vote, Single Approver, etc.)?
    I'm unable to find a method in oracle.bpel.services.workflow.task.mode.TaskType that provides me this.
    Also, is oracle.bpel.services.workflow.task.model.Task.getSystemAttributes().getAssigneeUsers() the only available method to get users assigned to a task? Is there any other mechanism?
    Any help is greatly appreciated!
    Thanks!!

    Do you mean the value stored in WFTASK.TASKDEFINITIONNAME ?
    That is what we use as "Task Type"
    We access it by .getSystemAttributes().getTaskDefinitionName(); off the oracle.bpel.services.workflow.task.model.Task object.
    I'm not sure if there is another way to get the assignee users, as the way you mentioned is the way we get them too.

  • BPEL Task Type

    Using the BPEL Worklist API, how do I retrieve a Task's type (i.e., the Task is an Assignment, Group Vote, Single Approver, etc.)?
    I'm unable to find a method in oracle.bpel.services.workflow.task.mode.TaskType that provides me this.
    Any help is greatly appreciated!
    Thanks!

    Hi,
    We worked on the base tables there you can find them.
    --Khaleel                                                                                                                                                                                       

  • Update Short History in BPEL Task Form / Worklist

    Hi all,
    I'm currently facing a problem and hopefully to get some idea or solutions from here. It is about how to update the task:shortHistory. The reason to do this is due to I have to manually update the track history / short history in the task form from BPEL.
    Currently while I tried to update the shortHistory(in one of the human task), it keeps throw me the error with some kind of zero node in the task:shortHistory. Just right before I assign or append the task:shortHistory, I did copy the global human task variable to the update task variable, so it should carry forward the existing shortHistory.
    Below is the error from BPEL console:
    <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 "493" and verify the &lt;to&gt; part xpath query.
    </summary>
    </part>
    </selectionFailure>
    the <to> part query should be the task:shortHistory node, please help if you have any idea on this.
    Thanks.
    Jyno
    Edited by: loneboy62 on Nov 11, 2009 10:28 PM

    Make sure that your result varaible is al ready 'prepared'. It can not assign, because the variable does not coantins this element (only in the definition).
    Solution 1: use the assign XML fragment to add this element in your variable.
    Solution 2: Use a stylesheet to to create this 'empty' element.
    Marc
    http://orasoa.blogspot.com

  • 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

  • OTBI reporting on BPEL human workflow tasks

    Hi,
    Is it feasible to do OTBI reporting on BPEL tasks associated to application objects? I was searching around and could find no relevant material.
    Thanks,
    Srini

    Learnt OTBI cannot report on BPEL tasks.

Maybe you are looking for

  • If condition in SAP Script

    Hi, I have written a condition in the text elements like below. IF &EKPO-NETWR& GT '300' Print some text. ELSE Print other text. ENDIF But its not working.If i put EQ or NE,its working fine.But if i put GT,GE,LT,LE or >,< ,its not working. Suggest if

  • Why i cannot turn my display after upgrading to iOS 8.0

    after upgrading my iPad to ios 8.0 the picture in the picture in the display is fixed when i turn the iPad . i need a fix to this .

  • Why can't i get on icloud?

    My icloud is not working. Is this happening to anyone else? I cannot get into my email.

  • INDESIGN PDF TEXT QUALITY

    I have been using Indesign for quite a while but I have noticed recently that when I export an Indesign document to a PDF the quality of Just the Text is really poor. I have been messing around with the Transparency Blend Space, but have made sure th

  • PS Elements 12 editor issue

    I have PS Elements 12 on my Macbook Pro OS X 10.9.4 . I can't figure out why importing photos from either iPhoto OR PS Elements to editor sometimes works fine, and then it starts to import my photos as TINY thumbnails. Is it something I am doing?? Af