Advance Rules for routing in Oracle BPM Human Task

Hi,
I am working on SOA 11.1.1.5.0. I have created a sample SOA application with a Human Task.
following are the Assignment details for my Human Task.
1. Created a stage1
2. Created a participant with following details
Type = Single
Build a list of participant using : ApproverGroup
Specify attribute using : Rule-Based
List Ruleset : SampleRuleset
I have created some Advance Rules for routing as specified at http://www.orastudy.com/oradoc/selfstu/fusion/integration.1111/e10224/bp_hwfmodel.htm#BABGJGBD .Routing is perfectly working in my application.
But when I login into WorklitApplication via weblogic user and accessed Administration link, under Task Configuration > Data Driven tab these Routing Rules are not appearing, however I can see this SampleRuleset there.
I want to know whether these Routing Rules will be appeared in the WorklistApplication or not?
regards,

Hi,
Concerning your first question the answer is yes, you can share the same UI with various Human Tasks. Assuming that your discriminator flag is the human task type, then you can create for example a taskflow parameter, pass this value and based on this value hide and show fields. You will have to bundle your UI project as an ADF shared library and attach it to each Human Task project that you would like to use it, drag and dropping the taskflow as a region (please have in mind that your taskflow pages definition should be set to fragments).
For you second question, again the answer is yes. This is an out-of-the-box functionality provided by the auto-generated human task. There is a section called history that holds and displays all this information.
For the third point, again the answer is yes. What you can do is that you can enable the OnTaskCompleted event so that whenever a participant complete their task to generate an event. Then you can have a mediator or a BPEL process that can subscribe to this event and process the notification.
For question 4 i don't think that is possible (out of the box). You will have to write like a proxy service that will fetch this additional information from your LDAP server and map it to your participants list.
Question 5, the organizational chart allows you to define the structure and hierarchy of your organization (users, groups, application roles) which can be used in your business processes to define your various approval types.
For you last question, the shared flag is used for to define whether your logical roles (also called application roles) should be specific to a process or can be shared across processes.
Regards
Antonis

