Reassigning a Task to Itself

Project Open's powerful advanced workflow editor lets you build Tasks that have the ability to choose who will work on a later Task. It does this by letting the user in the earlier Task select Roles that govern who can perform specific later Tasks. Consider the simple help desk workflow called Sample 003 that's shown in Figure 1. The people who work on the Task called Assign Tasks get to choose who gets to perform the Task Work Ticket.

That arrangement works fine if the flow goes from one Task to another. But what if you want to let a Task loop back to itself? For example, what if you want to build a help desk workflow where the person working the ticket can assign it to another worker? Maybe to complete the ticket? Maybe to ask for help/expertise?


Figure 1: This is Sample 003, our simple help desk flow that can assign work back to the Work Ticket Task.

This is a straight forward workflow. The work flows from top to bottom. Though you can't see it, the Role "Ticket Assigners" in the Task "Assign Ticket" can choose who works the ticket, and that Role is called "Ticket Workers." So far, so good. A person enters the ticket, the people in the Role "Ticket Assigners" can see the ticket, and then they can assign the ticket to an individual who works on it in the Task "Work Ticket."

You can see in the diagram that there are two Arcs leaving "Work Ticket": an Arc leading eventually to the Task "Close Ticket (Automatic)" and one that eventually leads back to "Work Ticket." However, when I initially created the workflow, the individual working the ticket is the only one who can ever be assigned to it. That's because the workflow editor's UI won't allow you to choose "Ticket Workers" as an assignment from the "Work Ticket" Task. Figure 2 shows what I mean.


Figure 2: The workflow editor won't let you choose Ticket Workers!

The reason seems to be that Project Open won't let you make an assignment if the Task belongs to that Role. The workaround, though, is easy:

  1. In the workflow graphic editor, click on Task named "Work Ticket"
  2. Click on the "edit" URL
  3. Change its Role to something else, like "Ticket Assigners"
  4. Save the change
  5. Click on the "assignment" URL
  6. Expand the "Assign This" combo-box and notice that "Ticket Workers" is there now (see Figure 3); select it
  7. Click on "Done"
  8. Click again on the "edit" URL
  9. Set the Role back to "Ticket Workers"
  10. Click on the "Update" button


Figure 3: We can trick the workflow editor into doing our bidding.

Now, when someone is assigned the "Work Ticket" Task, if they say they didn't complete it when they close their step in the workflow, they can reassign it to someone who can give it a shot.

I hope this helps!