Project Open 4.x

Project Open Advanced Workflow Part 2: Roles and Responsibilities

Introduction

Project Open ships with a powerful workflow editor that lets you control how a ticket is processed. The workflow editor operates in one of two modes: Simple Process and Advanced Process. This tutorial will cover the Advanced Process.

I’ll break down the Advanced Process tutorial into these parts:

  1. Tasks and Places
  2. Roles and Responsibilities
  3. Arcs and Guards
  4. Automatic Processes
  5. Adding to Helpdesk Ticket Types
  6. Adjusting Dynfields

This section will cover Roles and Responsibilities.

Prerequisites

To successfully run this tutorial, you’ll need:

  1. A working installation of Project Open 4.x
  2. A Project Open administrator ID

My Project Open installation runs on CentOS 6.5 Linux. The examples should run on any modern of Project Open, though. I used the browser Mozilla Firefox under OS X 10.9.3 to capture the screen shots.

Roles and Responsibilities

If you remember, our sample workflow (called Sample 001) defined a different Role per Task. We defined these Roles:

TaskRole
Open TicketOpen Ticket Role
Assign TicketAssign Ticket Role
Work TicketWork Ticket Role
Close TicketClose Ticket Role

The naming convention’s not very exciting, but it’s easy to remember — just take the Task name and add “Role.”

If you forget what Roles you’ve defined (say, if you don’t take my advice about better living through standards), you can follow these steps to see them:

  1. Log into Project Open as a PO Admin
  2. Click on the Admin tab
  3. Click on the Workflow URL
  4. Find and click on your workflow
  5. Click on the Roles “tab”

You’ll see a screen like the one in Figure 1.

Figure-001

 

Figure 1: You can see what Roles you’ve defined here. The Task name is under the Transitions column.

 

