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.
We’ll start by logging on to BPM Composer
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.
Don’t forget to give it a proper name and a decent description.
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.
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
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.
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.
Now, the ‘+’ sign should turn blue, and you’re able to create your “Request a parking space” process, in the processes tab.
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!
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 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)
- Initiator Task – User tasks that have special characteristics that allow to start processes (even though they’re placed after the “Start” symbol)
- System Activities
- Service Activities – Calls a service synchronously and collects its result.
- Notification Activities – Uses a special messaging service to send E-mails or SMS
- 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.
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
- Verbs – filling form, submitting form, check available spaces, returns message, submitting contact information, create a task, generate e-mail or SMS,
- 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
- 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
- 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
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.
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
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 employee brand should look something like this. See if you can understand the process, as it is very simple.
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.
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.
Your process model first iteration is complete
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.
Post header image by Katie Inglis