Manual tasks in a BPEL process

Can I incorporate manual tasks into a BPEL process?

    Requires Free Membership to View

The BPEL spec, at the moment, does not provide any built-in support for manual tasks. On the other hand, BPEL provides great support for asynchronous Web services, which allows manual tasks to be carried out with the use of a task service. Such a task service and the BPEL spec are 100% compatible. The task service can be provided by the BPEL engine vendor, a 3rd-party package or even implemented by the end-user. Without a task service, human intervention in processes has to be coded in a one-off manner. Customers are typically given the choice which option fits their needs best.

The advantage of using a task service out of the box is its ease of use and clean integration with the BPEL spec today. A task can carry standard properties, such as creator, assignee, duration, etc, as well as support arbitrary data as a payload. Customers who opt to port their applications to another BPEL platform, can either (1) Implement their own task service with the same API (the task service publishes a WSDL like any other Web service), (2) continue using the task service as a legacy, yet fully interoperable Web service, on the original BPEL engine, or (3) Modify their processes to not use the task service.

The following BPEL code example shows how to define a user task as part of a process with a task service:
<!--  initiate the remote process -->
<invoke name="invokeTaskService"
    partnerLink="ConfirmationTask"
    portType="service:TaskService"
    operation="initiateTask"
    inputVariable="taskRequest"/>

This was first published in February 2004

Join the conversationComment

Share
Comments

    Results

    Contribute to the conversation

    All fields are required. Comments will appear at the bottom of the article.