Posts

Finally Hands-On

The first BPMN process

Hello there!

I know I’m a bit late on this article, but my presence in the Middle East had more (positive) impact than I anticipated, so I got tied up at work.

Anyway, let’s finally start to use Oracle’s BPM Composer to model our “Request a parking space” process.

As the Akino Fishing Co is a series focused on the Business User, we’ll try to keep our articles as Zero-Code as possible.

Finally… Hands-on!

We’ll start by logging on to BPM Composer

Oracle BPM Composer Login Screen

Oracle BPM Composer Login Screen

After logging in we are taken into the Process Spaces screen. Here, we’ll create a Space for our BPM Initiative. A Space is an container were you group and keep your Business Architecture (BA) and BPMN projects.

You can create as much spaces as you want, to organize your Business Architecture and BPMN projects the way you think it’s best. However, a project that belongs to a given space can’t be “seen” in other spaces, so take that into account. For the purpose of our article, we’ll be using just one space for all processes.

The Process Spaces List

The Process Spaces List

Create a new Process Space

Create a new Process Space

Don’t forget to give it a proper name and a decent description.

Setup the Process Space Name

Setup the Process Space Name

Remember that Oracle’s BPM Suite 12c has a significant amount of documentation and reporting features. If you fill in the corresponding information along the way (this means filling the documentation fields and comments), you can take advantage of these features and generate automatically a lot of documentation. This will save a lot of time on your BPM projects because, even though you may need to extend and/or customize the generated documents, there’s a lot of quality information being provided there.

Setting up permissions to your Space

You can, and should, set the permissions regarding access to your Process Space. You can set them using the edit space option available near the Space icon, by specifying which users or groups have what permission level.

Edit Process Space Permissions

Edit Process Space Permissions

Set Space Permissions

Set Space Permissions

Choose Users and Groups

Choose Users and Groups

Set the permission level

Set the permission level

Press "Share" to set the permission for the chosen user/group

Press “Share” to set the permission for the chosen user/group

There are 3 permission levels:

  • Viewer – This permission only allows processes to viewed, not changed.
  • Editor – This permission allows projects to be edited and changed.
  • Owner – This permission allows not only project editing, but also the ability to create project snapshots (as in VM, where you save the project snapshot), delete the project, share the project with other and, more importantly, deploy a project.

To make it easier for us, we’ll use the project owner for the reminder of the article, but you now know what you can do permission-wise.

Create your process

Now, we’ll create a new BPM project in the Akino Fishing Co. Space.

Click on the ‘+’ icon in the BPM Project creation tool on the right of the process composer screen

Process Composer - Project Creation Area

Process Composer – Project Creation Area

Now, give it a suggestive name, such as “Facilities Access and Use Requests” and click Save. Notice that we didn’t create  a BPM project with the “Request a parking space” name. This is because BPM projects typically have more than one BPM process, so you should name it something more high-level that can contain several, close-related, processes. For our process, we intend to group here all the requests to use Akino’s facilities, starting with the “Request a parking space” process.

Process Composer - Create a new BPM Project

Process Composer – Create a new BPM Project

Process Composer - BPM project created

Process Composer – BPM project created

Once the project is created, click on it to access its details. You’re then presented with the project area, where you can create all your project artifacts, create project snapshots and set the organization’s departments and roles. You can check it out more in detail in our previous post.

You first need to be able to edit the project. Find the pencil icon and click on it. From then on, you’ll be able to edit your project and create, edit or delete your artifacts.

Process Composer - Edit the process

Process Composer – Edit the project

Now, the ‘+’ sign should turn blue, and you’re able to create your “Request a parking space” process, in the processes tab.

Create a new Process

Create a new Process

Don’t forget to place meaningful and “as complete” as possible descriptions. These will really save you a lot of work down the road. Press Create and voilá… your first BPMN process is created. Congratulations!

Process Created

Process Created

Now click on it and you’ll access the actual model. As you can see, it’s empty. In a few minutes, the first iteration will be done.

