Project Open 3.5.x

Project Open Advanced Workflow Tutorial Part 1

Project Open Advanced Workflow Part 1: Tasks and Places

Revised March 31, 2011

Terrance A. Crow


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 Tasks and Places.


To successfully run this tutorial, you’ll need:

  1. A working installation of Project Open; should work as well.
  2. A Project Open administrator ID

My Project Open installation runs on CentOS 5.5 Linux. The examples should run on any installation of Project Open, though. I used Apple’s Safari (under OS X 10.6.7) to capture the screen shots.

Tasks and Places

You can get to the workflow editor a couple of different ways. I’ve gotten used to this path:

  1. Log into Project Open with a PO Admin ID
  2. Click on the Admin Tab
  3. Click on the Workflow URL
  4. At the bottom of the screen, click on the New Advanced Process URL

When you do, you should see a blank editor as shown in Figure 1.







Figure 1: This is the blank Advanced Processor screen.

From here, you should enter a unique workflow name. For our example, we’ll enter Sample 001. The Description, as indicated in Figure 1, is optional.

Click on Add.

Figure 2 shows what you should see next.





Figure 2: This is a blank Advanced Workflow.

There are only two circles on screen right now. Those circles are called Places. To me, Places only make sense in the context of Tasks, so I’ll describe Tasks first.

Let’s say we want to build a simple workflow with these steps:

  1. Open a ticket
  2. Assign the ticket
  3. Work the ticket
  4. Close the ticket

Project Open’s workflow editor calls those steps Tasks. So, a Task is a specific piece of work within a workflow. We’ll build our first workflow with the 4 tasks outlined above.

Places are decision or action points between Tasks. The two circles you see in Figure 2 are special, built-in Places that all workflows have: S for Start and E for End. The workflow editor links the Start Place to a Task, then the Task to another Place, then that Place to another Task, and so on until you finally link the last Task to the E Place.

Both Tasks and Places can have any name you like, provided the name’s unique within the workflow. In other words, you can’t have two Assign steps. I like to standardize names, because I’m a firm believer that standards can make our lives better (when used judiciously). So, I use these rules to name my Tasks and Places:

  1. Use a verb to describe the Task: Open Ticket, Assign Ticket, Work Ticket, or Close Ticket
  2. Use the format “Ready to <Next Task>” for Places: Ready to Assign Ticket, Ready to Work Ticket, and Ready to Close Ticket

Again, this is just the approach I’ve taken, and you should feel free to use whatever approach works for you.

First, we’ll build our workflow’s Tasks. We’ll setup these Tasks:

  1. Open Ticket
  2. Assign Ticket
  3. Work Ticket
  4. Close Ticket

Start by clicking on this URL:

add task

You should see a screen that looks like Figure 3.








Figure 3: Creating a Task in Project Open.

For “Task name,” enter the Task’s name from our list. We’ll start with Open Ticket.

“Trigger type” describes how the Task will be fired. We’ll deal with two types in this tutorial: User (now) and Automatic (in a later part). User means a human will take some action to initiate this Task. Automatic means Project Open itself will take the action. We’ll use an Automatic trigger in a later part of this tutorial to automatically close a ticket. For now, leave it set to User.

“Role” gives you a way to control which user ID or group of IDs can perform a given Task. The default is “– None –”, which means anyone can do it. You can call a Role anything you like, and I like to use a naming convention: <Task Name> Role. So, for Open Ticket, I’ll call this Role “Open Ticket Role.” Of course, you can name it anything you like.

To create a new role, select “– Create new role –” from the combobox.

“Time estimate” is just what it says — a place for you to record how long you think a task should take. I typically leave it blank.

“Instructions” might be helpful for folks as they walk through the workflow. For our example, I’ll enter “Open the ticket and make it available for assignment.”

When you click the Add button, Project Open will redisplay the page as shown in Figure 4.









Figure 4: You can create your own Role names.