Similar Messages

  • Oracle BPM Human Task

    Hi All,
    I have a requirement like this-
    I want to call a java webservice to update some record in DB whenever user selects reassign option from Task Actions on ADF Form.
    Once the user will select a user to whom he wants to reassign the task and after clicking OK button that webservice should get.
    Can you please guide me how to call a webservice inside  a HUMAN Task.
    Thanks in advance,
    Any Help would be Highly appreciated.

    Yes Sir right, I tried this but when i am reassigning, flow is not coming out of the human task and also i am not getting the outcome on which i can apply condition on gateway .
    Please find my Payload below after i perform reassign action:
    Payload XML:
    <auditQueryPayload  auditId="51145"  ciKey="340007">
    <serviceInput>
    <element  name="payload"  isBusinessIndicator="false">
    <value>
    <initiateTask>
    <task>
    <payload>
    <docName>54</docName>  
    <mimeType>45454554</mimeType>
    <docURL>54</docURL>
    <receivedFrom>إداره البحوث و الدراسات</receivedFrom>
    <securityType>سرى</securityType>
    <correpondenceSubTypeofDocument/>
    <correpondenceSubType/>
    <correpondenceTypeofDocument/>
    <correpondenceType/>
    <docType>rerfedecx1</docType>
    <sectionhead>قسم التطبيقات</sectionhead>
    <PriorityOut>P0Y0M3DT0H0M0S</PriorityOut>
    <forwardToDept/>
    <Priority>متوسط</Priority>
    </payload>
    <attachment>
    <mimeType/>  
    <name/>
    <URI  xsi:type="def:string">54</URI>
    <attachmentScope>Task</attachmentScope>
    </attachment>
    <processInfo>
    <instanceId>340007</instanceId>  
    <processId>DocumentManagementProcess</processId>
    <processName>DocumentManagementProcess</processName>
    </processInfo>
    <systemAttributes>
    <activityName>Review the Document and Metadata-Director</activityName>  
    <activityId>ACT10502783848343</activityId>
    <thread>0</thread>
    <parentThread>-1</parentThread>
    <swimlaneRole>Director</swimlaneRole>
    </systemAttributes>
    <systemMessageAttributes>
    <textAttribute7  xsi:type="def:string">متوسط</textAttribute7>  
    </systemMessageAttributes>
    </task>
    </initiateTask>
    </value>
    </element>
    </serviceInput>
    <dataState>
    <dataObject  name="expOutcome"  isBusinessIndicator="false">
    <value>
    <expOutcome  xsi:type="def:string"/>  
    </value>
    </dataObject>
    <dataObject  name="forwardToDept"  detailId="40026"  isBusinessIndicator="false">
    <value>
    <forwardToDept  xsi:type="def:string"/>  
    </value>
    </dataObject>
    <dataObject  name="outcome"  detailId="40027"  isBusinessIndicator="false">
    <value>
    <outcome  xsi:type="def:string"/>  
    </value>
    </dataObject>
    <dataObject  name="Priority"  detailId="40028"  isBusinessIndicator="false">
    <value>
    <Priority  xsi:type="def:string">متوسط</Priority>  
    </value>
    </dataObject>
    </dataState>
    </auditQueryPayload>

  • Advanced human task routing on Oracle Bpm Suite 11g.

    Hi
    Do Oracle Bpm Suite 11g human tasks have concept of advanced routing of tasks ? For example if we have three groups of people, each of these groups have skills defined. And when task is created then the skills required fulfill the task (could be defined in task metadata) is compared against the three groups. The task is then assigned to the work queue of the most fitting group ?
    So what I mean by this, is that you can specify rules which define which work queue (and multiple user can be assigned to the work queue) receives which tasks ?
    Thank you for answering and I will gladly give more details regarding this issue...
    Best Regards Tuomas Katva

    I must disagree a little... Human task's have been separated from process logic and I think it reasonable. I don't think that routing logic belongs to the business process, ofcourse this just semantics but I think it would make separation of concerns more apparent. If the human task - service/manager could determine the routing logic (to whom the task is assigned) based on the parameters it receives, it would then make clear separation of logic: business process would handle the overall control flow and the human task manager would handle the human task flow.
    What I'm asking is there some pattern or API or something that would allow for example skill based routing of task. I know that Bea Aqualogic had "parametrized roles" which allowed the task to be routed on runtime to a "dynamic role", and IBM has "Business categories" and "Workbaskets" which allows advanced routing of a task based on runtime properties. Let me give you an example:
    Let's say we have two skill categories:
    Language
    Claim type (for example in insurance)
    Applicant posts the claim and the insurance case is assessed by insurance handler. When the process flow comes to a human task it passes the claim's language and type of the claim to the human task manager. The human task manager would then determine who should handle this task. Let's say that Mike speaks spanish and has skills in car insurance claims. The human task manager would be responsible for determening that this task belongs to Mike (in case that the claim was in spanish and it was car insurance claim).
    Is there any patterns or examples how this should be handled. I know this quite like case management but I think modern BPM's should be able to handle case management.
    Thank you
    Best Regards Tuomas Katva

  • Rules of thumb for sizing an Oracle BPM 11g deployment

    Anyone out there have some rules of thumb they are using to size out an environment for Oracle BPM 11g? I know processing power can vary widely for process complexity and amount of data floating around. Still, I get asked questions like how much processing power do I need for this solution? I have a current client looking at 2500+ potential human workflow users with 1000 concurrent at peak load. Short of running some performance test myself and extrapolating numbers I am at a loss. Hoping some others can chime in with some thoughts.

    an update... my rule of thumb for 50 users has proven to be a bit high. Looks to be 30-40 per core when you split out the BPMN engine from other computing intensive processes such as the ESB. Without splitting up overall SOA/BPM functionality over multiple servers concurrent user counts of various technology really takes a hit.

  • Availability based routing in Oracle BPM 11g

    Hi
    Does Oracle BPM 11g support availability based routing enabling equal distribution of work? If so can someone guide me on how to do it?
    Regards
    Venkat

    Also see this http://docs.oracle.com/cd/E15586_01/integration.1111/e10224/bp_worklist.htm#CHDBBIIC
    Group rules do the following actions:
    Assign to member via—You can specify a criterion to determine which member of the group gets the assignment. This dynamic assignment criterion can include round-robin assignment, assignment to the least busy group member, or assignment to the most productive group member. You can also add your custom functions for allocating tasks to users in a group.

  • ADF forms based on BPM human tasks - Invoking webservices/view objects.

    Hi All,
    Is anyone aware of whether the following is a valid implementation that has been carried out before.
    1. ADF forms based on BPM 11G human tasks.
    2.The ADF forms invoke webservices via Webservice data controls. It is pertinent to note that the webservice bring back complex data types. We've tried writing a few forms, resulting in data benig brought back, but not being able to print them to the screen.
    3. The ADF forms also use View Object based on sql to bring back tables of data. If view objects are embedded within the forms, the applciation gives rise to a null pointer exception.
    Considering the form will be invoked via a BPM worklist entry, is there a setting or configuration we should consider before hand. Is this feasible, is there knowledge of this being done commercially.
    Any examples or information regarding the same will be immensely helpful.
    Thanks and Regards,
    Preethi.
    NB : I have posted this in the BPM forum as well as I feel it is relevant to both BPM and ADF.

    Hi Joonas.
    Plese let me explain me better for your understanding
    A big summary for what I meant it's the following:
    1- In the procces you made, when you add the HT activity, you have to implement it, this means declare the input(s) parameters you want. This implementation create the .task file.
    2- Create an application, and projects as HT you have. Each poject are based on the .task file, and automatically create a Data Control (for each project based on a .task) with all you need.
    This w'll be an empty application, so you can customize it all you want. The task selected should have all the parameters previously defined. Those parameters can change if you want.
    2- Create a page(s) in the task flow for the task implementation. You can even split the the payload of the task in differents pages, create your custom pages and any logic you need.
    3- An important aspect is how to match these application with the HT implemented in the process. It's possible, it's a configuration en the Enterprise Manager.
    4- Deploy your application
    All these are explain in the book I mentioned
    Th book you can find it here:
    https://blogs.oracle.com/soacommunity/entry/oracle_soa_suite_11g_handbook_1
    Regards Dariel.
    PS: Please, let me know if you need more details.

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

  • How to assign hierachical groups from OID, in bpm human task.

    Hi,
    We have a group in OID like
    "cn=MED,cn=Reviewer,cn=NSTIP,cn=STU,cn=KSU,cn=groups,dc=kacst,dc=edu,dc=sa"
    and I am tring to assign the group to a human activity using the assignment tab of the human task.
    I am using the lookupGroup function under Identiy Service Functions as below
    ids:lookupGroup('cn=MED,cn=Reviewer,cn=NSTIP,cn=STU,cn=KSU,cn=groups,dc=kacst,dc=edu,dc=sa')
    The human task is not able to assign the user under the group MED present in myrealm and OID.
    Please suggest.
    Thanks,
    Tuku

    Hi Dear,
    Thanks for your reply.
    what you have suggested to use like ids:lookupGroup('MED') ,this is working fine and I had already tested it before, from jdev and aslo from bpm workspace administration link. But here our problem is we are having more then one 'MED' group with different hierachy . so using directly ids:lookupGroup('MED') will be a problem because we dont know which
    'MED'group it will be assigned.
    Another problem is ,when I am going to search from myrealm (jazn.com) it showing me 3 MED groups (that is present currently in our OID with different hierachy) but not the hierachy, so its also difficult to find out which MED group belongs to which hierachy.
    If we can find a solution to ids:lookupGroup('cn=MED,cn=Reviewer,cn=NSTIP,cn=STU,cn=KSU,cn=groups,dc=kacst,dc=edu,dc=sa') then there wont be any confution to assign the actual group.
    Regarding your question "Do you get like any error or is it that Task just can't get assigned. Have you tried assiging directly like from EM to make sure that Group and user in this group is all fine."
    I am not getting eny error message its just can't get assigned and goes to the end of the bpm process cathing the happy path.
    tested the groups using the url http://soahost:soaport/integration/services/IdentityService/identity here is the result.
    1 ) For group MED
    Result :
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><groupObject xmlns="http://xmlns.oracle.com/bpel/services/IdentityService"><name>MED</name><realmName>jazn.com</realmName><displayName>AGR Tech Grp</displayName><description>Weblogic Admin Group</description><guid>080E537A820740B894307B6A7F97C884</guid><uniqueName>cn=MED,cn=groups,dc=kacst,dc=edu,dc=sa</uniqueName><identitType>group</identitType></groupObject></env:Body></env:Envelope>
    we have already 3 MED groups but it gave the result cn=MED,cn=groups,dc=kacst,dc=edu,dc=sa.
    2)For 'cn=MED,cn=Reviewer,cn=NSTIP,cn=STU,cn=KSU,cn=groups,dc=kacst,dc=edu,dc=sa'
    Result :
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault><faultcode>env:env:Receiver</faultcode><faultstring/><faultactor/><detail><identityNotFoundError xmlns="http://xmlns.oracle.com/bpel/services/IdentityService"><faultInfo xmlns="http://xmlns.oracle.com/bpel/services/IdentityService">No Role found matching the criteria</faultInfo></identityNotFoundError></detail></env:Fault></env:Body></env:Envelope>
    Thanks
    Tuku

  • SOA/BPM/Human Tasks 11g -- add new task participant through Workflow API

    Heya folks. Got a question that's been driving me nuts, hope you can help.
    I have a bunch of Human Tasks in a BPMN process. Each task is pretty simple -- for assignment a single stage only; parallel approval; list of participants is passed in -- via the task payload -- as a comma-delimited list. When the task is initiated it produces a root task, and one child task for each participant. So, say we have participants "fgolfer,atreyvaud" we get three task objects: the "master" or root task and one each for fgolfer and atreyvaud.
    Now what I want to do is add another approver (let's say "gfrog") -- i.e. create a new task for gfrog which is a child of the master task and leaves the tasks for fgolfer and atreyvaud as they are. As far as I can figure, this is NOT a Reassign nor an Ad-Hoc Route. Applying either of those to an existing task effectively removes the existing user from the task and assigns it to the new user.
    On another track, if I programmatically create a new task (with initiateTask() from the Task service, using the values from an existing task), I seem to get a NEW master task with attendant child tasks, while leaving the existing master task and children.
    Make sense? Neither of these outcomes is what I want.
    Seems like this should be pretty simple but for the life of me I can't figure it out. I could create an FYI task or a todo task or a subtask but again this isn't what I want -- need to create a task with all the custom outcomes and such.

    In case folks are playing along at home, I've yet to find a solution for this. Because I need to move forward with my project, I've decided I can't do it through the Workflow API and I'm taking a different route -- basically, triggering a custom task outcome which returns to the same Human Task in the BPMN flow, thus starting the task again. Before doing that I update the task's payload, which contains the task assignees.
    I'm not happy with this, it seems like a nasty hack to overcome a limitation with the Workflow API.
    Understand, though, I'm not saying this is impossible through the Workflow API, just that I haven't found a way to do it. I've spent 2-3 person weeks on this and it's time to move on.

  • Create reusable BPM Human Task Form across Projects

    Hi,
    I have a challange in my project. I have a BPM application with many BPM process inside, and each BPM process has its own human tasks. Is easy for each HT create a form in a jspx file, for that an independent project is created.
    The challange is: most of the HT payload is just informative, and it is wanted to be shown in most of the HT across the application so, what do you suggest me to do, in order to avoid reorganize a form every time I create it with "Autogenerate Form" or "Launch Create Form Wizard" options in the HT?. With reorganize a form I mean: put this label here, change this to read-only, change the layout, etc...
    Thank you!
    AAPDL

    Hi,
    its best to post this question to the SOA forum. The answer on this forum would be to use a  page template, a parametrized bounded task flow and then add the bounded task flow to each page that has the template. However, the task flow in the HT case is generated, which means that you re-build it all the time (meaning you don't work with the same task flow but multiple). If you know how to just use the HT API to access the information to display, you could write a generic bounded task flow for this. Check on the SOA forum if they can come up with a template approach for your use case.
    Frank

  • WD-ABAP as BPM human task

    Hi Experts,
    Has anyone used Webdynpro-ABAP as a human task in BPM activity?
    could anyone please explain the detailed steps for the same?
    Any tutorial or related documents would be of great help.
    Thanks,
    Ramanath.

    Hi Ramanath,
    I´m not aware of a tutorial. However, there is official documentation available on help.sap.com:
    http://help.sap.com/saphelp_nw73/helpdata/en/9d/f22b87282e4abd8f156192bba26be0/content.htm
    In principle, you have to create a CHIP in the ABAP backend first for your UI. Once this has been done, you can import this into Process Composer and make use of it as part of a Task resp. Human Activity.
    Best regards,
    Stefan
    P.S: Be aware that WD-ABAP integration is a feature that is only available in 7.30.

  • Oracle BPM Ant tasks with Oracle BPM Studio cant find jar

    Hello,
    There is this documentation
    http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/anttasks/index.html
    which states how to run Ant tasks to do different tasks on Oracle BPM. In EVERY example in the doc and the INTERNET there is this line in build.xml
    <project name="OracleBPMExample" xmlns:fuego="antlib:fuego.tools.ant.enterprise">
    Now, could anyone PLEASE tell me where to find fuego.tools.ant.enterprise. Ive searched every jar in my installation, and couldnt find such package. From what Ive found out it should be something like fuego-antlib.jar but while it is well known and well discussed it is NOT AVALIABLE ANYWHERE.
    please, help. Im using Oracle BPM 10.3.2
    regards,
    Pawel

    You are right Mike... The ant tasks help you do process admin stuff... so that in the Enterprise environment, you can script it all, and not require manual deployments and such.
    Just download 10g Enterprise.... the library will be in there...
    HTH

  • BPM human task actionable user notification email not working

    Hi ,
    I am triing to send actionable email notification to assignees through the notification tab of the human task. The email settings in the em console has done fine so that I am getting the notification email without any fail.
    But the problem over here is the actionable buttons / links (Like Approve or Reject ) are not there inside the email body.
    I have checked the make notification actionable check box in jdev human task as well as configured the actionable email address in the server em console.Still the email body is not having the action items.
    email body is here
    Task Notification PendingUser Notification requires your attention.
    Access this task in the Workspace Application
    <PendingUser Notification > above is the task title.
    Please suggest
    many many thanks
    Tuku

    Hi All,
    I got the solution for it. Now the assignee is able to get the actionable email.
    the mistake i did is during the human task notification tab configuration I have put separate email id in the recipient column of first row.You need to do is ,choose Assignees from the drop down value , check the check box make notification actionable, then set the proper email in the email attribute property of the assigned user (user creation time).
    Thanks
    Tuku

  • Oracle BPM Composer and no ADF

    Hi Everyone,
    We are planning to use Oracle BPM as our BPM engine. But our organization doesn't support ADF. So could anyone help to answer the below questions. Thanks a lot for your time.
    1) Can we use Oracle BPM Composer... Does Oracle BPM composer require extended ADF Domain?
    2) Default BPM workspace can't be used. So we need to build our own workspace. Are they any predefined framework to build a MVC or any other java framework to build workspace.
    3)Could anyone let me know the additional things we should take care in case we don't use ADF domain.
    Thanks everyone for your time.

    Oracle BPM Studio (JDeveloper) is used by developers to create processes, human tasks, the process instance payloads, the composite services used by the processes, complex transformations, business rules and the ADF UIs.
    Composer is a business user oriented web based tool used by business analysts with similar capabilities.  Using Composer, business people can create and maintain processes, define process instance payloads, human tasks, process payloads, business rules.  Instead of creating ADF UIs, you create and test web forms using a web based UI web form designer tool that it comes with in 11.1.1.7. Because the forms built using Composer can only be viewed from the Workspace or WebCenter Spaces tools, and because you're not going to use the Workspace or WebCenter Spaces tools, you won't be able to use Composer to create your UIs.
    You might want to rethink your decision to not use the Workspace or WebCenter Spaces tools, but because you're not going to use either one you will instead be building your forms using the form design tool of your choice.
    Although I'd advise you against recreating it, you'll need to become comfortable using the different APIs Oracle BPM exposes if you're going to try to duplicate the Workspace and WebCenter Spaces tool functionality.
    Here's the API JavaDoc and a few blogs that will give you some tips on getting started:
    API JavaDoc reference -
    http://docs.oracle.com/cd/E28280_01/apirefs.1111/e25378/toc.htm
    http://docs.oracle.com/cd/E14571_01/apirefs.1111/e10660/oracle/bpel/services/workflow/query/ITaskQueryService.html
    http://docs.oracle.com/cd/E28389_01/apirefs.1111/e25378/oracle/bpm/services/instancequery/IInstanceQueryService.html
    Simple list example -
    http://soadev.blogspot.in/2011/07/querying-oracle-bpm-process-instances.html
    Aborting instances -
    http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e10659/oracle/soa/management/facade/package-tree.html
    Creating instances -
    http://niallcblogs.blogspot.com/2011/12/invoking-bpm-processes-via-java.html
    Building a custom worklist ap -
    http://redstack.wordpress.com/worklist/
    http://redstack.wordpress.com/2011/03/09/creating-the-domain-layer-for-the-worklist/
    http://redstack.wordpress.com/2011/03/09/implementing-task-initiation/
    Purging Instances -
    http://niallcblogs.blogspot.com/2011/12/soabpm-apis-manipulating-composites-and.html
    Instance Query -
    http://java.net/projects/oraclebpmsuite11g/downloads/directory/Samples/bpm-api-101-instance-query
    Human Workflow Services / Human Task API -
    http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_workflow.htm
    http://docs.oracle.com/cd/E23943_01/apirefs.1111/e10660/toc.htm
    Oracle BPM 11g Human Workflow Service Java API – Part 1
       http://niallcblogs.blogspot.com/2010/11/oracle-human-workflow-service-java-api.html
    Oracle BPM 11g Human Workflow Service Java API – Part 2
       http://niallcblogs.blogspot.com/2010/11/human-workflow-java-api-part-2.html
    Oracle BPM 11g Human Workflow Service Java API – Part 3 – ITaskQueryService.AssignmentFilter
       http://niallcblogs.blogspot.com/2010/12/oracle-human-workflow-part-3.html
    UMS API:
    http://docs.oracle.com/cd/E28280_01/apirefs.1111/e14011/toc.htm
    Dan

  • Oracle BPM checkbox

    Hi,
    I am new to Oracle BPM and I have a requirement to make a check box in BPM form. Like Select Documents: Inter [], Middle[],Master[].
    Can anyone please share a simple way to do it? I tried to convert one field into check box but how can I add more check box for that fields. Following is the snapshot. Many thanks

    Wouldn't you want a radio button if the user was only supposed to select one of the choices?  With a checkbox, the user usually thinks they can select multiple items.  To create a hard coded static radio button group on an ADF form, follow the steps listed below.  This adds a new "Request Type" set of radio buttons on the form that is bound to a human task's "RequestType" element:
    1. Right click the existing "RequestType" field (the field you want to create the new dropdown for on the form).
    2. Select Insert after Input Text -> Select "Radio Group".
    3. Click the "Create List" radio button.
    4. Click the + New icon and add an item label and value for each item you want to appear in the dropdown (e.g., Item Label "Inter" and Item Value "INTER").
    5. Click the Next button -> change the Label field to be "Request Type".
    6. Click Finish.
    7. Now that you have a new radio button field, you need to bind it to the correct attribute so that the RequestType value clicked in the dropdown is stored back into the BPM object variable’s RequestType attribute.  To get this, click the original RequestType field the field directly above your dropdown).
    With the original RequestType field selected, in the Property Inspector tab in the lower right corner, copy the text in the "Value" property to your clipboard (Control-C).
    8. Select the new RequestType radio button group and in the Property Inspector tab paste (Control-V) the clipboard value into the Value dropdown field.
    9. Delete the original RequestType field.
    To see how to create a database driven list of values or radio button group that populates a BPM human task variable look at this blog:  http://avioconsulting.com/blog/using-database-driven-list-values-populate-bpm-variable.
    Dan

