In previous article I talked about Traditional vs Modern BPM and now I'd like to show what does that mean - a modern BPM in action. For this I used upcoming feature of jBPM 7 that provides case management capabilities that were already introduced in Case management series that can be found here.
So this is another iteration around Order IT hardware case that allows employees to place requests for new IT hardware. There are three roles involved in this case:
So once you logon you will see the home screen - the purpose of this system - to order new hardware
Here you can see all available suppliers that can deliver IT hardware:
At any given time you can take a look at orders
Order details page is build from three parts:
So this is another iteration around Order IT hardware case that allows employees to place requests for new IT hardware. There are three roles involved in this case:
- owner - the employee who placed the order
- manager - direct manager of the employee - the owner
- supplier - available suppliers in the system
It's quite simple case definition that looks like this:
As presented above this process does not look much like a regular process - it's case definition so it's completely dynamic process (so called ad hoc). This means new activities can be added to it at any time or different fragments can be triggered as many times as needed.
What is worth notice here is Milestone nodes:
- Order placed
- Order shipped
- Delivered to customer
- Hardware spec ready
- Manager decision
Milestones are completed based on condition, in this case all conditions evaluate given case instance data - case file. So as soon as data is given the milestone is achieved. Milestones can be triggered manually by signal or can be auto started when the case instance starts.
Here you can watch this application in action
and now we dive into details of how this application was composed...
So application is built with following components:
So application is built with following components:
- WildFly Swarm as runtime environment
- KIE Server as backend
- PatternFly with AngularJS as front end
This application is fully featured and runnable but should be seen as showcase/PoC that aims at showing intension with modern BPM and case applications. No more centralized deployments to serve all but instead have a tailored apps to do the one thing but do it right.
So once you logon you will see the home screen - the purpose of this system - to order new hardware
Here you can see all available suppliers that can deliver IT hardware:
- Apple
- Lenovo
- Dell
- Others (for anything that does not match above)
Here the suppliers are considered groups in the BPM world - meaning tasks assigned to selected supplier will match the selection. That will be then assigned to "Prepare hardware spec" task in the case definition.
Once you fill in the form and place an order you'll be given with order receipt
At any given time you can take a look at orders
- My orders - those that you (as logged in user) placed
- All orders - lists all orders currently opened
From the list you can go into details of particular order to see its status and more
Order details page is build from three parts:
- on left hand side you can see the progress of your order - matching all milestones in the case with their status - currently no progress at all :(
- central part is for case details
- hardware specification document that supplier is expected to deliver
- comments section to discuss and comment on the order
- My tasks, any tasks that are assigned to you (as logged in user) in scope of this order
- right hand side is the people and groups involved in your order - so that can give you a quick link in case you'd like to get in touch
So the first thing to be done here is up to selected supplier - (s)he should provide a document with hardware specification for the placed order
Here is a list of tasks assigned to supplier (as logged in user) that (s)he can take and directly work on by providing hardware specification document
Once document is uploaded, owner of the order can take a look at it via oder details page
Now you can observe some progress on the order - hardware spec was delivered and is available to download in the central section. On the right side you can see the Hardware specification milestone is checked (and green) so it was completed successfully.
Next it's up to manager to look at the order and approve it or reject it
In case manager decided to reject it, the decision and reason will be available in the order details page.
What is important to note here is, since manager rejected the order there is a new option available in the order to request the approval again. This is only available when order was rejected and can be used to change manager's decision. This in turn will create dynamic task for the manager (as it does not exist in the case definition) and thus allow manager to change his/her decision.
Entire progress of the order is always available in the order details page when all order data base be easily found.
Once manager approved the order, the order is again handed over to supplier to place physical order for shipment.
Then on order page you'll find additional action to mark when the order was shipped and later when it was delivered which is usually done by the order owner.
Last but not least is customer satisfaction survey that is assigned to owner for evaluation.
Owner of the order can then provide his/her feedback over the survey that will be kept in order data (case file).
Order is not closed until it's explicitly closed from order details page... usually by the owner when (s)he feels it's completed, otherwise more activities can be still added to the order.
Feel like to try it yourself? Nothing easier then just do it. Just follow instructions and off you go!!!
Share your feedback
Once document is uploaded, owner of the order can take a look at it via oder details page
Now you can observe some progress on the order - hardware spec was delivered and is available to download in the central section. On the right side you can see the Hardware specification milestone is checked (and green) so it was completed successfully.
Next it's up to manager to look at the order and approve it or reject it
In case manager decided to reject it, the decision and reason will be available in the order details page.
What is important to note here is, since manager rejected the order there is a new option available in the order to request the approval again. This is only available when order was rejected and can be used to change manager's decision. This in turn will create dynamic task for the manager (as it does not exist in the case definition) and thus allow manager to change his/her decision.
Entire progress of the order is always available in the order details page when all order data base be easily found.
Once manager approved the order, the order is again handed over to supplier to place physical order for shipment.
Then on order page you'll find additional action to mark when the order was shipped and later when it was delivered which is usually done by the order owner.
Last but not least is customer satisfaction survey that is assigned to owner for evaluation.
Owner of the order can then provide his/her feedback over the survey that will be kept in order data (case file).
Order is not closed until it's explicitly closed from order details page... usually by the owner when (s)he feels it's completed, otherwise more activities can be still added to the order.
Conclusion
The idea for this article is how you can leverage modern BPM to build quickly business systems that bring value and still take advantage of the BPM just in slightly different way then traditional. This application was build in less than 4 days ... so any reasonable size application to demo capabilities should be doable in less than a week. That's the true power of the modern BPM!Feel like to try it yourself? Nothing easier then just do it. Just follow instructions and off you go!!!
Share your feedback