The BPMN modelling canvas

The BPMN modelling canvas

The modelling process is in fact quite simple. All you have to do is drag-and-drop your “lego pieces” (remember the last post?) from the toolbox in the right into the canvas.

You’ll get to know the full range of  BPMN artifacts (Interactive Activities, Automated Activities, Decision Splits, Events…) as we get along with our articles. For this first iteration, we’ll use:

  • Interactive Activities (performed by humans)
    • User Task – Typical task to be performed by someone (a human)

      A "normal" user interactive task

      A “normal” user interactive task

    • Initiator Task –  User tasks that have special characteristics that allow to start processes (even though they’re placed after the “Start” symbol)

      The process Initiator Task

      The process Initiator Task – notice the green triangle

  • System Activities
    • Service Activities – Calls a service synchronously and collects its result.

      The Service Task - Calls integration point synchronously

      The Service Task – Calls integration point synchronously

    • Notification Activities – Uses a special messaging service to send E-mails or SMS

      A notification Task can be used for communication with an entity, by e-mail or SMS for instance

      A notification Task can be used for communication with an entity, by e-mail or SMS for instance

  • Decision Splits
    • Exclusive gateway – Evaluates a condition and based on that lets the process follow one, and only one, of the paths. Always contains a default path, in case the condition doesn’t evaluate correctly to any of the defined paths.

      The Exclusive Gateway

      The Exclusive Gateway

Design your process according to the description

If we go back to our previous post you’ll remember that we picked up a lot of information from the process description

  1. Verbs – filling form, submitting form, check available spaces, returns message, submitting contact information, create a task, generate e-mail or SMS,
  2. Nouns – Request, Requester, Form, Name, Company Name, Period Date, Period Start Time, Period End Time, External Entity, Employee, Parking Space, Message, E-mail, Mobile Number, System, Task, Concierge
  3. Decisions – if there are any parking spaces, if the requester is NOT an Akino Fishing Co. employee, if the system returns that the requester can take parking space X, if the system returns that there are no spaces available, if the requester chooses to submit the contact information, “if they can, they’ll mark the task as OK”, “if they can’t, they’ll mark the task as NOT OK”, if the system doesn’t return anything
  4. Time Associations – This process starts with a request, the system will then check, “from then, the system will generate an e-mail”

These will map with our BPMN artifacts and help us organize them in the canvas. For instance, verbs map into activities.

  • Filling form and submitting form refer to the same stage of the process, which is the start -> Initiator Task
  • Check available space is something that the system will do -> Service Task
  • System returns a message to the user -> Notification Task
  • Create a task to a concierge group -> User task
  • Generate e-mail or SMS -> Notification Task

As you can see, this made it pretty easy. Of course, you can read through the complete description again, but this will help you do things quicker

The same can be done for the other types of information.

So you’ll start creating your process by placing an initiator task right after the Start symbol

The initiator task is placed right after the process start

The initiator task is placed right after the process start

You can then edit its properties, by right-clicking over it. This will show the context menu for this type of BPMN artifact. Choose Properties and set its name and ensure the task type is set to initiator. If it’s not, change it.

The task context menu

The task context menu

Editing Task properties

Editing Task properties

Task Type - Initiator set

Setting the Task Type to initiator

After this is done, go to the next activity, which is to check the availability of parking spaces given the information filled by the requester. Do the same as you did for the Initiator task

System Task Properties

System Task Properties

Then you reach the first decision point, where you’ll evaluate which process path to follow. First decision is based on whether the requester is or isn’t an Akino Fishing Co. employee. We’ll start modeling the branch that deals with Akino Employees.

The Gateway Properties

The Gateway Properties

Branches Editing

Branch Editing

The employee brand should look something like this. See if you can understand the process, as it is very simple.

The Parking Space process with the employee requester part modeled.

The Parking Space process with the employee requester part modeled.

