Some organisations use Oracle BPA Suite (which is based on ARIS) to model their organisation’s business processes from the highest level (strategy) down to the operational process level. Such organisations will often follow the ARIS methodology, or some customised version of it, and typically have 4-6 levels of process models, starting with a structuring model at the top (Level 0), moving through a number of layers of Value Added Chain Diagrams, to Event Process Chains, and then sometimes to BPMN for the lowest layer – which is the operational process layer.
There are a lot of benefits to organisations in using this structured modeling approach in terms of visibility into their processes, optimisation/improvement of processes, especially through approaches like LEAN or Six Sigma, and documentation and compliance, just to name a few.
Organisations who adopt this approach may wish to take their operational processes and make them available to their integration developers so that they can be automated and have their execution managed by Oracle BPM Suite. This is the focus on this post.
JDeveloper can open a process from BPA so that it can have the ‘implementation’ tasks completed and can be deployed into an execution environment. This capability is enabled by installing an add-on from the BPA installation media.
In JDeveloper, you need to select Check for Updates from the Help menu, then select the option to Install from a Local File.
Click on the Browse button and navigate to the pcbpel directory inside the addons directory in the root of the BPA 126.96.36.199 install media. Select the pcbpel_bundle.zip file and click on Open.
Then click on Next, Finish to install the add-on. JDeveloper will then prompt you to restart itself. After it restarts, repeat this same process and choose the bpm_bundle.zip and install it. After the second restart, JDeveloper is properly configured to be able to read BPMN models from BPA.
Here is an example of a simple BPMN process in BPA:
This process is part of a bid preparation process. It has four roles: Bid Manager, Architect, Writer and Reviewer. And it has some decisions points and looping.
Once a process model in BPA is in a state where we are ready to implement it, i.e. after we have done all of the necessary analysis, used the simulation capability to optimise the performance of the process, got the necessary approvals, etc., we share it by right clicking on the process background to open the popup context menu, and then selecting Share Blueprint from the SOA sub-menu.
After a few moments, BPA will ask if you want to validate the model. You must validate the model before you share it, click on Yes to continue.
The validation will run, and a report will be displayed (like the one below) to tell you if there are any issues. If your BPMN model was not correct, for example, if you had a decision point with no out paths, you would get an error here and would not be able to proceed until you fixed that error.
After you have reviewed the validation report, you can close it. A message will be displayed to let you know the process is ready to access from JDeveloper:
In JDeveloper, create a new Application to hold our process by selecting New from the Application menu. In the wizard, give your application a name, I called mine RedStackBPAExample, and choose BPM Application as the application template. Then click on Finish.
This will create a new application, containing an empty project. Now we want to open the process from BPA. To do this, we select New from the File menu. The New Gallery will be displayed, as shown below. Select BPM Tier in the Categories on the left hand side, and then select BPM Project from BPA on the right hand side. Then click on OK.
The Create BPM Project from a BPA project wizard will open. Give your project a a name. I called mine PrepareBid. Then click on the Browse button next to the BPA Server field to browse the BPA database and find a process.
Since this is a new BPA database that we have not used before, we will need to tell JDeveloper how to connect to it. Click on the green plus icon to add a new connection.
In the BPA Server Connection dialog, you will need to provide the connection details for the BPA server and database you are using. In my case, I have BPA installed on the same machine, so I can choose the Local Server option. If you have a central BPA server, you would need to choose Remote Server and provide the connection details.
You will also need to give your connect a name, I called mine RedStack, and choose the correct database from the dropdown list called Database. You will also need to provide the Username and Password to connect to BPA. If you have not set these up specifically, the defaults are system and manager respectively.
When you have completed the necessary details, press OK to continue. If you wish, you can use the Test tab to make sure you have everything correct. To do this, switch to the Test tab and press the Test Connection button. If you have set the parameters correctly you will see a message like the one below.
Now you can navigate through your database to find the process model you just shared a few moments ago. Select the model you want (as shown below) and press OK and then Finish to open it.
After a few moments, JDeveloper will open and display the process as shown below.
Now the integration developer can carry out any necessary tasks needed and deploy the process to an execution environment. In this example, he/she would just need to create the human task definition and user interfaces, update the conditions to use the outcomes of the tasks and then deploy the process. It would also be necessary to assign the roles (Bid Manager, Architect, Writer, Reviewer) to some actual users so that they could run the process.