FYI Assignees in Human Task

Hello,
I would like to allow a Human Task assignee to select and assign users as FYI assignees in a parallel stage within the same Human Task. Is this possible?
Example: User_A is assigned and logged-into the Human Task under the Worklist Application. I would like to allow User_A to select and assign users as FYI assignees in the currently active task. I only require the FYI users to comment or they can ignore entirely and User_A can reject/approve at any time.
Is it possible to add FYI assignees to a Human Task while it is running? If so, how is this done?
My findings so far:
IWorkflowServiceClient client = WorkflowServiceClientFactory.getWorkflowServiceClient();
ITaskService service = client.getTaskService();
What should I do from here?
I would be open to other design ideas, as well.
Thanks,
Mark

Yes, it is possible assign a group as participant of some human task, passing the group name as parameter.
I have tested just now.
It works pretty well in SOA 11.1.1.4 (BPEL or BPM).
Make sure add a data parameter in your human task definition and pass a valid group name to it.
At the Assignment tab, in the participants' list, add a group, data type by expression, and set the value to the right xpath expression to the corresponding parameter.
For example: /task:task/task:payload/task:group
If it is not working look the SOA log files, probably you'll find some information about the error there. Maybe there is some problem with your jazn.com configuration.
You can also test if there is something wrong related to the group name, trying to transfer some task to the same group by the worklist.