So this is what the process would be if it was only available for employees. Now let’s add the remaining steps. For starters, all of these activities are performed by the system itself, except the initiator task, which is done by a person. But the question is, how do we treat this person? What’s its role in the process? You can set several roles in a process, typically assigned to parts of the process called lanes. Each lane typically holds the process activities that are performed by its associated role. Most of the work is done by the requester, but in some cases, a concierge role is also involved. So let’s create these roles.

You can right-click over the lane name, choose Properties and create the role Requester. Notice that the lane changed names.

Choosing the Process Role for that lane

Choosing the Process Role for that lane

The requester Role

The requester Role

You can also create new lanes to assign more roles. In the case of the concierge role, will add a new lane, change it to the concierge role and then place the necessary tasks in this lane. Notice that Oracle BPM will use preferably the roles associated with each lane to assign a task to a role/group.

Adding more lanes

Adding more lanes

By default, the lane role is not assigned

By default, the lane role is not assigned

Creating a new role

Creating a new role “Concierge”

Your process model first iteration is complete

This is how the process looks after the first modelling iteration

This is how the process looks after the first modelling iteration (note: where it reads process owner (lane role) it should read Requester)

Note: This isn’t the most optimized process model. There are other ways of modelling this process which result in better performance, and more reuse of the artifacts. The focus of this model was on easy understanding, not process optimization.

So we designed our first BPMN 2.o model on Oracle BPM Suite.

It still doesn’t execute, it’s just a diagram, but we’ll get to that.

 

On the next post, we’ll start to see what can we change to improve it a bit and start working on the actual implementation so that the process is executed. Stay tuned.

Cheers,

Maverick

Post header image by Katie Inglis

Tools and prep for work

Know your tools and prepare for work

Hi and welcome to another article of the Akino Fishing Company BPM initiative series.

Last week we described our pilot process in plain english. We wrote what is the process, what does it do, what are the expected inputs and outputs and how the information is processed.

Today we’ll start with that description, do a little preparation work around it and we’ll get to know the tools we’ll be using to build our BPM project.

Preparation for Work

A quick recap

Parking Space

Parking Spaces. Image by Maarten

So, our pilot process is the now famous “Request a parking space” process. After starting with a very simple/direct description (the happy path):

This process starts with a request from someone, either internal or external to the company. The requester fills in a small form with his name, his company name and the period in which he will need the parking space. The system will check if there are available parking spaces in that period and returns a response to the requester: Either “Please park on parking space X” or “We’re sorry but there are no parkins spaces available for that period”

we then elaborated it, adding depth and “not so happy” paths, without going overboard with the complexity to reach this:

This process starts with a request from an external entity or an employee, by filling and submitting a simple form with the following fields:

  • Name
  • Company name
  • Period to use the parking space
    • Date
    • Start Time
    • End Time

The system will then check if there are any parking spaces available for that period.

If the requester is NOT an Akino Fishing Co. employee and

  • The system returns that the requester can take parking space X, then
    • The requester is presented with a message stating “Your parking space is reserved. Please park on space X. Thank you”
  • The system returns that there are no spaces available, then
    • The requester is presented with a message stating “We’re sorry but currently there aren’t any parking spaces available in the requested period. Would you care to leave us your contacts and we’ll try to arrange a parking space for you?”, together with 2 fields: e-mail and mobile number.
    • If the requester chooses to submit the contact information, the system should create a task to a group of people, called “concierge”, that will try internally to arrange a space.
      • If they can, they’ll mark the task as OK and give the information about the parking space number. From then, the system will generate an e-mail and/or an SMS to the requester, depending on the contact data they filled in, stating that they can use parking space X.
      • If they can’t, they’ll mark the task as NOT OK. From then, the system will generate an e-mail and/or an SMS to the requester, depending on the contact data they filled in, stating that despite the efforts they couldn’t arrange a space.
  • The system doesn’t return anything, then
    • The requester is presented with a message stating “We’re sorry but we can’t check parking space availability right now. Would you care to leave us your contacts and we’ll try to arrange a parking space for you?”, together with 2 fields: e-mail and mobile number.
    • If the requester chooses to submit the contact information, the system should create a task to a group of people, called “concierge”, that will try internally to arrange a space.
      • If they can, they’ll mark the task as OK and give the information about the parking space number. From then, the system will generate an e-mail and/or an SMS to the requester, depending on the contact data they filled in, stating that they can use parking space X.
      • If they can’t, they’ll mark the task as NOT OK. From then, the system will generate an e-mail and/or an SMS to the requester, depending on the contact data they filled in, stating that despite the efforts they couldn’t arrange a space.

