Scenario: Human workflow management
Most business processes involve people in some way. This scenario provides a very high-level view of the concepts and steps for a process in which people play a significant or dominant role. See the documentation under Developing integration applications > Using people interactions for detailed information about the topics introduced here.
A process is composed of tasks. A human task is, quite simply, a unit of work that involves human intervention. Human tasks can be deployed only to Process Server (or IBM Business Monitor for testing) and so this scenario does not apply to WebSphere Enterprise Service Bus.
Human task types
In general, there are three types of human tasks:
For example, in a to-do task, a service assigns an action to a person. A telephone call is routed to a call center and a customer service representative must answer the call to assist the customer.
For example, in an invocation task, a human invokes a service. A potential customer completes an online form applying for automobile insurance and clicks Submit to send the form into the approval process. This task is used in front of a process to prompt a human resource for data that is passed as input to the process in order to to start it.
For example, in a collaboration task, one person assigns a task to another person. A salesperson in a clothing store who has helped a customer choose a shirt hands the shirt to the cashier, who will handle the cash transaction.
Along with the human tasks, you sometimes need administrative tasks to perform actions such as suspending or terminating a human activity that is taking too long to complete.
Human tasks can be stand-alone or inline. Stand-alone human tasks have no interactions with a business process. Inline human tasks are implemented inside a BPEL process. Administrative tasks are always inline. Collaborative tasks are always stand-alone. You can choose whether you want other types of tasks to be inline or stand-alone, although you are likely to use inline tasks most often. See the topic "Inline and stand-alone tasks" for more information about these two types.
In the assembly editor, human tasks are exposed as SCA components with a human task implementation and a WSDL port type as an interface. A participating task offers an interface to another SCA component. An originating task has a reference that is wired to an SCA component such as a business state machine or a business process. A collaborative task has no interface or reference.
Task definition
A task definition is a representation of a human task that includes the following information:
- Who can do this task (roles, people)
- What needs to be done (task name)
- What happens when the task takes too long (escalation)
- How the task will be done (input and output data)
Security
Administrative security is a requirement for workflows that include human tasks. How to turn administrative security on and off in the Process Server administrative console and in IBM Integration Designer is covered fully in the documentation about managing security.
Create a new process with human tasks
You can involve people in a process in a number of ways, depending on what you need to accomplish.
- Create a business process. The process handles the sequence of actions, such as receiving input data and sending it to people who need to take action. All the data that is needed to run the business process with inline tasks is located within the component.
- Add human tasks. Drag a human task implementation onto the assembly editor canvas. The component is created and displayed.
- From the component with a human task implementation, open the human task editor to assign the task and define the functions with the associated service.
- Define roles. Configure roles to specify the set of permissions that you want to grant to members of that role.
- Assign people. Assign users or groups of users to the roles that you defined.
- Define administration. Use administrative tasks to give certain people the rights to perform administrative actions such as suspend, terminate, restart, force-retry, and force-complete.
- Define authorization. Select a BPEL receive or pick activity and define who is authorized to start this activity.
- Call a human task from a service. Drag an invoke on the assembly editor canvas. Create a human task component. Connect the invoke with the human task component interface.
- Define duration and escalation settings to specify how long to wait for a task to complete and which role to notify when it does not complete.
- If required, use internationalization settings to support other languages.
Create a user interface for the people in the business process
People need to work with a client that provides a user interface between the person and the process. Consider the following factors when you set up a user interface:
- Use Business Process Choreographer Explorer. This is the standard client that is delivered with this product. With this client, the task is delivered to the staff member via an HTML-based web page. The web page design is determined by the JSP values that are specified in the user interface settings.
- Use IBM Forms (optional installation). With IBM Forms, you can integrate electronic forms with human tasks. You can generate a client based on forms that you specify in the user interface settings.
- Use WebSphere Portal Toolkit (optional installation). Generate a portlet using the portlet generator or select the portal client to point to an existing portlet.
- Use JavaServer Faces (JSF). You can generate a client from a module, a business process, or a human task. The client generator for human tasks generates a JSF-based web client that is useful for quickly prototyping human task processes or as a starting point for creating a custom client. The JSF client is generated based on data described in the human task interface. It does not need the input defined in the user interface settings.
Deploying the client user interface
You now must deploy the client on the server.
- Use the Business Process Choreographer Explorer to test the human workflow.
- Deploy the client on the server.
- If you generated the client using JSF technology, you deploy an EAR file on the server.
- If you used portal technology, you need to install the Portal server and deploy the client there.
- If you used IBM Forms, you need to do some additional installation work.
- If you linked to an existing client, there are things to set up and configure.
- Extend the API.
Versioning
When you are working with human workflows, versioning is important. You are probably working with long-running processes, so when the process changes, there is a period of time when the old and new process must coexist. You can use WebSphere business process management products to create new versions of your human task so that multiple versions of the same tasks can coexist in a runtime environment.
- Human workflow management considerations
When you are planning a project that includes people in the process, there are some concepts that you need to understand in order to make sensible decisions.- Modeling cases
The case model provides for enhanced dynamic modeling of your business flow.- Developing an application from a model
IBM WebSphere Business Modeler allows you to develop a model of the application that you want to implement and then import that model into IBM Integration Designer where you can refine it into a sophisticated application. You can continue to develop both the model and the application and keep them synchronized.- Sharing assets
To reuse the BPM artifacts created, store them in a central asset repository that you and others can browse.For example, you can use an asset repository to find and reuse the approved version of a process model even if someone else created it.