Oracle® Fusion Middleware Release Notes 11g Release 1 (11.1.1) for Solaris Operating System (SPARC 64-Bit) E14772-11 |
|
![]() Previous |
![]() Next |
This chapter describes issues associated with human workflow. It includes the following topics:
This section describes general issue and workarounds. It includes the following topics:
Section 14.1.3, "Editing Visibility Rules Invokes a Feedback Dialog with an Exception Error"
Section 14.1.4, "Intermittent Error When Executing the Remote EJB API for Human Workflow"
Section 14.1.6, "Must Explicitly Save an Attachment Removal"
Section 14.1.7, "Task Form Uses the Less Secure Port If Both the HTTP and HTTPS Ports Are Enabled"
Section 14.1.8, "URL Files Attachments Are Not Being Sent to the Next Task Assignee"
Section 14.1.9, "Pushback Action Overrides All Other Actions"
Section 14.1.13, "Oracle BPM Worklist Does Not Support a JNDI Connection Pool"
Section 14.1.14, "Displaying Details for Stale Tasks on the Evidence Search Tab"
Section 14.1.15, "Undeploying a Task Flow Does Not Remove the Database Entry for the URL"
Section 14.1.16, "Changing the Task Display URL to Use the Correct Protocol and Port Number"
Section 14.1.19, "Notifications for ToDo Tasks are Not Supported"
Section 14.1.20, "Best Practice Recommendation for Task Detail Deployment"
Section 14.1.22, "Admin Users Can Add and Update Comments and Attachments"
Section 14.1.23, "Do Not Include Spaces in a Custom Outcome ACTION Name"
You must create separate ADF task flows if both contain the same element, but with different meta-attributes specified (for example, editable and noneditable).
For example, assume you perform the following tasks.
Create two task form applications for a SOA composite application:
Task form application one (for example, named EnterBankDetails.task) has one editable payload (for example, named BankDetails) and one noneditable payload (for example, named Employee).
Task form application two (for example, named ValidatePersonalInformation.task) has one editable payload (for example, also Employee).
While creating the task form, the wizard provides you with the option to define the ADF table for payload Employee.
Complete the wizard, then deploy the process.
Invoke the process.
Log in to Oracle BPM Worklist.
There is a Validate Personal Information task (for ValidatePersonalInformation.task).
Select the task.
Employee details are available for modification, as expected.
Add a new record, then approve the task.
Select the Enter Bank Details task (for EnterBankDetails.task). In the task form, note that the Insert New and Delete buttons are still present for Employee data, even though it is a noneditable payload.
Click Delete, then select Approve. The payload gets deleted.
Ensure that you create two separate ADF task flow applications because both contain the Employee element, but with different meta-attributes specified (editable and noneditable).
Section "Moving Human Workflow Data from Test to Production Environments" of Chapter "Managing Human Workflow Service Components and Engines" of the Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite describes how to use the migration.properties
file to move your data from a test to a production environment. In addition to the migration.properties
file properties described in this section, you must also add the template.version
property to this file. For example:
operationType = EXPORT objectType = VIEW name = name of VIEW user = username of VIEW grantPermission = true migrateAttributeLabel = true override = true skip = true migrateToActiveVersion = true template.version = 2009-June-11
Not adding the template.version
property results in the occurrence of an exception error when you execute the ant-t2p-worklist.xml
script.
If you make changes to the visibility rules in the Access page of the Human Task Editor (for example, set assignees to have no access to task history), save your changes, switch to Source view, and then switch back to Designer view, a feedback dialog is displayed with an exception error.
Close this dialog. There is no loss of functionality.
When executing the remote EJB API for human workflow, you can intermittently receive the following error:
javax.naming.ServiceUnavailableException
As a workaround, perform the following steps.
Open the DOMAIN_HOME
/config/fmwconfig/jps-config.xml
file.
Add the connection pooling size:
change:
<!-- JPS WLS LDAP Identity Store Service Instance --> <serviceInstance name="idstore.ldap" provider="idstore.ldap.provider"> <property name="idstore.config.provider" value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"/> <property name="CONNECTION_POOL_CLASS" value="oracle.security.idm.providers.stdldap.JNDIPool"/> </serviceInstance>
to:
<!-- JPS WLS LDAP Identity Store Service Instance -->
<serviceInstance name="idstore.ldap" provider="idstore.ldap.provider">
<property name="idstore.config.provider"
value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"/>
<property name="CONNECTION_POOL_CLASS"
value="oracle.security.idm.providers.stdldap.JNDIPool"/>
<property name="CONNECTION_POOL_MAX_CONNECTIONS" value="30"/>
</serviceInstance>
In the Actions tab of the Access page of the Human Task Editor, the Admin user is incorrectly assigned the actions Approve and Reject by default. These checkboxes should be disabled. During runtime, if you log in to Oracle BPM Worklist as the Admin user, the actions Approve and Reject are not in the Actions dropdown list. This is the expected behavior.
Adding an attachment to a task does not require you to select Actions > Save. The task is automatically updated and the full history shows the attachment was added. However, when you remove the attachment, the task is not automatically updated. You must explicitly select Actions > Save. Otherwise, the attachment is not removed, even though it is displayed as removed. This is the expected behavior.
If you enable both the front end HTTP (non-SSL) and HTTPS (SSL) ports in Oracle WebLogic Server, deploy a SOA composite application and task form, invoke an instance, and attempt to access the task form, the less secure port is used.
For example, if you click the invoked task, the Oracle BPM Worklist URL is correctly displayed with the HTTPS port.
https://host:https_port/integration/worklistapp
However, the task form URL displays the less secure port:
http://host:http_port/workflow/taskflow
If the HTTPS port is enabled, it must use the more secure port, especially if the request is made on the HTTPS port. To use the HTTPS port, follow the task flow deployment instructions described in section "Deploying a Composite Application with a Task Flow" of the Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite for details.
For a task using a serial participant type, when the first assignee approves the task in Oracle BPM Worklist and adds a URL attachment to it (for example, http://www.mycompany.com/technology/products/oem/management_partners/snmpwp6.gif
), the attachment is not sent along with the e-mail notification to the next participant. However, if a desktop file is added as an attachment (for example, just snmpwp6.gif
), then the attachment is sent with the e-mail notification to the next assignee.
The pushback action overrides all other actions. For example, if a task is pushed back and then reassigned, after the reassignee approves it, the task goes to the user who performed the pushback. This is the expected behavior.
A task owner or creator who was not a previous task approver displays in the list of approvers to whom the task can be pushed back. For example, perform the following tasks:
Create the Vacation Request SOA composite application in which you set the Owner field of the Human Task Editor with an XPath expression.
Set the creator from the payload as the owner of the task.
Deploy and create an instance with the creator as jcooper
.
Log in as jstein
to Oracle BPM Worklist.
Select Actions > Request Information.
In the Request More Information dialog in Oracle BPM Worklist, the task owner jcooper
is shown as a past approver in the Past Approvers dropdown list. Since jcooper
is not in the original list of approvers, if you select this user, a validation error similar to the following is correctly displayed:
Invalid action on workflow task or user does not have privilege to perform this action. Action PUSH_BACK on task 89f227cd-7ea2-4fcf-83ff-845082e01416 cannot be performed by jstein. Make sure that the action is valid with respect to the current state of the task or ensure that the user has privilege to perform this action on the workflow task.
When you create the task flow for a human workflow task by dragging the Task object from the Application Navigator and selecting Human Task > Task details for email from the menu, then after task flow deployment, the following code line precedes the task details in Oracle BPM Worklist.
font {font-family: Tahoma, Verdana, Helvetica, sans-serif} H1 { font-size: 14px; color:#000000; margin-left: 5px} td {font-size: 11px;color:#000000} label {font-size:11px;color:#704A00;margin-right:10px}
This does not effect any functionality. In Oracle BPM Worklist and in the e-mail notification, task details display correctly.
You must specify values for both the Date From and Date To fields in the Search sections on the Notification Management page in Oracle Enterprise Manager Fusion Middleware Control Console to receive the correct search results. These fields do not work independently. Specifying values for only one of these fields does not display the correct search results. To access these fields:
Right-click soa-infra in the navigation tree, and select Service Engines > Human Workflow > Notification Management.
Expand the Search icon in the Outgoing Notifications section or Incoming Notifications section to display the Date From or Date To fields.
The worklist engine uses a user and role connection pool. It does not support a JNDI connection pool.
Many of the task details for a stale task are not displayed, because stale tasks are typically purged. For this reason, content on the page is not aligned correctly and clicking a stale task results in an error message.
When a task flow Web application is deployed, the task flow URL is registered in the database. This URL is displayed in Oracle BPM Worklist when a task is clicked and the task details are displayed. If the task flow Web application is later undeployed or stopped, the task flow URL in the database is not removed as part of the undeployment. Consequently, when you click the task in the worklist to see the task details, a 404
Not
Found
error is displayed rather than the message Details
not
available
for
task
. To avoid the 404
Not
Found
error, use Oracle Enterprise Manager Fusion Middleware Control Console to undeploy the task flow application from the application home page.
If the SOA Server is SSL enabled or disabled, then you must manually enable or disable SSL for any already deployed workflow task detail applications. Use Oracle Enterprise Manager Fusion Middleware Control Console to change the workflow task display URL to use the correct protocol and port number. To enable the use of the SSL (HTTPS) URL, ensure that the HTTP port setting is left blank. See Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite for more information.
Oracle Fusion Middleware supports providers that enable the User and Role API to interact with custom identity stores. For more information, visit the following URL:
http://www.oracle.com/technology/products/id_mgmt/opss/index.html
After you update and save a ToDo task or a ToDo subtask for a business task in a Worklist Portlet, the following fields should appear, but do not: Assignee, Status, and Search options.
Notifications for ToDo tasks are not supported. If you create a ToDo task with a notification in Oracle BPM Worklist, you receive a 404
Not
Found
error message.
It is recommended that task detail applications associated with a human workflow composite be deployed only to servers that have SOA configured on them, as well as the required ADF libraries.
The task details page for e-mail notifications does not support the listing of the History section. If this section is included in the task details to be rendered for e-mails, then it does not display correctly in the e-mail notification.
In Oracle BPM Worklist, Admin users can add and update comments and attachments with this release.
When creating a custom outcome for a task form, ensure that valid characters are used in the ACTION name. Spaces are not permitted.
This section describes documentation errata. It includes the following topics:
Section 14.2.1, "Withdraw Button in Task Details Page Displays for the Administrator"
Section 14.2.4, "Classpath for the workflow-120-SQLIdentityProvider Sample Must Be Replaced"
Section "Acting on Tasks: The Task Details Page" of Chapter "Using Oracle BPM Worklist" of Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite includes the following description for the Action buttons on the task details page:
Action buttons—Displays buttons for custom actions that are defined in the human task, such as setting task outcomes (for example, Resolved and Unresolved for a help desk request or Approve and Reject for a loan request). For the task initiator or a manager, Withdraw may also appear.
This description should also state that in addition to the task initiator or manager, Withdraw may also appear for the administrator.
In Example 28-8, "Initiating a Vacation Request Task Programmatically," the following change is required.
Replace this:
// set taskDefinitionId task.setTaskDefinitionId("/VacationRequestApp/ VacationRequest!1.0*2007-04-26-10-49-50/ VacationRequest"); (Your task definition ID will be different.)
With this:
// set taskDefinitionId. taskDefinitionId is the target // namespace of the task // If namespace is used, the active version of the composite corresponding // to that of the namespace will be used. task.setTaskDefinitionId("http://xmlns.oracle.com/VacationRequest/ Project1/Humantask1"); (Your task definition ID will be different.)
Example 14-1 shows the entire corrected example.
Example 14-1 Initiating a Vacation Request Task Programmatically
// create task object ObjectFactory objectFactory = new ObjectFactory(); Task task = objectFactory.createTask(); // set title task.setTitle("Vacation request for jcooper"); // set creator task.setCreator("jcooper"); // set taskDefinitionId. taskDefinitionId is the target // namespace of the task // If namespace is used, the active version of the composite corresponding // to that of the namespace will be used. task.setTaskDefinitionId("http://xmlns.oracle.com/VacationRequest/ Project1/Humantask1"); (Your task definition ID will be different.) // create and set payload Document document = XMLUtil.createDocument(); Element payloadElem = document.createElementNS(TASK_NS, "payload"); Element vacationRequestElem = document.createElementNS(VACATION_REQUEST_NS, "VacationRequestProcessRequest"); Element creatorChild = document.createElementNS(VACATION_REQUEST_NS, "creator"); creatorChild.appendChild(document.createTextNode("jcooper")); vacationRequestElem.appendChild(creatorChild); Element fromDateChild = document.createElementNS(VACATION_REQUEST_NS, "fromDate"); fromDateChild.appendChild(document.createTextNode("2006-08-05T12:00:00")); vacationRequestElem.appendChild(fromDateChild); Element toDateChild = document.createElementNS(VACATION_REQUEST_NS, "toDate"); toDateChild.appendChild(document.createTextNode("2006-08-08T12:00:00")); vacationRequestElem.appendChild(toDateChild); Element reasonChild = document.createElementNS(VACATION_REQUEST_NS, "reason"); reasonChild.appendChild(document.createTextNode("Hunting")); vacationRequestElem.appendChild(reasonChild); payloadElem.appendChild(vacationRequestElem); document.appendChild(payloadElem); task.setPayloadAsElement(payloadElem); IWorkflowServiceClient workflowServiceClient = WorkflowServiceClientFactory.getWorkflowServiceClient (WorkflowServiceClientFactory.SOAP_CLIENT); ITaskService taskService = workflowServiceClient.getTaskService(); IInitiateTaskResponse iInitiateTaskResponse = taskService.initiateTask(task); Task retTask = iInitiateTaskResponse.getTask(); System.out.println("Initiated: " + retTask.getSystemAttributes().getTaskNumber() + " - " + retTask.getSystemAttributes().getTaskId()); return retTask;
Section 27.5, "Approving Tasks" of Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite contains the following discrepancies on the types of actions that can be performed on tasks by the various task approvers.
The owner and creator are listed as being unable to perform the purge task action. This is incorrect. Both of these approvers can perform the purge task action.
The Admin is listed as being unable to perform the withdraw task action. This is incorrect. This approver can perform the withdraw task action.
The classpath in the README.txt
file for the workflow-120-SQLIdentityProvider
sample is incorrectly listed as org.sample.providers.ff.DBIdentityStoreFactory
. Replace this value with org.sample.providers.db.DBIdentityStoreFactory
in the jps-config.xml
file for this sample to correctly work.
This and other human workflow samples are available from the following location on the Oracle Technology Network:
http://www.oracle.com/technology/sample_code/products/hwf/index.html