Since we entered “– Create new role –” in the Role field, Project Open prompts us for the name of the new Role. I’ll enter “Open Ticket Role.” Clicking on Update will save the Task and will display a screen like the one you can see in Figure 5.





Figure 5: The Task “Open Ticket” joints the S and E places.

Repeat the above steps to add these Tasks:

  1. Assign Ticket
  2. Work Ticket
  3. Close Ticket

Use the same naming convention described above for the Roles. When you’re done, your screen should look like Figure 6.





Figure 6: The Tasks have all been created.

Now it’s time to create our Places. As I mentioned above, we’ll create the following Places:

  1. Ready to Assign Ticket
  2. Ready to Work Ticket
  3. Ready to Close Ticket

Start by clicking on this URL:

add place

You should see the simple screen shown in Figure 7.






Figure 7: Creating a Place.

For “Place name”, I’ll enter “Ready to Assign Ticket.” When you click the Add button, you should see a screen like the one in Figure 8.





Figure 8: Places are little circles; they’re hard to read compared to Tasks.

You’ll notice that compared to Tasks, Places are hard to read. That’s why I don’t like to add them all at once like I did for Tasks. Instead, I like to start linking them to Tasks right away.

The way to link a Place (like S) to a Task (like Open Ticket) is to use an Arc. An Arc is an action connecting Places to Tasks and Tasks to Places. Remember that all workflows must start with the Place S. We’ll start by clicking on the S Place. It should turn blue as shown in Figure 9.





Figure 9: Clicking on a Place or Task turns it blue (or highlights it).

In the HTML table above the graphic workflow editor, you’ll notice two URLs: add arc and delete arc. Click on this URL:

add arc

The screen should change to look like Figure 10.





Figure 10: Once you start to add an Arc, Project Open grays out invalid destinations.

Notice that the E Place and the new Ready to Assign Ticket Place we just added are now gray. Project Open’s telling you that you must select a Task as the destination for the Arc that starts with the S Place. So, click on this Task:

Open Ticket

The screen should now look like the one in Figure 11.





Figure 11: The S Place is now connected to the Task named Open Ticket.

You can now connect the Open Ticket Task to the Place named Ready to Assign Ticket by doing this:

  1. Click on the Task Open Ticket
  2. Click on the URL add arc
  3. Click on the Place Ready to Assign Ticket

When you finish that, the screen should look like the one in Figure 12.






Figure 12: The Task named Open Ticket is now connected to the Place called Ready to Assign Ticket. It’s connected by an Arc.

It’s now easy to connect the Ready to Assign Place to the Task called Assign Ticket. Just follow these steps:

  1. Click on the Place Ready to Assign
  2. Click on the URL add arc
  3. Click on the Task called Assign Ticket

As you might expect, the screen should look like Figure 13.







Figure 13: Another Task joins our new workflow.

We can finish the first stage of our workflow by following these steps:

  1. Adding a Place named Ready to Work Ticket
  2. Clicking on the Task Assign Ticket
  3. Clicking on the URL add arc
  4. Clicking on the new Place called Ready to Work Ticket
  5. Clicking on the Ready to Work Ticket Place
  6. Clicking on the URL add arc
  7. Clicking on the Task called Work Ticket
  8. Adding a Place named Ready to Close Ticket
  9. Clicking on the Work Ticket Task
  10. Clicking on the URL add arc
  11. Clicking on the Place called Ready to Close Ticket
  12. Clicking on the Place called Ready to Close Ticket
  13. Clicking on the URL add arc
  14. Clicking on the Task called Close Ticket
  15. Clicking on the Task called Close Ticket
  16. Clicking on the URL add arc
  17. Clicking on the special Place named E

Your screen show now resemble Figure 14.









Figure 14: The basic outline of the workflow is now complete.

At this stage, we now have a rudimentary workflow. The Roles are defined but not populated; there is no conditional logic; everything’s manual. But the basic outline is present.

In Part II of the tutorial, I’ll discuss how to populate the Roles we’ve defined.

Terrance A. Crow is the Senior Security Engineer 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.