Use of task node

From OpenKM Documentation
Revision as of 12:48, 3 December 2012 by Pavila (talk | contribs)

Jump to: navigation, search

Now we are going to see how you can create task in jBPM and assign them to actors who will perfom the task. Actors also can select a pending task and assign to himself.


Nota clasica.png Source Eclipse project at File:Workflow samples.zip.

First of let's create a process definition called "task" with an initial node, a task node and a end node:

Jbpm sample task.png

As seen previously, a task node represents one or many tasks executed by a human person. When the process execution arrives to a task node, an task instance is created in the workflow member list. This node will enter in a wait state until the user notify the conclusion of the task.

In order to create a task in a task node, go to the properties of this node. In the tasks table click on the right mouse button and select New Task. Give a name to this task, for example "something_to_do" and a optional description. In the Assignment tab we can see different ways to assign a task:

  • Actor: Here we put the actorId. This is a String which identify the actor who will perform the task. When the process flow enters in the task node, the task is created and is added to the list of this actor's pending task.
  • Pooled Actor: A sequence of actorId separated by commas. When this task is created is not assigned to any actor. An actor should get it from the list of pooled tasks. Once the actor get the task, it is added to his own list of pending tasks.
  • Swimlane: A swimlane defines an assignment which is the same for several tasks in a process.
  • Expression: This is an assignment expression evaluated by the jBPM identity component. Can make assignment by user or role.

In this case we are going to assign the task to an user called "yoda":

<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="task node">
    <start-state name="start">
        <transition to="task"></transition>
    </start-state>

    <task-node name="task">
        <task name="something_to_do">
            <assignment actor-id="yoda"></assignment>
        </task>
        <transition to="end"></transition>
    </task-node>

    <end-state name="end"></end-state>
</process-definition>

But changing task assignment from the graphical editor is more simple. Let's see this sample workflow with a task node called "HR" which have a task called "HR Assign". These are the steps to change the task assignment:

Jbpm node task assignment.png
  1. Select the task node
  2. Click on the properties tab
  3. Click on the task section
  4. Select the Assignment tab. Here you can select between several ways of assignment. The most simple is the Actor, which is mapped with an OpenKM user.