If the requester is an Akino Fishing Co. employee and

  • The system returns that the requester can take parking space X, then
    • The requester is presented with a message stating “Your parking space is reserved. Please park on space X. Notice that you may need to give up your seat, if it’s deemed necessary to receive visitors.Thank you”
  • The system returns that there are no spaces available, then
    • The requester is presented with a message stating “We’re sorry but currently there aren’t any parking spaces available in the requested period. Thank you”
  • The system doesn’t return anything, then
    • The requester is presented with a message stating “We’re sorry but we can’t check parking space availability right now. Check back later. Thank you”

This is the process we’ll model.

The Analyst Method

At Red Mavericks we like to exercise our creativity, do things out of the ordinary, but sometimes, we need to do things with a certain consistency, with a certain methodology. For instance, to pickup information from a plain English description into structured information we follow a certain method. Now, again, there are other ways to do it, but we like to do it like this.

We go through a series of steps:

  1. Identify the verbs in the process description
  2. Identify the nouns in the process description
  3. Identify decision words (if, then, else, while, when, until, or, and, not)
  4. Identify time associating words (after, before, during, at start, in the end, prior)
  5. Build a table with your findings, identifying for each finding their type(1, 2, 3, or 4) and try to answer the 3W1H (What, Who, When and How)

it may not seem like it at the moment, but 80% of what you need to know to model your process is right here. Now eliminate any repitions that mean the same. For instance, in the description you have “…The requester is presented with a message stating “We’re sorry but currently there aren’t any parking spaces available in the requested period. Would you care to leave us your contacts and we’ll try to arrange a parking space for you?”, together with 2 fields: e-mail and mobile number. If the requester chooses to submit the contact information…“. In this case keep only e.mail and mobile number, as the contact information already refers to these two fields.

I’ll let you do the work for now, and identify them for yourself. Come back in 10 minutes when you’re finished. 🙂

10 Minutes

You should end up with a list similar to this one, give or take a few:

  1. Verbs – filling form, submitting form, check available spaces, returns message, submitting contact information, create a task, generate e-mail or SMS,
  2. Nouns – Request, Requester, Form, Name, Company Name, Period Date, Period Start Time, Period End Time, External Entity, Employee, Parking Space, Message, E-mail, Mobile Number, System, Task, Concierge
  3. Decisions – if there are any parking spaces, if the requester is NOT an Akino Fishing Co. employee, if the system returns that the requester can take parking space X, if the system returns that there are no spaces available, if the requester chooses to submit the contact information, “if they can, they’ll mark the task as OK”, “if they can’t, they’ll mark the task as NOT OK”, if the system doesn’t return anything
  4. Time Associations – This process starts with a request, the system will then check, “from then, the system will generate an e-mail”

The Tools and Artifacts

My Lego

Designing a BPMN process model is a bit like playing with Legos. You have your building blocks and you have rules to connect them (in the Lego blocks the rules are Physics). You can configure and change your blocks, so that their behavior changes, which is something you can’t do with your normal Legos. Consider it a bonus.

BPMN: Business Process Modelling Notation.

It’s a notation to represent process models that ensures a relatively easy way of understanding a process and that allows an actual implementation. Oracle BPM Suite uses BPMN models to represent and actually automate and execute processes, so there’s never a gap between what is designed and what is actually running. And because it’s a standard, it ensures easy import/export from several tools because the process models are the same.

