Human Task expiration expression

I am trying to generate the expiration duration dynamically. I am using the following expression in the task definition.
concat("P1DT", number(23-xp20:hours-from-dateTime(xp20:current-dateTime())), "H", number(59-xp20:minutes-from-dateTime(xp20:current-dateTime())), "M", number(59-xp20:seconds-from-dateTime(xp20:current-dateTime())), "S")
but somehow task always gets ERRORED. I don't know what am I doing wrong because there is no exception in the BPEL logs. I get the following error in the console.
*<priority>5</priority>*
*<identityContext>jazn.com</identityContext>*
*<userComment/>*
-<userComment>
*<comment>The expiration specified in the task metadata could not be evaluated. The error is Missing 'P' delimiter</comment>*
-<updatedBy>
*<id>bpeladmin</id>*
*</updatedBy>*
*<updatedDate>2009-09-24T10:56:28.373-04:00</updatedDate>*
*</userComment>*
*<attachment/>*
Is there a restriction on how we can specify the expression?
I am using 10.1.3.5(as/jdev)

I have tried with MLR Patch # 8372150, but no luck. I have found a similar thread on this forum who has the same issue.
quartz based workflow times are not initializing
If this might be the problem, how do we fix the following error message.
*<::> Unable to get the workflow timers during startup, this can happen if orabpel server is not started properly*