Similar Messages

  • How to dynamically assign assignee for human task?

    I tried to use xpath expression in task editor. Expression editor suggested me to use task schema and I could not use variables from process.
    I had selected systemMessageAttributes.textAttribute1 and created “Assign” activity to initiate the attribute. This does not work. When task is started assignee is empty and task is automatically completed.
    Does anybody used this feature?

    Hi,
    You can run the soa server in debug mode by adding remote debugging parameters in startWeblogic.sh of soa server and remote debug it to check problems.
    e.g.
    +#For Debug Port+
    +if [ "${SERVER_NAME}" = "soa_server1" ] ; then+
    +JAVA_OPTIONS="${JAVA_OPTIONS} -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=9023,server=y,suspend=n"+
    +export JAVA_OPTIONS+
    +fi+

  • Sending Human Task notification mail to a assignee not found in LDAP

    Hi All,
    I have 2 requirements:
    1. Suppose i have a HumanTask which sends a notification mail to the assignee when the task is assigned to him/her.
        In our process we are first checking if the assignee's email address is present in LDAP using the BPEL variable that holds the assigneeID.
        If it is not present in LDAP, then we are getting the email address from database before the invocation of the HumanTask.
        Now, as the emailaddress is not found in LDAP, so when the HumanTask is invoked the notification mail will not be sent to the assignee.
        So, we have used a separate email activity after the invocation of HumanTask to send the notification mail to the assignee using his emailaddress that we fetched from the database.
        I don't want to use this separate email activity and wanted to know if there is any other alternative to send the notification mail during invocation of the HumanTask using the emailaddress that
        we fetched from the database?
       Basically i want to know if there is any other way to send the notification mail when a task is assigned and the assignee's email address is not found in LDAP?
    2. Is it possible to send a Human Task's outcomes as links in an email activity body?
       Actually, i am sending a mail to a user using the email activity. Before that a HumanTask is present in my BPEL process.
       I want to send the HumanTask's outcomes as links in the email that i am sending to the user using the email activity just as they get displayed in the notification mail when HumanTask's "Make
       notification actionable" feature is selected.
    Please help me with the above requirements.
    Regards,
    Suman

    AnilB,
    Assigning a task to a user that is not in the directory will likely result in the BPM flow going into suspended state. To avoid this, assign the task to a pre-created group, you should not get an error even if the group is empty. You can then add and remove the users to that group to control access to the task.
    Phil

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

  • Email notification in human task: How to customize email subject.

    Dear all community members,
    I am using email notification service in human task to receive email notification if task is assigned to me. I have configured email notification in human task & I do receive the email in my inbox as assignee.
    The default email subject is like [Action Required: TASK_TITLE], I want to remove this [Action Required:] from email subject.
    I tried setting <%null%> in Notification Header in .task file but the email subject is still has Action Required.
    Is there any way to customize email subject so that I can get rid of [Action Required:] [FYI] in email subject.
    Thanks & Regards.

    I believe this will help - http://docs.oracle.com/cd/E23943_01/user.1111/e15175/bpmug_cust_res_bndl.htm

  • BPM 11g - Human task not removed when interrupting boundary event fired

    In BPM 11g (11.1.1.1.3), I am testing a message catch event on the boundary of a human task. It is set for interrupting, so it should, when the event fires, remove the human task from the work list and follow the flow out of the event. The event flow is being followed, but the human task is being left active in the user's work list. I would expect the human task to be removed when the interrupting boundary message event occurs.
    I think this is a bug, but would welcome any suggestions on how to solve it. Does anyone know if this works in the latest release (11.1.1.1.4)? We might upgrade pretty soon. Has anyone else tried boundary message events and gotten them to work properly in BPM 11g?
    Just FYI....in order to make the BPM message event occur and provide instance correlation, we had to add a mediator and BPEL correlation. We followed process documented in a previous post to do this (http://blog.andrade.inf.br/2011/01/implementing-correlation-in-bpm-11gr1.html). Thanks to whomever posted that...it got us a few steps further along!

    I do not think this is bug based on
    Oracle® Fusion Middleware Modeling and Implementation Guide for Oracle Business Process Management
    23.1.1 Understanding the Relationship Between SOA Composites and SOA Components
    "In a similar way, when an interrupting timer or message boundary event arrives to a user task, the BPMN process instance leaves the user task but the associated Human Task remains available. Because the interrupting timer or message boundary event arrived before the user completes the user task, the human task remains unfinished, and you can still access it thought the Worklist application. However running that human task does not have any effect on the BPMN process."
    This also gives us big trouble. I am looking for the solution.
    Helen

  • 11g Human Task; problem with Auto-Generate Task Form

    Version: WebLogic Server 10.3.5.0 Fri Apr 1 20:20:06 PDT 2011 1398638
    Using book: Getting Started with Oracle SOA 11g R1, A Hands-On Tutorial
    Had success through Chapt 7. Now working through 8, Creating Human Tasks -- almost everything checks out.
    Deployed POProcessing success (with 1 warning: assignee not specified)
    Deployed ApproveTaskDetails (from Application menu) success
    -Run the test tool in Enterprise Manager 11g
    -Response looks according to book, using Launch Flow Trace button I see ManualPOApproval is in running state, as expected.
    -Run Oracl BPM Worklist, log in according to book (weblogic)
    -I can see the Approve Order line under the My Tasks tab
    When I select the Approve Order line item, according to book I should see Approve Order Contents in the lower pane.
    But the details never populate the pane and I see "Waiting for..." in Explorer status bar.
    The logs are filling up with the following statement repeated about 2/second (from D:\oracle\Middleware\home_11gR1\user_projects\domains\domain1\servers\soa_server1\logs\access.log) ...
    =====snippet begins======
    0:0:0:0:0:0:0:1 - weblogic [21/Oct/2011:17:38:05 -0500] "GET /integration/worklistapp/faces/login.jspx?_afrLoop=2609043717008&_afrWindowMode=0&_adf.ctrl-state=bcqg1x7gm_9 HTTP/1.1" 200 5486
    0:0:0:0:0:0:0:1 - - [21/Oct/2011:17:38:05 -0500] "GET /workflow/ApproveTaskDetails/faces/adf.task-flow?bpmWorklistTaskId=47d0f109-2de1-4851-a5cf-1c338050f3c2&bpmWorklistContext=b5d5e48b-9c54-4e3d-a707-19c9e99f618e%3B%3B4iKnpxQCfUvYnghbxihMXgZAOsVJ%2BqeiE79gFBzb%2BlKq9vlbpqV2%2FyQ21%2BLHnBcvJA6mBOoc238GDGR9odBPBE%2FZdeDrfVwfIUCOa%2Fsc%2BRRnmEkzS5f1mKd3oWpasvIhZDkCz5conIhVCKJvCxxz0i1NpCk9WWoVBHpUX39ayhF%2B0aI1p%2FGImOsYBEXDIBEDADen3JkeoewYEJwpVcQf6XzOA5rTEojcUHt28znFHboPdkJ8TW7jfvgQnHNRS5XB&bpmWorklistHttpURL=http%3A%2F%2Flocalhost%3A8001%2Fintegration%2Fworklistapp%2Ffaces&bpmWorklistHome=home.jspx&bpmWorklistReassign=reassignTask.jspx&bpmWorklistRoute=routeTask.jspx&bpmWorklistRequestInfo=requestInfo.jspx&bpmWorklistSecurity=signTask.jspx&tz=America%2FChicago&lg=en&cy=US&vr=&dispNameLg=en&dispNameCy=US&dispNameVr=&df=medium&dt=both&tf=short&bpmWorklistSessionTimeoutInterval=1500&bpmBrowserWindowStatus=taskFlowReturn&adf.tfDoc=%2FWEB-INF%2FManualPOApproval_TaskFlow.xml&adf.tfId=ManualPOApproval_TaskFlow&_task-flow-return=http%3A%2F%2Flocalhost%3A8001%2Fintegration%2Fworklistapp%2Ffaces%2Fadf.task-flow-return%3F_adf.ctrl-state%3Dbcqg1x7gm_49&_adf.winId=bcqg1x7gm_40&_afrLoop=4624989043858&_afrWindowMode=0&_afrWindowId=null HTTP/1.1" 200 5478
    =====snippet ends======
    Thanks for any assistance!
    MichaelM

    Resolved by disabling pop-up blocking in IE8.

  • Unable to select an outcome in human task

    Folks,
    I’ve been trying to get a simple human task to work but as of yet I am unable to. I’ve followed the instructions in the BPEL Process Manager Developer’s Guide (10.1.3) and am using the “Auto Generate Simple Task Form” to create the display.
    I can deploy the process without incident and am able to claim the task and see parameters passed in. I am not, however, able to see or select the outcome (which I have defined as ‘Approve’ and ‘Reject’).
    The .task file is as follows:
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <taskDefinition targetNamespace="http://xmlns.oracle.com/human_work"
                    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
                    xmlns:ora="http://schemas.oracle.com/xpath/extension"
                    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
                    xmlns:task="http://xmlns.oracle.com/bpel/workflow/task"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns="http://xmlns.oracle.com/bpel/workflow/taskDefinition">
       <name>human_work</name>
       <id>${domain_id}_${process_id}_${process_revision}_human_work</id>
       <title>Task!</title>
       <priority>3</priority>
       <process processId="" processVersion=""/>
       <routingSlip xmlns="http://xmlns.oracle.com/bpel/workflow/routingSlip">
          <globalConfiguration>
             <owner>oc4jadmin</owner>
             <earlyCompletion>
                <outcome>APPROVE</outcome>
                <outcome>REJECT</outcome>
             </earlyCompletion>
          </globalConfiguration>
          <participants isAdhocRoutingSupported="false">
             <participant name="taskApprover">
                <resource isGroup="true" type="STATIC">oc4j-administrators</resource>
                <resource isGroup="true" type="STATIC">oc4j-app-administrators</resource>
             </participant>
          </participants>
          <notification includeTaskAttachments="false" actionable="false"
                        secureNotifications="false"/>
       </routingSlip>
       <workflowConfiguration xmlns="http://xmlns.oracle.com/bpel/workflow/configuration"
                              xmlns:ns0="http://xmlns.oracle.com/test_humanTask2">
          <outcomes>
             <outcome>APPROVE</outcome>
             <outcome>REJECT</outcome>
          </outcomes>
          <restrictedActions/>
          <payload xmlSchemaDefinition="human_work_payload.xsd">
             <messageAttribute name="taskInput" attributeType="ELEMENT"
                               type="ns0:taskInput" updatable="false"/>
          </payload>
          <bpelEventListener>false</bpelEventListener>
       </workflowConfiguration>
    </taskDefinition>Any help you all can provide is greatly appreciated.
    Thanks in advance,
    Joseph

    Is there any update to this thread? I am seeing the same or similar problem. I'm using BPEL 10.1.3.3.
    I've created a task with two possible custom outcomes "BE" or "NOT_BE". Anyone in the oc4j-administrators group can claim the task instance. I use the auto task form generator.
    As in the thread, I can claim the task instance (as oc4jadmin) and the task form displays (including one parameter that I defined in the payload); however, the only Task Action available in the dropdown list for selection is "Release". My expectation would be to see "BE", "NOT_BE", and "Release" as available actions.
    Using bpeladmin yields identical results.
    Here is my task definition:
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <taskDefinition targetNamespace="http://xmlns.oracle.com/HumanTask1" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc" xmlns:task="http://xmlns.oracle.com/bpel/workflow/task" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/bpel/workflow/taskDefinition">
    <name>HumanTask1</name>
    <id>${domain_id}_${process_id}_${process_revision}_HumanTask1</id>
    <title>To Be or Not to Be</title>
    <priority>3</priority>
    <process processId="" processVersion=""/>
    <routingSlip xmlns="http://xmlns.oracle.com/bpel/workflow/routingSlip">
    <globalConfiguration/>
    <participants isAdhocRoutingSupported="false">
    <participant name="Deep Thinker">
    <resource isGroup="true" type="STATIC">oc4j-administrators</resource>
    </participant>
    </participants>
    <notification includeTaskAttachments="false" actionable="false"
    secureNotifications="false">
    <action name="ASSIGN" recipient="ASSIGNEES"><![CDATA[concat(string('Task '), /task:task/task:title, string(' requires your attention. Please access the task from the worklist application.'))]]></action>
    <action name="COMPLETE" recipient="CREATOR"><![CDATA[concat(string('Task '), /task:task/task:title, string(' requires your attention. Please access the task from the worklist application.'))]]></action>
    <action name="ERROR" recipient="OWNER"><![CDATA[concat(string('Task '), /task:task/task:title, string(' requires your attention. Please access the task from the worklist application.'))]]></action>
    </notification>
    </routingSlip>
    <workflowConfiguration xmlns="http://xmlns.oracle.com/bpel/workflow/configuration"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <outcomes>
    <outcome>BE</outcome>
    <outcome>NOT_BE</outcome>
    </outcomes>
    <restrictedActions/>
    <payload xmlSchemaDefinition="HumanTask1_payload.xsd">
    <messageAttribute name="FoodForThoughtParm" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    </payload>
    <bpelEventListener>false</bpelEventListener>
    </workflowConfiguration>
    </taskDefinition>

  • Human Task Java API

    Hi
    I have a requirement to create human tasks without using soa. I am trying to use the Human task Java API. Using this API I can do all the operations like updating the outcome, adding/updating comments and updating assignee list but not able to create initial task. I am using initiateTask operation which requires task definition id. I dont know how to set this. Can anybody guide me
    1. Can I create human tasks without using composite pure java api?
    2. If I am able to create initial task what will be the task definition id? I tried to enter a new row in soa infra meta data table which did not work.
    I really appreciate the help.
    Thanks

    Hi Sri
    I have few Processes deployed to my SOA Domain and that too under different Partitions. For ease of maintenance, in EM Console under soa_infra node instead of default partition we can have our own Partitions also to deploy specific workflow projects under those partitions. If you don't have this thats ok.
    I looked at Payload data for all the Tasks submitted by the first Initiator Task in EM Console, when we check the Flow Trace etc. Here is what I found for <taskDefinitionId> value for each of my different Processes. They do have some Pattern. So you had to use some sort of properties file to get these values so that if they are deployed to different partitions and with different versions, you do not have to modify your java code and recompile it. Just modify .properties file.
    Anyhow, looks like the format for <taskDefinitionId> is something like this:
    NameOfPartition + "/" + NameOfProcess + "!" + VersionNumber + "/" + NameOfInitiatorHumanTask
    Here are some examples from my domain for some of the Process.
    <taskDefinitionId>default/SalesQuoteProcess!1.0/EnterQuote</taskDefinitionId>
    <taskDefinitionId>Ravi1_Partition/CreditReviewRequestProcess!1.0/HumanTaskCreditRequestor1</taskDefinitionId>
    <taskDefinitionId>Jegga1_Partition/HolidayProcess!1.0/StartNewHolidayTask</taskDefinitionId>
    You already tried hardcoding it I guess and it worked. Now try generating them dynamically using simple String appenders and sort of properties file to make it more dynamic. How often do we really change partition name or human task name itself or name of process itself. They are pretty much fixed. Now comes only the Version number. This can change with your new deployment if you want to have different version. So just read all these from .properties file.
    Thanks
    Ravi Jegga

  • Human Task - Notification Setting

    Hi everyone
    I Want to customize the email message that will be sent to the Assignees.
    The message is as follows:
    Task <%/task:task/task:title%> requires your attention. Please access the task from the worklist application.
    Request ID: <%/task:task/task:payload/ns0:HumanTaskProcessRequest/ns0:Req_ID%>
    From: <%/task:task/task:payload/ns0:HumanTaskProcessRequest/ns0:From%>
    To: <%/task:task/task:payload/ns0:HumanTaskProcessRequest/ns0:To%>
    Purpose:<%/task:task/task:payload/ns0:HumanTaskProcessRequest/ns0:Purpose%>
    and it appears like this in the email message:
    Task RequestApproval requires your attention. Please access the task from the worklist application. Request ID: From: To: Purpose:
    I tried to add an Assign and create a copy operation to assign the input value of Request ID (for example) to the task payload. but it didn't work !!
    btw, I don't have anything under '/task:task/task:payload' and the path in the message has been added using the xpath builder

    If you are going to pass something in to the task you need to do it as a parameter. Then that parameter's hierarchy will appear under the payload section. You specify the parameter type in the human task definition and you specify the actual value passed in the human task BPEL activity.
    You can also use HTML to format the emails a little nicer.

  • How to use External Routing in Human Task

    Hi,
    Could you please help me knowing how to create External Routing in Human Task in SOA Composite.
    Thanks

    When defining the external routing class in the .task, you can define the name value pairs which you want to pass to the program. Here you can pass dynamic values to the class as well by reading the appropiate node from the payload. In your class the name, value would be available in the "Map propertyBag" parameters in Rajiv's example link.
    Document says:
    Map of properties — When an assignment service is specified, a list of properties can also be specified to correlate callbacks with backend services that determine the task assignees.Or if you are too lazy to map many parameters and values, you can always read the whole Task task and then use getDocument and some xml reading to determine the values. This Task is the whole document.
    API:
    http://docs.oracle.com/cd/E17904_01/apirefs.1111/e10660/oracle/bpel/services/workflow/task/model/TaskType.html#getDocument__Document says:
    Task document — The task document that is executed by the workflow. The task document contains the payload and other task information like current state, and so on.Also you need to make sure that you are maintaining the state of the assignment class, doc says:
    The assignment service class cannot be stateful because every time workflow services need to call the assignment service, it creates a new instance.Thus if you are doing multiple serial assignments one after the another and if your server restarts in between, then the approval would start at the first assignee again. Suppose in Rajiv's doc link e.g., if the task is assigned to 'wfaulk' and the server restarts then the task would be assigned back to 'jstein'. In order to prevent this you need to modify the java code and each time the variable changes it's value you need to place it in a dehydration store. Also on each action over the process you need to reinitialize the variable from that dehydration store.
    -Bikash

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

  • I require a Human Task allowing a null, updatable, payload parameter

    Hello, I hope to get help here for I have been stuck for a while.
    I am developing a BPEL process for employee Onboarding. Several of the Human Task forms contain parameters, like Address2, MIDDLE_NAME, etc, which it is perfectly all right for the parameter to have no value. For my exerts below I will use the MIDDLE_NAME parameter.
    Below is my error message, the assign which is throwing the error, the schema definition DetermineLocation_ht_payload.xsd, and the task definition file DetermineLocation_ht.task
    I have tried various permutations and locations of MinOccurs and nillable. I find it hard to believe that this is such an abnormal requirement, to allow a null element in a Human Task. I am obviously missing something fundemental.
    TheseTask Forms should present data to a user, and allow them to edit the updatable data and Approve. Even the non-updatable elements throw the error if null. Everything else in my process works fine: if I use a single character like a "~" or something when initiating from BPEL Console, all works fine. I hate to use a '~' or something for a "filler", seems so bogus.
    Can someone please help me? I would appreciate it greatly. Thank you in advance.
    Richard
    ERROR MESSAGE
    [2009/04/03 14:27:16] Error in evaluate <from> expression at line "1212". The result is empty for the XPath expression : "/task:task/task:payload/task:EMPLOYEE_MIDDLE".less
    oracle.xml.parser.v2.XMLElement@12cb5f1
    [2009/04/03 14:27:16] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown.less
    -<selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    -<part name="summary">
    <summary>
    empty variable/expression result.
    xpath variable/expression expression "/task:task/task:payload/task:EMPLOYEE_MIDDLE" is empty at line 1212, when attempting reading/copying it.
    Please make sure the variable/expression result "/task:task/task:payload/task:EMPLOYEE_MIDDLE" is not empty.
    </summary>
    </part>
    </selectionFailure
    ASSIGN CODE
    <copy>
    <from variable="DetermineLocation_ht_1_globalVariable"
    part="payload"
    query="/task:task/task:payload/task:EMPLOYEE_MIDDLE"/>
    <to variable="ReceiveRead_iv" part="Root-Element"
    query="/ns2:Root-Element/ns2:Emp/ns2:EmpMiddle"/>
    </copy>
    DetermineLocation_ht_payload.xsd
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <schema targetNamespace="http://xmlns.oracle.com/bpel/workflow/task" xmlns:tns="http://xmlns.oracle.com/bpel/workflow/task" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <complexType name="payloadType">
    <sequence>
    <element name="RECRUITER" type="xsd:string"/>
    <element name="RECRUITER_FIRST" type="xsd:string"/>
    <element name="RECRUITER_LAST" type="xsd:string"/>
    <element name="SPACE_ADMIN" type="xsd:string"/>
    <element name="EMPLOYEE_NO" type="xsd:string"/>
    <element name="EMPLOYEE_FIRST" type="xsd:string"/>
    <element name="EMPLOYEE_MIDDLE" type="xsd:string"/>
    <element name="EMPLOYEE_LAST" type="xsd:string"/>
    <element name="START_DATE" type="xsd:string"/>
    <element name="GENDER" type="xsd:string"/>
    <element name="SL_OFFICE" type="xsd:string"/>
    <element name="ASSIGNMENT" type="xsd:string"/>
    <element name="PROJECT_MANAGER" type="xsd:string"/>
    <element name="COMPANY" type="xsd:string"/>
    <element name="BUSINESS_GROUP" type="xsd:string"/>
    <element name="WORKGROUP" type="xsd:string"/>
    <element name="SUPERVISOR" type="xsd:string"/>
    <element name="LOCATION" type="xsd:string"/>
    </sequence>
    </complexType>
    <element name="payload" type="tns:payloadType"/>
    </schema>
    DetermineLocation_ht.task
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <taskDefinition targetNamespace="http://xmlns.oracle.com/DetermineLocation_ht" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc" xmlns:task="http://xmlns.oracle.com/bpel/workflow/task" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/bpel/workflow/taskDefinition"
    xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:ehdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions"
    xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
    xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath">
    <name>DetermineLocation_ht</name>
    <id>${domain_id}_${process_id}_${process_revision}_DetermineLocation_ht</id>
    <title>Determine Location</title>
    <priority>3</priority>
    <process processId="" processVersion=""/>
    <routingSlip xmlns="http://xmlns.oracle.com/bpel/workflow/routingSlip">
    <globalConfiguration>
    <owner>bpeladmin</owner>
    </globalConfiguration>
    <participants isAdhocRoutingSupported="false">
    <participant name="Assignee1"
    skipCondition="string-length(/task:task/task:payload/task:LOCATION) > 1">
    <resource isGroup="false" type="XPATH">/task:task/task:payload/task:SPACE_ADMIN</resource>
    </participant>
    </participants>
    <onErrorParticipant>
    <resource isGroup="true" type="STATIC">FINALAPPROVERS</resource>
    <resource isGroup="true" type="STATIC">oc4j-administrators</resource>
    </onErrorParticipant>
    <notification includeTaskAttachments="false" actionable="false"
    secureNotifications="false">
    <reminder relativeDate="ASSIGNED" reminderDuration="P1DT"
    recurrence="2"/>
    <action name="ASSIGN" recipient="ASSIGNEES"><![CDATA[concat(string('<table width="100%">
    <TR BGCOLOR=#ededed HEIGHT="100">
    <td>Attention,<br><br>'), /task:task/task:payload/task:EMPLOYEE, string(' has been assigned to '), /task:task/task:payload/task:ASSIGNMENT, string('.  Please click on the link below to enter the location for this new employee.<br><br><br>
    Sincerely,<br><br>
    The BPEL Onboarding Business Process</td></tr></table>'))]]></action>
    <action name="COMPLETE" recipient="CREATOR"><![CDATA[concat(string('Task '), /task:task/task:title, string(' requires your attention. Please access the task from the worklist application.'))]]></action>
    <action name="ERROR" recipient="OWNER"><![CDATA[concat(string('Task '), /task:task/task:title, string(' requires your attention. Please access the task from the worklist application.'))]]></action>
    </notification>
    </routingSlip>
    <workflowConfiguration xmlns="http://xmlns.oracle.com/bpel/workflow/configuration"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <outcomes>
    <outcome>APPROVE</outcome>
    </outcomes>
    <restrictedActions/>
    <payload xmlSchemaDefinition="DetermineLocation_ht_payload.xsd">
    <messageAttribute name="RECRUITER" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="RECRUITER_FIRST" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="RECRUITER_LAST" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="SPACE_ADMIN" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="EMPLOYEE_NO" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="EMPLOYEE_FIRST" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="EMPLOYEE_MIDDLE" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="EMPLOYEE_LAST" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="START_DATE" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="GENDER" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="SL_OFFICE" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="ASSIGNMENT" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="PROJECT_MANAGER" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="COMPANY" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="BUSINESS_GROUP" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="WORKGROUP" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="SUPERVISOR" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    <messageAttribute name="LOCATION" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="true"/>
    </payload>
    <bpelEventListener>false</bpelEventListener>
    </workflowConfiguration>
    </taskDefinition>
    Edited by: rsuchoza on Apr 3, 2009 2:58 PM

    Hi
    Try to make the <messageAttribute name="ASSIGNMENT" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="false"/>
    to
    <messageAttribute name="ASSIGNMENT" attributeType="SIMPLE_TYPE"
    type="xsd:string" updatable="true"/>

  • BPEL Human Task: how to remove task details section from notification email

    This is concerning the human task component of SOA Suite 11g. Upon task assignment, the assignee receives an email notification with an administrator configured text. Below this text the task details are automatically added. How can this be removed? Marking the notification as 'secure' also removes the administrator configured text. But that I'd like to keep. Only the automatically added task details section needs to go. Any hints?

    This configuration is available in the following navigation. Workflow Administrator Web Applications > Oracle Applications Manager > Workflow Manager > Service Components > Workflow Notification Mailer > Edit > Advanced > Message Generation section > Templates. You can refer to the "Oracle Workflow Administrator's Guide" > "Modifying Your Message Templates" for more information.
    Please note that this applies to ALL the outbound notifications, not specific for Purchasing notifications.

  • Realm for human task

    In the BPELAdmin I have added a second domain named "hub". In is_config.xml, I have added another configuration with realName="hub". In jdeveloper, I can then deploy a bpel process that includes a human task to the "hub" domain.
    Using the BPELConsole, I can see in the new process in the hub domain "hub" and create a test instance of the process. All that is good. The problem comes when I log into the worklistapp. When I select the "hub" realm at login, I do NOT see my new task. When I select the "default" realm at login, the task is there.
    How can I specify the realm for the task?

    Thank you for the added information. I am still confused however. When I am using the workflow editor, I can select the Integration Server Connection and Realm Name just like you said. When finished I viewed the source. What I see is:
    <routingSlip xmlns="http://xmlns.oracle.com/bpel/workflow/routingSlip">
    <globalConfiguration>
    <owner>talaveraa</owner>
    </globalConfiguration>
    <participants isAdhocRoutingSupported="false">
    <participant name="Assignee1">
    <resource isGroup="false" type="STATIC">talaveraa</resource>
    </participant>
    </participants>
    <notification includeTaskAttachments="false" actionable="false" secureNotifications="false">
    <action name="ASSIGN" recipient="ASSIGNEES"><![CDATA[concat(string('Task '), /task:task/task:title, string(' requires your ....'))]]></action>
    <action name="COMPLETE" recipient="CREATOR"><![CDATA[concat(string('Task '), /task:task/task:title, string(' requires your ....'))]]></action>
    <action name="ERROR" recipient="OWNER"><![CDATA[concat(string('Task '), /task:task/task:title, string(' requires your ....'))]]></action>
    </notification>
    </routingSlip>
    I have studied RoutingSlip.xsd. It does not appear to allow one to specify the realm. So I selected user "talaveraa" from the "hub" realm and deployed to the "hub" domain. Now to see an instance of the task in worklistapp, I have to log in to the "default" domain. How can I force this task to be routed only to users in the "hub" domain?

Maybe you are looking for