As with all games, you first need to know the pieces you use, the rules of the game and the playing field/board, so that’s what we’ll do now.

There are 6 different types of pieces/blocks

  • Tasks to be performed by users
  • Automated tasks to be done by systems
  • Groups of tasks built together that do something self contained – subprocesses
  • Decision points where, depending on conditions, the process does different things
  • Tasks that represent events
  • Measurement instruments, used to collect information on specific parts of the process

There are several subtypes that belong to a given block type, each with a specific behavior. For instance, users tasks can be:

  • A “normal” user task, where a user fills in the associated information and registers the task result
  • For your information (FYI) tasks, meant to give some information to the user and for him to confirm he received it. This task type doesn’t wait for a user intervention to allow the process flow to continue
  • The initiator task, which has built-in capabilities to allow someone to start a process on their own
  • Approval cycle tasks, a.k.a. Management tasks, which are tasks that need to be performed by several persons inside an approval cycle. For instance, I respond, my superior confirms my decision, his superior also confirms and so on.
  • Voting tasks, which consider that the task is performed when a voting result is reached. You can configure the expected voting result. This task is sent to a group of people. For instance, you can set the if 3 out of 5 people vote yes, the task is marked as done with a “Yes” result.
  • Manual tasks are tasks that are performed without any control of any system. We use manual tasks to represent work that needs to be done, but without actual interaction with any system or the BPM Suite.

We’ll provide a list of the most common building blocks of Oracle BPM Suite in a nice poster so that you can print it, and a wallpaper for your PC and mobile devices. It will be available in the next few days.

Connecting the description with your Lego pieces

Now that you know your Lego pieces, let’s connect them to what we found out about our process description:

  • The verbs with tasks (automated and human)
  • The nouns with roles, groups (refers to “who”) or data (refers to “what”)
  • Decision words with decision points (gateways)
  • Time associated words order the previous points (one after the other)

The Oracle Process Composer

We know our process, we know our building blocks, we now need to know our playing field: the Oracle BPM Process Composer.

The Oracle BPM Process Composer

The Oracle BPM Process Composer

In the latest 12c version, the process composer suffered a major overhaul, with a large number of new features brought in, a new Business Architecture area, and a man improvement on robustness, performance and ease of use. You can now really do a complete end-to-end process, from design to modelling, to implementation, to testing, to deployment without the use of any other tool (No more of that JDeveloper – good news to business analysts) and in a very easy way. That’s what we’ll be focusing on this pilot project: how to get business users, not IT staff, to do all of these things by themselves.
So, the process composer is now a tool divided into two areas: the business architecture area, suitable to model an Enterprise-wide BPM initiative, with the use of enterprise process maps, strategy models and value chain diagrams;

The Business Architecture part of Process Composer

The Business Architecture part of Process Composer

and the BPM project area, suitable to model, implement and deploy BPM processes.
We’ll be working on the BPM project area for now.

Process Composer BPM Project Area

Process Composer BPM Project Area

Let’s take a closer look at it.

The BPM project area

This area is divided into logical concepts:

Process Composer's BPM project area detail

Process Composer’s BPM project area detail

  1. Artifacts type choice – where’s you choose what kind of artifacts do you want to see, create or change
  2. Artifacts list – the list of already created artifacts
  3. Overall definitions – Enterprise and process wide definitions
  4. Project settings – Project definition and settings
  5. Project File Management – toolset to allow project file management and project actions

We’ll need most artifacts, so we’ll learn about the assets as we go along with our pilot project.

Wrap up

You now know everything you need to start designing your process in the Oracle BPM Suite Process Composer. Our next article will cover the first part of a step-by-step build of our pilot process.
Next week I’ll be travelling, so next article will probably only go out in a fortnight, by the end of December’s 1st week.

Cheers,

Maverick

Post header image by zzpza