Similar Messages

  • Human Task expiration after server restart

    I am having serious problems related to BPEL human task expiration in SOA 11g. If my server is down or if I restart my server and any human task has its expiration during this server downtime, then this human task never exprires. What I want is that any human task should get expired at its expiration date-time irrespective of server state. Please help.

    I am having serious problems related to BPEL human task expiration in SOA 11g. If my server is down or if I restart my server and any human task has its expiration during this server downtime, then this human task never exprires. What I want is that any human task should get expired at its expiration date-time irrespective of server state. Please help.

  • Human Task – Using expressions in task parameters

    Hi All,
    In my BPEL process I have a Human Task with about 15 task parameters. I'm trying to define BPEL variables to each and every parameter. I am able to select a type 'variable' variable (ie. /ns18:OutputParameters/ns18:street_name) from tree view and save.
    However, whenever I click on the little flash-light icon and create a type 'expression' using the XPath expression builder I'm having problems saving the change.
    In details this is what happens,
    0.) Double click on Human Task
    1.) Click on flash-light icon in front of a parameter.
    2.) Select Type expression variable.
    3.) Click XPath expression builder.
    4.) Select conversion function 'string()' and double click to add.
    5.) Double click on the required BPEL variable to add.
    6.) Something similar to the following expression is created,
    string(bpws:getVariableData('InvokeGetAllABCInformation_FetchABCInformationService_OutputVariable','OutputParameters','/ns18:OutputParameters/ns18:ACC_ID'))
    7.) Click OK twice and then Apply/OK to go back to BPEL diagram view.
    8.) Now at this point the BPEL is not saved and the tab-title is italic to show it’s unsaved.
    9.) Save the BPEL to disk.
    10.) Double click on the Human Task to show parameters and variables defined.
    11.) The previously defined expression type variable is still there.
    12.) However now if I click either 'Apply' of 'OK' buttons without making any changes the BPEL diagram tab-title becomes italic and when the BPEL is saved to the disk, it forgets about all the expression type variables that was previously defined. Also note that cancelling wouldn't change anything.
    This is a serious issue as I can't change any setting to a Human Task parameter list, as every time I make a change, I loose all the expression type variable declarations.
    Could this be a bug in JDeveloper?
    My JDeveloper Studio Edition Version is: 10.1.3.3.0.4157
    Any help on this would be greatly appreciated.
    Thanks.
    Shaminda.

    ok, looks like no one knows what's going on,
    Here's the workaround that I came up with, If anyone is interested.
    Create a custom XSD (schema) with required variables in it (to be used by expression types vars), and use a copy operation before the human task and create the expression types in there. Then use the schema to map the values to the human task.

  • Human Task expiration issue

    Hi,
    I have the following scenario.
    Its a simple BPEL process with string input and string output with a call to Human Task.
    the Human Task has the expiration duration of 5 mins.
    I invoke the process from bpel console and as expected it waits for the human task to respond or expire. during this waiting time I happen to restart the soa server. The server was restarted before the expiration time but still the task did not expire.
    Task still stays with the user assigned and the process is still waiting for the response from the task(which is already passed expire time).
    I am using SOA Suite *10.1.3.4* with a patch set *7714967* applied on top of it.
    I have tried to set the startup recovery also but no help.
    If some body can give me the solution. that would be great.

    I have tried with MLR Patch # 8372150, but no luck. I have found a similar thread on this forum who has the same issue.
    quartz based workflow times are not initializing
    If this might be the problem, how do we fix the following error message.
    *<::> Unable to get the workflow timers during startup, this can happen if orabpel server is not started properly*

  • Human Task expiration

    Setting the 'Fixed Duration' under 'Expiration and Escalation Policy' of a Human Task does not seem to work. Am I missing something? Where do I set the ExpirationDuration or ExpirationDate for a Human Task?
    Thank you!

    Works ok for me.
    Created dummy bpel with dummy task in it.
    On task creation i added fixed expiration of about 5 mins.
    Start process, and wait 5 mins, and the process continues to completion.
    In the audit trail of the task you will see something like
    <state>EXPIRED</state>

  • Human Task expiration containing Task History from another Human Task

    Hi All,
    Let me explain you my complete workflow in brief.
    I have 8 Human Tasks and all are sharing Task history. My each individual Human task are in Scope activity. In my payload I have a variable "strExpiryDuration" and I am setting its value in an Assign activity before my last human task. I have assigned this variable "strExpiryDuration" in the expiry duration of my last human task definition. For the reference I am giving the value as "*P0DT1M*". But it is not expiring my last human task at all. I doubt it may be because task history which I am sharing in my human tasks is overwriting the payload values and thats why the value of strExpiryDuration is not setting up in task definition.
    I checked by assigning the same variable strExpiryDuration to some other value ("*P3DT1M*") and assigning it to my first human task definition. In this case, whenever the workflow is assigned to my last human task it is also showing Expiry date as of after 3 days. What is the issue here? Please help.
    Regards,
    Murtaza
    Email:
    murtaza.ghodawala @ alshaya.com
    Edited by: user8977605 on Apr 21, 2011 6:48 AM

    I have found the solution to this generic problem. Whenever you have a human task sharing task history in your workflow, you need to ensure that the changed/modified payload value is assigned to the human tasks properly. In most of the cases, Task history sharing Human Task will override the payload values with the payload values of the previously executed human task in the workflow.
    For that the fix is as below:
    1. Expand the Human Task.
    2. In the Assign activity, write a copy operation in which copy the changed individual payload variable to the payload variable of the Human task whose task history we are sharing.
    For e.g.
    <copy>
    <from variable="inputVariable"
    part="payload"
    query="/client:TravelRequestProcessRequest/client:ExpiryDays"/>
    <to variable="ApprovalsTask_1_globalVariable"
    part="payload"
    query="/task:task/task:payload//client:TravelRequestProcessRequest/client:ExpiryDays"/>
    </copy>
    3. Make this copy operation as the first operation in the Assign Activity.
    I hope this solution will help you to resolve your issues.
    Regards,
    Murtaza Ghodawala
    Email:
    [email protected]
    Edited by: user8977605 on Apr 24, 2011 12:53 AM

  • Human Task Expires Though Task Duration Never Expires in DeadLines Level

    Human Task is expires thogh task Duration Never Expires in DeadLines level
    1)I have Created a Human Task
    2) I am assigning task based on User Input ( If User proivdes BPM ) task will will assigned to 'BPM' Group
    3) In Assignment Advanced leve i have set Limit allocated duration to 5 Min
    4) Dead Line Level I have set Task never Expires
    5) I have created Task , Task is assigned to 'BPM' Group
    6) 'BPMUser1' Acquired task
    7) After few min task get released automatically
    8) Task Expires after 5 Min

    ...and if I only send an email in the "When a Task Expires" step, the "When
    a Task Expires" will get called again and again to remind the original approver.  However, when I reassign the task the When
    a Task Expires"  will never get called again.   stumped.

  • Problem in setting dynamic expiration duration from Human Task

    Hi,
    I have a BPEL process, in which the Human task expiration has to be set dynamically..
    In the , I have set the expiration duration with this :-
    <copy>
    <from expression="xp20:format-dateTime(xp20:current-dateTime(),'PT1M')"/>
    <to variable="initiateTaskInput" part="payload"
    query="/taskservice:initiateTask/task:task/task:systemAttributes/task:expirationDuration"/>
    </copy>
    Do not get confused with 'PT1M' .. I want the duration to be 1 minute... Had I used 'PT1M' as a String and assign to the expirationDuration var, it would have caused an error... It needs to be fromatted as a Date..That's y i took this approach ... I am sure this is working fine as I have checked the payload of the task..
    It has a proper duration..
    <initiateTaskInput><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload"><initiateTask xmlns="http://xmlns.oracle.com/bpel/workflow/taskService">
    <task xmlns="http://xmlns.oracle.com/bpel/workflow/task">
    <systemAttributes>
    <expirationDuration>PT1M</expirationDuration>
    Now in the Human task definition(.task file), I have set the expiration duration with "By Expression" option in this way..
    <globalConfiguration>
    <owner>oc4jadmin</owner>
    <expirationDuration duration="/task:task/task:systemAttributes/task:expirationDuration"
    type="XPATH"/>
    </globalConfiguration>
    The problem is the task(at runtime) cannot evaluate the expirationDuration from the XPATH..
    I checked with the WF_TASK table in the orabpel schema ...
    When I use a static duration EXPIRATIONDURATION cloumn gets assigned properly (ie PT1M).. But when i take the XPATH approach, it translates to PT0S.
    Can someone look into this please ?
    Struggling with this for quite sometime...
    saptarishi

    If the Human Task shows status complete, then it's possible that there was an error in the output data association in the process. In EM do you see a fault on the output for the Human Task activity, or if PS4FP the process will go to suspended state if the data association fails.

  • Human Task - How to cause expiration of a task after SUSPEND

    Hello,
    This is a very simple question, but i don't know how to do this.
    I'm using the web services in bpel for manipulate the task.
    i invoke the operation suspendTask, it works success, but now i want set the expiration date time for 5 minutes for example.
    1) - I tried to call the method updateTask setting the expiration datetime attribute AFTER SUSPEND task, but i get this error:
    ORABPEL-10206
    Error in retrieving task metadata.
    Error in retrieving task metadata because the task is  no longer valid.
    Only valid tasks can by looked up.
    2) If i try to call updateTask operation BEFORE SUSPEND task, i getting this error:
    java.sql.SQLException: ORA-20005: Task is modified
    ORA-06512: at "CCEEDEV_SOAINFRA.WFTASKPKG_111120", line 2455
    ORA-20005:
    ORA-06512: at line 1
    My question, it is possible expirate tasks that have the status SUSPEND ? If yes, how to do this ?
    Thanks
    Victor Jabur
    Edited by: victorjabur on Aug 13, 2010 7:21 AM

    Hi Victor,
    I am Quite new to Oralce BPM/BPEL 11g, In my project I also need to update the task for expiration datetime but not after suspending the task rather before moving to next human task based on some condition.
    It would be great if you could give me the sample code to perform the same if its working with you.
    Regards,
    PK

  • Human task notification after due date/expiration date/...

    I would like to set a due date (or expiration date) to Human task, and set some notification before this time. Ok, it seemed very easy:
    - i set due date to 5 minutes in human task -> Deadlines
    - i set notifications in human task -> notification and in tab Advanced i set remind once 2 minutes before due date
    Nothing happens. Exactly same (nothing) happens when i do the same with expiration date.
    But what exactly is meaned under word "Reminder"?
    It's mail? (then where I have to set email adress? I tried to set a "to" field in human task -> notification -> tab Advanced -> notif. header attributes => nothing happened)
    It's worklist inbox message?
    Or what ist "reminder" and how it should remind me?
    Edited by: user1175491 on Dec 28, 2010 7:21 PM

    Hi,
    I don’t know if you’ve managed to resolve this issue yet and you mention you have emails working from BPEL, but I'm not sure if you've got any notifications working for the Human Task, if not then I have done some work with the human task notifications and although I’ve not tried to do what you’re doing, this is what I have learned.
    Firstly to receive any notifications you need to configure the Messaging Driver and Workflow Notification Properties…
    In Enterprise Manager expand [farm] -> SOA -> soa-infra
    Right click soa-infra and choose SOA Administration -> Workflow Notification Properties
    Underneath the page title (Workflow Notification Properties) is a note telling you to configure the Messaging Service Driver. Click the "Go to the Messaging Driver page" link.
    In the associated drivers section you will have a single entry for soa_server1 (or what ever it's called for you). In the right hand column there is a button for configuring the driver, click this.
    In the driver specific configuration, scroll down to OutgoingMailServer and enter the hostname or IP address of your mail server, then click Apply at the top of the screen.
    Now go back to the Workflow Notification Properties screen and choose “Email” from the notification Mode and enter some sensible email addresses in the Notification Service section. It’s useful to have real email addresses in here at the moment because any failures will be returned to this address.
    You now need to restart Weblogic for these changes to take affect.
    After the restart you can test the notifications by doing the following
    Back in Enterprise Manager expand [farm] -> SOA -> soa-infra
    Right click soa-infra and choose Service Engines -> Human Workflow
    Click on the Notification Management tab.
    You can click the "Sent Test Notification" button to make sure everything is working ok. This screen also allows you to monitor notifications for failures.
    Now that the notifications have been set up you can configure who gets notified on which events against your human task in JDeveloper.
    The email addresses for the users are retrieved from your identify provider for the relevant user, by default this is the internal LDAP directory. I’m not using this, so I’m not sure exactly how this will work. There are options in the worklist application for individual users, but I’m not using this either.
    Now that this is set up you can configure the human task within JDeveloper. On the notification tab you can decide who gets notified when. By default when a task is assigned to a user, the assignees are notified, you can play about with these settings to see what works best for you. Have a look at http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/bp_workflow.htm#BABBHDGF for more information.
    I’m not sure I’ve solved your problem, but I hope this at least helps.

  • Human task expression builder (10.1.3.1 GA)

    When I open up the Expression builder while inside the humanTask builder/editer/whatchamacallit I cannot see any BPEL variables. The Title displayed in the Expression builder is schema (vs the BPEL variables I see elsewhere). This gives me access to Task variables which isn't what I want. I want access to BPEL variables to use my dynamic expressions.
    In addition to the above the expression builder is essentially broken within the humanTask. <Control><space> doesn't work properly.
    This has behaved the same in both the developer preview and GA versions. Tell me that this some stupid configuration parameter that I've got fouled up. I can't deal with it as I'm currently experiencing.

    The Expression editor inside of the Human Task editor does not show the BPEL variables as the XPath expressions are not evaluated from the context of a BPEL instance, but are executed in the context of the Human Task instance. This is not a bug.
    In order to refer to BPEL variables, one can use input parameters (as noted by John above). You can also map the output parameters from the task to BPEL variables - once the Human Task activity completes.
    Please refer to section 15.6.5.2.1 of Oracle® BPEL Process Manager Developer's Guide for details.
    Best Regards,
    Sidda

  • Skipping weekends while setting the expiration duration in Human task

    Hi,
    I need the task to expire after 5 days.
    If I give a 'Fixed Duration' of 5 days, that would mean weekends are included as well.
    How can I avoid this?
    Any help will be greatly appreciated.
    Thanks,
    Vivek

    Hi Bill,
    Thanks for the reply.
    I have done the the first part of what you suggested, namely:
    - Created a calendar called QCalendar (Monday to Friday, 8 hours)
    - Created a Organizational Unit called QUnit and associated the QCalendar with it.
    - Added a group called QGroup to the Org Unit
    - Created a task with one stage, and assignee as QGroup. Task Expiration is set at 10 days. 'UseBusinessCalendar' attribute is set to true.
    This does not work. Weekends are still considered.
    I felt I was missing something, and I believe that is what you mention when you say - 'Here's where I'm not entirely certain about this... I believe you will have to map the name of the org unit into the task payload using an association.'
    Can you please elaborate on that part?
    Thanks again,
    Vivek

  • 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

  • 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.

  • Deadline of Human task

    hello ,
    I follow the API using the XPath in deadline of Humantask:
    xp20:add-dayTimeDuration-to-dateTime(xp20:current-dateTime(),concat('PT',string(/task:task/task:payload/ns1:Task/ns1:expiryDay),'D'))
    it means the duration will be base on the days number input from client (/task:task/task:payload/ns1:Task/ns1:expiryDay)
    but after deploy on server the test get error:
    Error in routing slip. The expiration specified in the routing slip could not be evaluated. The error is java.lang.IllegalArgumentException: . The routing slip is associated with the task definition default/Sample!1.0*soa_24a7ee84-c5f5-4332-8c74-4ca463d384ff/Audit. Make sure that the expiration duration is specified correctly. The value should conform to XML duration specifications.
    how can i solve it. thanks very much.
    Regards,
    Tang
    Edited by: 901572 on Dec 16, 2011 12:23 AM

    Human Tasks have "Escalate After " feature built-in. In the human task editor, you can specify the escalation time (either fixed or as variable -based on an expression) in the "Expiration and Escalation Policy" section. Refer to : http://download-west.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/workflow.htm#BABDDIAJ
    You can then use one of the callback from the Human Task to update the task's priority or assign it to different users.
    Hope that helps.
    Regards,
    Sidda.

Maybe you are looking for