Maybe you are looking for

  • How to get rid of: Would You Like To See Your Photos on a Map?

    Every single time I edit a photo in Aperture I get this annoying question: "Would you like to see your photos on a map?" Enable GPS tracking - yes or no. How can I get this pop-up screen permanently off of Aperture? Sometimes this causes Aperture to

  • ROM file from Powermac G3?

    I have sheepshaver all ready on my intel-based mac but how can I get the ROM file from the old PowerMac G3 running Mac OS 8.6? Zip drives? floppys? CDs? I want it to be something USB because my intel-based mac is a mac mini. I tried re-partitioning m

  • RENAMED SHORT NAME!!! HELP HELP HELP HELP

    ok. i did a very stupid thing today.. for some reason i decided to 'apple i' my home folder.. essentially my shortname. and change it.. my powerbook didn't like that. so, it created a new user and has 'lost data'. simply meaning all my files are in a

  • Change Username or Email Address

    I would like to change either the username or email address used for this Apple Support Communities account. I'm pretty sure that at least changing the email address was previously allowed, but now it does not seem to be. Can someone please advise?

  • Web enabling of ABAP report

    Hello All, I am having a ABAP Report and willing to web enable the same. I know that ITS can be the option but since we r planning to go for WAS 6.4 I was looking whether it can be done through BSP. I created a HTML Template of my application and was