Throwing Business Exception from Human Task

Hi,
Can anyone point me to some examples, of how can I configure a Human Task to throw a business exception in a BPMN process ?
I want to provide th user with the ability of completing the task normaly, or launch a business exception like, cancel the order, or lack of stock.
I'm using Fusion 11g.
Thank You.
/RG

Hi
Thanks for the reply. But, I'm not sure I understood you correctly. What I want, is not to capture an exception after a human task, but to generate one in it. I want to add an error boundary event to a human task. The user can fill the form normally (for example a purchase order) and the normal flow continues or he can generate an exception (like cancel case, or lack of stock) that will be cought by the error boundary event.
What I want to know is how can I generate a business exception inside a human task? For example in the interface.
Is this the right way to do it ? Am I missing something ?

Similar Messages

  • Cannot use jstl tag for jsp page which generated from Human Task

    Hi
    Plz help me.
    I have tried to using jstl in jsp which generate from Human Task and I deploy it to server( by ant on Jdev ) to see task detail in Oracle Worklist application. But when i submit task and then I access to worklist to see task detail, the error has show in page that "OracleJSP: An error occurred. Consult your application/system administrator for support. Programmers should consider setting the init-param debug_mode to "true" to see the complete exception message. " .
    I access server to see application.log to see error and I see error show "workflowform: JspServlet: unable to dispatch to requested page: Exception:oracle.jsp.parse.JspParseException: /Header1.jsp: Line # 3, <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%> "
    How do I fix this error?
    PS. I tried to us jstl because I need to connet to database which jstl tag(sql) if somebody has another solution for connect database in task detail page, Please help suggest me.
    Thanks
    user520932

    Is the jstl tag libray loaded in the appsserver?
    Can you use jdbc connection like
    DataSource ds = ic.lookup("java:comp/env/jdbc/myDB");
    Connection con = ds.getConnection();
    DataSource ds = (DataSource) org.apache.derby.jdbc.ClientDataSource()
    ds.setPort(1521);
    ds.setHost("localhost");
    ds.setUser("APP")
    ds.setPassword("APP");
    Connection con = ds.getConnection();
    http://java.sun.com/docs/books/tutorial/jdbc/basics/connecting.html

  • Throwing an exception from XSLT

    Just wanted to share a finding with the Oracle XDB community and possibly suggest an enhancement to the xdb product development team (care of MDRAKE).
    I had a scenario where I wanted to throw an exception from the XSLT.
    A little Googling revealed this helpful post:
    http://weblogs.asp.net/george_v_reilly/archive/2006/03/01/439402.aspx
    ...so I gave it a shot.
    In my XSLT, I have a <xsl:choose> block with the following <xsl:otherwise> block:
    <xsl:otherwise>
        <xsl:message terminate="yes">Unknown Document Type</xsl:message>                          
    </xsl:otherwise>I used a stub test to run this through, giving it a file which would exercise the exception:
    select xmltype(bfilename('XML_RESOURCES', 'data.xml'),0).transform(xmltype(bfilename('XML_RESOURCES', 'sanitize_xml.dev.xsl'),0))
    from dual;..and to my 'joy', I did get an exception:
    ORA-30998: transformation error: execution of compiled XSLT on XML DOM failedHmm...would of been nicer to get something like what Eclipse/Xalan pops out:
    file:/H:/eclipse_indigo_workspace/XSLT/sanitize_xml.xsl; Line #28; Column #59; Unknown Document Type
    (Location of error unknown)Stylesheet directed termination...i.e. my custom error message "Unknown Document Type" isn't output by Oracle.
    Just to be safe, I tried a file which would NOT exercise this xsl:otherwise block and it did run through OK.
    So, could XDB report a better error?
    Thoughts?

    SQL> VAR XSL VARCHAR2(4000)
    SQL> --
    SQL> begin
      2    :XSL :=
      3  '<?xml version="1.0" encoding="UTF-8"?>
      4  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      5     <xsl:output method="xml" indent="yes"/>
      6     <xsl:template match="/">
      7             <Result>
      8                     <xsl:choose>
      9                             <xsl:when test="Input=''1''">
    10                                     <Output>1</Output>
    11                             </xsl:when>
    12                             <xsl:when test="Input=''2''">
    13                                     <xsl:message>The value is 2</xsl:message>
    14                                     <Output>2</Output>
    15                             </xsl:when>
    16                             <xsl:when test="Input=''3''">
    17                                     <xsl:message terminate="no">The value is 3</xsl:message>
    18                                     <Output>3</Output>
    19                             </xsl:when>
    20                             <xsl:otherwise>
    21                                     <xsl:message terminate="yes">Invalid value</xsl:message>
    22                                     <Output>Bad Input</Output>
    23                             </xsl:otherwise>
    24                     </xsl:choose>
    25             </Result>
    26     </xsl:template>
    27  </xsl:stylesheet>';
    28  end;
    29  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.00
    SQL> select XMLTRANSFORM(XMLTYPE('<Input>1</Input>'),XMLTYPE(:XSL))
      2    from dual
      3  /
    <?xml version="1.0" encoding="WINDOWS-1252"?>
    <Result>
      <Output>1</Output>
    </Re
    Elapsed: 00:00:00.01
    SQL> select XMLTRANSFORM(XMLTYPE('<Input>2</Input>'),XMLTYPE(:XSL))
      2    from dual
      3  /
    <?xml version="1.0" encoding="WINDOWS-1252"?>
    <Result>
      <Output>2</Output>
    </Re
    Elapsed: 00:00:00.00
    SQL> select XMLTRANSFORM(XMLTYPE('<Input>3</Input>'),XMLTYPE(:XSL))
      2    from dual
      3  /
    <?xml version="1.0" encoding="WINDOWS-1252"?>
    <Result>
      <Output>3</Output>
    </Re
    Elapsed: 00:00:00.01
    SQL> select XMLTRANSFORM(XMLTYPE('<Input>4</Input>'),XMLTYPE(:XSL))
      2    from dual
      3  /
    ERROR:
    ORA-30998: transformation error: execution of compiled XSLT on XML DOM failed
    no rows selected
    Elapsed: 00:00:00.01
    SQL>
    SQL>The actuall error is not unreasonalbe. The Execution did fail beacuse you terminated it.. Contacting Oralce Support may be a little excessive...
    Now with respect to message the question is where...
    We 'could' output into the same buffer as is used by DBMS_OUTPUT, but that has limits in terms of the amount of output that can be generated.
    We could write it to the trace file, but that may be difficulat for a developer to get to
    We could write it to a log file in the XDB repository, but where and how to name it...
    We could another parameter to XMLTransform, which would be a Message Buffer
    All of these are in effect enhancements..
    BTW I checked with XML Spy and they seem to ignore message too, so I'm wondering how widely used this is...
    We cannot add it to the output of the XSL since XMLTransform defines the output of the XML to be well formed XML, and adding a random set of text nodes would viloate that rule..

  • How to edit task form generated from human task (.jspx)???

    I created simple SOA application with simple Human task (from this tutorial http://redstack.wordpress.com/2010/01/08/human-workflow-in-11g/ but it doesnt matter) in JDeveloper. Then I generated standard form from human task (Human task -> Auto-Generate Task Form).
    The question is, how to make own form? Not the generated default, but with my own logic...That form is jspx, not jsp, and thats the main problem, in this JDeveloper everything is a bit complicated.
    I tried delete whole generated content, and just import my created file.jsp into jspx like below, but without result. How to import jsp into jspx? I dont want to completely rewrite my existing jsp into jspx and copy it over default...
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:trh="http://myfaces.apache.org/trinidad/html"
    xmlns:wf="http://xmlns.oracle.com/bpel/workflow/workflow-taglib.tld"
    xmlns:wlc="http://xmlns.oracle.com/bpel/workflow/worklist">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    *<jsp:directive.include file="file.jsp"/>*
    </jsp:root>
    Edited by: [email protected] on 8.6.2010 9:47
    Edited by: [email protected] on 8.6.2010 9:47
    Edited by: [email protected] on 8.6.2010 9:48

    Hi,
    Try
    FacesContext context = FacesContext.getCurrentInstance();
    NavigationHandler handler = context.getApplication().getNavigationHandler();
    handler.handleNavigation(context, null, outcome);
    context.renderResponse();Regards,
    ~ Simon

  • Is it possible to throw an exception from a handler chain with JAXWS???

    I know I cannot throw directly an exception from the handler cause my handler extends SOAPHandler and the method handlerMessage cannot throw exceptions. The problem is that I would like to validate some authorization and if the client doesn't have the appropriate rights, I would like to throw an exception from the handler without calling the web service itself, so the client would receive a valid soap response from the server. Is it possible?? Is there another mechanism that I can use to do that??
    Thanks a lot
    Korg

    You can throw a ProtocolException or RuntimeException from handleMessage().
    If you throw ProtocolException, HandleFault() is called on previously invoked handlers.
    If you throw a RuntimeException, handleFault() or handleMessage() is not called on previously invoked handlers, and the Exception is converted to Fault message and dispatched.

  • Is it possible to throw an exception from run method of a thread?

    Is it possible to throw an exception from "run method of a thread"(implemented as runnable implementation)?
    Is it advisable to do so?

    Is it possible to throw an exception from "run method
    of a thread"(implemented as runnable
    implementation)?Yes, an unchecked one. Runtime exceptions.
    Is it advisable to do so?If you mess up it happens automatically. But basically: no.

  • 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

  • Call web service from human task

    Hi All,
    I have a requirement to call webservice inside human task flow. I have three participant in my human task flow. Let suppose A, B and C. When A approves then task will be assigned to B and when B approves it will go for C.
    My requirement is that, when A approves , then i need to call one external webservice to update database. I did not get any option to call webservice inside human task flow.
    Please help.
    Regards,
    Sunil

    Thanks userN for your wonderful reply but i have one more question.
    As per your instructions i have enabled call back events in Human task flow. In this way i got while loop inside my BPEL. In onTaskAssigned operation i am now trying to call external web service. My requriment is to call external service and get data from service. After getting response from the webservice, i want to assign it to next participant.
    But in this case, when user B approves, it goes to onTaskAssigned block and i am able to make external web service also but mean time, it has been assigned to User C which i do not want.
    I want Human task flow to wait for the webservice response then only assign it to next participant.
    Please help, is there any option to do it.
    Regards,
    Sunil

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

  • Getting the name of the page that throws an exception from an error page

    How can I get the name of the page that throws an
    error exception from an error page?.
    Thanks.

    In each of your jsp pages, u should set the name of page in the request object. e.g.
    In jsp page called main.jsp you should do request.setAttribute("pageName","main.jsp");
    Then in error page you can get the name like
    String pageInError = (String) request.getAttribute("pageName");
    I hope that answers your question.
    thx

  • How to map payload from Human Task to BPEL

    Hi,
    I have created a human task form for which I send two parameters from the BPEL process.
    The user is able to update the fields containing the sent parameters and then click 'APPROVE' or 'REJECT'. However, I need the values of the updated fields to be returned and not the 'APPROVE' or 'REJECT strings.
    Can anybody help me with this?
    Alex

    Hi Alex,
    If you checked the Editable via worklistapp box then you dont need to update the values.
    These values automatically update the values of these parameters in human task if you properly mapped the values.
    Regards,
    Priyanka

  • Remove Actionable links from human task notification??

    Is posible to remove the link from the human task notification mail.
    Thanks...

    yes, if you recompile the *.jar and remove the setting "make notifications actionable" (you can find it in the human task definition)

  • Accessing output variables from human task

    Hi,
    I added a human task in my process (jdev 10.1.3) and set up a parameter to be an input field in the jsp. However, I could not find a way to copy the value from this particular variable even though this parameter is a child of payload. Do I have to define the query manually or did I miss something?
    Thank you for advice,
    Mirco

    Ok, I crosschecked the examples and it seems, that there is indeed an example for what I am looking for. In the LoanPlusDemo there is a StarLoan process and that contains the following assignment following a human task:
    <sequence id="BpSeq3" >
    <assign id="BpAss4" >
    <copy>
    <from variable="LoanApproval_globalVariable" part="payload" query="/task:task/task:payload/auto:loan"/>
    <to variable="loan" query="/auto:loan"/>
    </copy>
    </assign>
    </sequence>
    Now considering the input structure:
    <task>
    <title>Loan application for</title>
    <payload>
         <loan>
         <loanApplication>
    <ns1:SSN>123222</ns1:SSN>
    <ns1:email>[email protected]</ns1:email>
    <ns1:customerName/>
    <ns1:loanAmount/>
    <ns1:carModel/>
    <ns1:carYear/>
    <ns1:creditRating/>
    </loanApplication>

         <loanOffer>
    <providerName>Star Loan</providerName>
    <selected>false</selected>
    <approved>false</approved>
    <APR>47</APR>
    </loanOffer>
    </loan>
    </payload>
    How do you know how exactly to create the copy rules? JDev does not support this, that much was answered before. I would absolutely appreciate if someone could
    1. Tell me something about the namespaces in the copy rules e.g. why is it /auto:loan and not just /loan?
    2. An example on how to create such things.
    One of the two might be sufficient.
    Thank you.
    Hinrich
    Message was edited by:
    punkrock77

  • Handling business exceptions from DB adapter

    Hi,
    How to handle the business exceptions/faults raised from PL/SQL stored proc exposed via DB Adapter. From what I know there are two types of exceptions namely business exceptions which result into binding faults and runtime exceptions. The later are retriable exceptioons.
    So the scenario I am working with is a simple PL/SQL procedure which selects from a table and returns a value if found and raises an PL/SQL exception if select fails. I expect the second case to result in a binding fault and hence catchable in BPEL process or ESB as error topic.
    But when I try this I am always getting oracle.tip.esb.server.common.exceptions.BusinessEventRetriableException. More over as the name implies it's a retriable exception and it appears to me it's being re-tried by default before throughing this message. My question is shouldn't this be a business fault/binding exception?
    Am I doing something wrong here? What's the expected behavior for exceptions (buiness related) raised from DB adapter. I understand I can always catch these exceptions in PL/SQL and pass a relevation status OUT parameter. But I am trying to mimic a typical input/output or input/fault type of web service interfaction for PL/SQL procedure.
    Any help is greatly appreciated.
    Regards,
    Rajesh

    Just my 2 cents, but you're talking about the integration of DB Adapter and ESB and I think Marc is talking about Bpel and DB Adapter and these have different functionalities for eror-handling.
    In ESB a framework has been added to be able to retry exceptions that are 'retryable business exceptions', which gives the user the possibility to for example recompile the procedure/function and retry the transaction that was defined earlier.
    I think if you want to add custom exceptions you will need to extend the BusinessRetrievableException to your own custom exception handling.
    I think this is a possible enhancement question for the exception handling-architecture that has been created for usage in ESB. Maybe this can be added to the 'enhancement requests for ESB'-list ... if that exists?

  • Throwing Runtime Exceptions from BPM. How?

    Hi !
    I want to make appear a red flag in the SXMB_MONI as a result of a custom condition inside a BPM. I tried with the control step, but it makes no "red flag".
    Should I make a transform step between 2 dummy message types with a UDF that throws the runtime exception there?? is there another way ?? We want a red flag as a result of a expired deadline while waiting a file adapter transport acknowledgement.
    Thanks !!
    Matias.

    Matias,
    As you said before you want the BPM to be errored out if it reach the deadline, am I right. In control step if u say cancel process it equivalent to logically deleting the work items, so obviously you will get an succesfull message. What I suggest you to do is in  Deadline branch - control branch select throw exception. The exception name has to be defined in Block level. So if you throw an exception it will look for the exception branch in the same block level if not the higher(super)block level, if it couldn't find the exception branch it will run out to error. Actually the exception branch is used to catch that exception and continue the rest of the process, so i think there is no need for defining the exception branch itself.
    Hope it helps you!!!
    Best regards,
    raj.

Maybe you are looking for