On July 19th, IBM released IBM Business Automation Manager Open Editions 8.0, which is the continuation of Red Hat Process Automation Manager.
In fact, IBM will continue to the Open Source commitment working on the upstream projects jBPM and Drools, which are the foundation of their enterprise grade product IBM Business Automation Manager Open Editions.
Red Hat Process Automation Manager version 7.13 is the last version released by Red Hat and is based on same open source libraries built of IBM Business Automation Manager Open Editions version 8.0: this makes the two products equivalent. In such way, Red Hat customers are able to smoothly move to the IBM release, because no changes will be required to their projects.
Further information:
This demo aims to show some of the core capabilities of those powerful products.
Any organization has a procurement process similar to this one:
Request Offer
task)Prepare Offer
task)Auto Approve Decision
)Approve
task)Place Order in ERP
or is rejected and passed back to the purchase department for acknowledgement (Order Rejected
task)In the following picture the BPMN process design:
Even if this demo is focused on the process logic, the decision logic is a good example of DMN design.
Order Approval takes Order Information
as input and decides whether or not to approve it.
Open the DMN and analyse the logic starting from Decision Requirement Diagram:
Approve
decision node return true
if the price is less than the target price multiplied by the price tolerance coefficient.Price tolerance
is a Business Knowledge Model which compute the price tolerance coefficient using a decision table.For further information about DMN:
This sub-process aims to simulate an asynchronous integration with an external system and to demonstrate the compensation capabilities of the process engine:
the first task send an email to alert that the order is sent to the ERP system
the task Place Order in ERP
send the order to the ERP using an asynchronous messaging system (e.g. Kafka, JMS, MQTT, etc.)
the event gateway have to possible exit condition:
erp-<process instance id>
.the task compensation email
is executed if the time out event is fired and the compensation is raised.
Import the This repository can be imported in your Business Central following these steps:
https://github.com/jbossdemocentral/rhpam7-order-management-demo-repo.git
)WARNING This demo persists the OrderInfo
data object through JPA. Since the same data object is used in web forms, in order to properly render those forms it's necessary to explicitly enable those classes with the following system property:
<property name="org.kie.server.xstream.enabled.packages" value="org.drools.persistence.jpa.marshaller.*"/>
In order to configure the persistence make sure that the following property is set to an accessible datasource in the application server configuration. (OpenShift Operator sets it up autonomously)
<property name="org.kie.server.persistence.ds" value="java:jboss/datasources/ExampleDS"/>
In order to deploy it in OpenShift, here the Operator configuration (KieApp
yaml file):
spec:
commonConfig:
adminPassword: changeme
environment: rhpam-trial
objects:
console:
jvm:
javaOptsAppend: >-
-Dorg.kie.server.xstream.enabled.packages=org.drools.persistence.jpa.marshaller.*
-Ddashbuilder.kieserver.serverTemplate.default-kieserver.replace_query=true
replicas: 1
servers:
- database:
type: h2
id: default-kieserver
jvm:
javaOptsAppend: >-
-Dorg.kie.server.xstream.enabled.packages=org.drools.persistence.jpa.marshaller.*
replicas: 1
An employee create an order for a required item. To start the process, s/he has to select the item name and the urgency.
Open Track > Task Inbox, there is the task Request Offer that wait for the purchase expert action.
Now, it's the turn of the suppliers to carry on the Prepare Offer task. In the list, there is a task for each supplier selected at previous step. The task description point out for which supplier is the task: e.g. supplier1 prepares offer for Laptop Dell XPS 15
If there are no other tasks for that process instance, the process is completed. In fact, the next task is the Auto Approve Decision: it calls a DMN logic that based on the order features decides whether a manager approval is required to confirm the order.
If a manager is involved, s/he has to take charge of the Approve task, where s/he can approve or reject the order providing a motive.
If the manager rejects the order, the purchase expert receives the Order Reject task to acknowledge the order rejection reason.
The process happy path completes approving the order and send the order information to the ERP system to finalize the order.
It's available a sample dashboard that shows some charts related to the order management business context.
Follow this steps to import the dashboard:
Admin
page (the gear icon on the top right position)Dashbuilder Data Transfer
tileImport
pane select the file dashboard/order-management-dashbuilder.zip
in the current projectImport
buttonIn the Track section of the top Menu, there are two new pages available:
Order Reports shows a set of charts displaying some Key Performance Indicators of the process like in the following screen shot:
Heatmap shows the process diagram, where the tasks are blanket with a cloud which color intensity highlights how often the task is triggered. This is a precious visualization technique for the Business Analyst who can easily spot which area of the process is more stressed.
It is worth mentioning that RHPAM offers many extensions point, so it can be observed in a multiplicity of ways. For example, it can leverage the elastic search technology, as detailed in the following article:
Monitor business metrics with Red Hat Process Automation Manager, Elasticsearch, and Kibana
All the task are assigned to the group kie-server
in order to easily deploy the demo in OpenShift Container Platform.
If in your environment, you have multiple users and roles you can change the assignment accordingly.
kie-server
kie-server
, this task is supposed to be assigned dynamically to the suppliers selected at previous task (Request Offer). If in your environment you can define these users: supplier1, supplier2, supplier3, then you can remove the group and assign the actor to #{supplier}
kie-server
kie-server
Version 7.12.1
Version 7.12
Version 7.11.1
Version 7.11 (RHPAM v7.11)
Version 7.9 (PAM version 7.9):
Version 7.7 (PAM version 7.7):
Version 7.6 (PAM version 7.6):
Version 7.4 (PAM version 7.4):
Version 7.3 (PAM version 7.3):
Version 7.0 (PAM version 7.0):