Before we get to work, there are three questions we need to answer. These questions apply to most workflows:

  1. What IDs or existing groups in Project Open will be added to each Role?
  2. What IDs or groups will control the assignments for the workflow — or will all of the steps simply be assigned statically (that is to say, will all of the steps simply obey whatever Roles/IDs/groups are assigned to them, or will they be dynamic or settable at run time)?
  3. At what workflow step will we set the other groups (if step #2 is not static)?

I know that’s not as clear as I’d like, so let’s walk through two examples. The first will use all static assignments and the second will use dynamic assignments.

Let’s say we add the following IDs/groups to the following Roles:

  1. Open Ticket Role: Project Open group called Employees (that is, anyone whose ID is a member of the Employees group)
  2. Assign Ticket Role: Bill and Sally (as individual Project Open IDs)
  3. Work Ticket Role: Jane, George, Heather, and Jeremy
  4. Close Ticket Role: Bill, Sandy, and Warren

If we leave the assignments just like that, here’s how a ticket would flow through our Sample 001 workflow:

  1. Almost anyone could enter a ticket in the Open Ticket workflow step (Task)
  2. Bill and Sally could pick up the tickets in the Assign Ticket workflow step (Task), but they could only “approve” the item to flow into the next step; they really couldn’t assign the ticket to anyone specific.
  3. Jane, George, Heather, or Jeremy could begin working on the ticket in the Work Ticket workflow step (Task)
  4. When they were done, Bill, Sandy, or Warren could close the ticket in the Task Close Ticket

For some workflows, this is adequate. For others, though, you may want to give key Roles more authority like the ability to assign individuals from within a group of people to a given Task. As an example of dynamic assignment, we could change the workflow to look like this:

  1. Almost anyone could enter a ticket in the Open Ticket workflow step (Task)
  2. Bill and Sally could pick up the ticket and assign the work specifically to Jane, George, Heather, or Jeremy (all in the Task Assign Ticket); this is called making an Assignment (in the graphical workflow editor)
  3. The individual selected in step #2 could work the ticket in the workflow step Work Ticket (Task)
  4. When that individual finished work, Bill, Sandy, or Warren could close the ticket in the Task called Close Ticket

I’ll present how to do the second example; the first example is a lot like the second, but without the Assignment step.

We’ll begin work with the Sample 001 workflow we started in Part 1.

First, to make sure we start in the same place, perform these steps:

  1. Log into Project Open as a PO Admin
  2. Click on the Admin tab
  3. Click on the Workflow URL
  4. Find and click on the Sample 001 workflow

Your screen should look like the one in Figure 2.

Figure-002Figure 2: This is the text-based workflow exit screen.

Just above the name of the workflow (“Sample 001” above), you’ll see several tabs, like Home, Transitions, Attributes, etc. Find and click on Assignments to see a screen like the one in Figure 3.

Figure-003

Figure 3: This is the screen that lets you assign individuals or groups to Roles.

Our goal will be as follows:

  1. Grant anyone whose ID’s in the Helpdesk group membership in the Open Ticket Role
  2. Grant my ID (tcrow@interstell.home) membership in the Assign Ticket Role (yes, I know interstell.home’s an invalid domain — it’s a great way to make sure my test data doesn’t accidentally get loose in the real world!)
  3. Grant anyone whose ID’s in the Helpdesk group the ability to have a ticket assigned to them
  4. Grant my ID (tcrow@interstell.home) the ability to close a ticket

There’s a combo-box beside each Role (see Figure 3). We can get started by opening the combo-box beside “Open Ticket Role.” You should see Helpdesk near the top. Click on it to see a screen like the one in Figure 4.

Figure-004Figure 4: The Helpdesk group is nearly assigned to the Open Ticket Role.

We’re not quite done yet. We still need to click the Add button. Once you do, the screen should look like the one in Figure 5.

Figure-005

 

Figure 5: The Helpdesk group is now firmly assigned to the Open Ticket Role.

ou can assign a combination of IDs or groups to a role. For example, you could assign the Helpdesk group and two IDs to the Open Ticket Role; you could assign two or more groups. It’s up to you!

In a similar way, we can assign my ID to the Assign Ticket Role. Open the combo-box beside Assign Ticket Role. Find my ID (or yours — I really shouldn’t be in your system). Click on the Add button. The screen should look like Figure 6.

Figure-006

 

Figure 6: Now tcrow@interstell.home is assigned to the Assign Ticket Role.

To finish this step, add the Helpdesk group to the Work Ticket Role and my (or your) ID to the Close Ticket Role. When you’re done, the screen should look like Figure 7.

Figure-007

Figure 7: The Roles have been established!

If wanted a static workflow, we could stop now. But we’re much more ambitious than that! We want to give the all-powerful tcrow@interstell.home ID the ability to choose just who will work the ticket. We do that through the graphical editor.

To get to it, click on the “tab” Home. You should be back on the screen from Figure 2. Now, click on the URL “graphic process editor.” You should see a screen like Figure 8.

Figure-008

Figure 8: This is what our Sample 001 workflow looks like in the graphical editor.

Recall that we want the Assign Ticket Role member at the Assign Ticket workflow step (Task) to be able to select who in the Helpdesk group to assign the ticket to. We can do that by doing this.

Click on the Assign Ticket Task.

Click on the assignment URL (it’s near the top, under “add task” and above “Input Places”). You should see a screen like the one in Figure 9.

Figure-009

Figure 9: We can specify who can assign individuals within a Role using Assignments.

In the combo-box beside “Assign this”, select the Role to be assigned at this stage of the workflow. In this case, it’s Work Ticket Role. Click Add to see a screen like the one in Figure 10.

Figure-010

Figure 10: The individual working the ticket at the Assign Ticket step/Task will be able to select who among the assignees in the Role called Work Ticket Role will actually work the ticket.

Click on Done.
We’re done with Role and and Responsibilities! We know who within our Project Open system can open a ticket, assign the ticket, work the ticket, and close the ticket.

Part 3 of the tutorial will talk about Arcs and Guards. It’ll be time to add conditional logic to our workflow!

terrance
Terrance A. Crow is the Manager of Global Security at a global library services company. He holds a CISSP and has been writing applications since the days of dBASE III and Lotus 1-2-3 2.01.
https://www.interstell.com