Professional Documents
Culture Documents
BAW - Leverage No-Code Workflow Tooling To Build Quick End To End Applications
BAW - Leverage No-Code Workflow Tooling To Build Quick End To End Applications
BAW - Leverage No-Code Workflow Tooling To Build Quick End To End Applications
Stuart Jones
Business Automation Technical Sales Specialist
Stuartjones@us.ibm.com
Zach Silverstein
Americas Business Automation Tech Sales Leader - RPA/Workflow/PM & IBM Master InventorAuthor
Zachary.Silverstein@ibm.com
Paul Pacholski
pacholsk@ca.ibm.com
Contents
3 .................................................................................................................................................................. 18
“Business Process Model and Notation has become the de-facto standard for business processes diagrams. It is
intended to be used directly by the stakeholders who design, manage and realize business processes, but at the
same time be precise enough to allow BPMN diagrams to be translated into software process components. BPMN
has an easy-to-use flowchart-like notation that is independent of any particular implementation environment.”
As well as being a specification for modeling process, it also provides and interchange format so you can export
your process from one tool and import it into another. This lab shows how to take a BPMN export file from
another system and then import that file into BAW and run the contained process without writing any code.
The BPMN file we will use for this example is exported from IBM Blueworks Live (BWL) but there should be no
difference with an export from some other environment.
• Each activity is properly classified. In this process, we have User Tasks, Service Tasks and a Decision
Task. This is done, in BWL, by setting the Type:
The output from the export is a zip file and is imported as a zip file. The zip file does contain a readable BPMN
XML format file that describes the process.
• Open a Chrome browser, there is a short cut at the foot of the desktop:
• Open the BAW folder at the top of the page and click on “Workflow Center – Solutions”
• Click on the Process apps tile and the following page will show:
Each tile on the page represents a Process Application. Note that you may see a different set of tiles.
• Click on the black Import button in the top right of the page. This will open an import dialog:
o Select the zip file and click on Open. (Or just double click the file)
o The Import dialog box will change to show the filename to be imported
Click on OK.
• You will see a new Process App tile in the Workflow Center:
Click on the title in the new tile to open the process App. Let’s explore what was imported.
• Click on the Purchase Order Planning folder to see a view of all of the artifacts in the Process
Application:
o For the Decision Task, there is a service task created – Purchase Order Planning_Check amount
o Note that there is no Human Service implementation for the three User Tasks in BWL. This is
because BAW provides a default Inline User Task and each of the Human Tasks is mapped to
this default implementation:
Each team has the tw_allusers team pre-assigned allowing any user to execute the activities.
• Though we have made no significant changes to the process, BAW ensures that it is executable. Open
the Process by selecting the process from the list of artifacts:
Then open the Process inspector by clicking on the play button in the top right corner of the browser:
This will open the Inspector View on the right side of the page and place a halo around the current
activity:
• Enter some data into the Purchase request UI, for example:
Click on the Refresh button in the Inspector and the process will move on to the next human task,
Approve purchase request:
This time, all of the data that you entered in the previous UI is shown as Input. The single Output
variable is Approved. Click on Approved (to set it to true) and then click on the Done button. The process
instance is now completed:
1. Open a Firefox browser window. There is a link at the foot of the page:
2. Open a browser window for the ODM Rule Execution Server. There are links provided at the top of the
page:
Log in using the credentials odmAdmin / odmAdmin and the following page will load:
Click on the my_deployment link and then the my_operation link that follows this page
4. Select the Retrieve HTDS Description File link near the top of the page
Log in using the credentials admin / admin and the following page will load:
There is a tile for CMMN based, case oriented workflows and a second tile for BPMN based, process
oriented workflows. We are going to create a new process oriented workflow. Click on the blue Create
icon:
You can provide any name that you like for this new Process Application. Ours is called REST Import.
9. The dialog for a new service import will now appear. There are several choices, but we are importing a
REST service, which is the default.
10. Navigate to C:\ODM Assets and select the file that we saved earlier:
Click on Open.
11. Once the filename field is completed, the Next button will be enabled. Click on Next. The importer will
analyze the openAPI specification file and list all of the available operations. You can choose which
12. The External service import completes and the designer opens the new definition. Let’s see what was
created.
a. External Service
Input and Output business objects for the service. In this instance, the openAPI specification
has a Request object, a Response object and an Error object. These can be viewed in the Data
section of the left hand menu:
13. As we did for the External Service definition, click on the plus sign in the services folder but, this time,
select Service Flow:
15. The service flow editor opens and provides a Start node connected to an End node. Click on the twistie
of the Activities pallete (on the right). This will open up the set of available activities.
Hover over the first activity in the list. Drag the activity onto the palette and drop it on the connector
between the Start and End nodes. The connector will ‘glow’ pink when the cursor is correctly positioned.
There Service is now a part of the flow:
Double-click on the Activity name and rename the Service, for example Call Loan Rules
16. At the bottom of the editor is the configuration section, it opens, by default, to the Implementation tab.
In the Implementation Section, on the right, click on Select… and click on my_operation API in the list of
available External Services:
17. Now select the Data Mapping tab. Here we get to specify which of our Service Flow variables will be used
in the service:
But … we haven’t defined any variables for our service up to this point! For the Input Mapping, click on
the ‘magic wand’ icon:
BAW will automatically create a variable of the appropriate type, based on the requirements of the
Service that is being called:
Note that it is still possible to create the variables manually and assign them manually to the input and
output mappings.
The definition of the service is now completed. In the next section we will build a simple coach showing how the
service might be used. Some items to note:
• The Service Flow that was built is quite simple. We did not implement capabilities to handle non-
availability of the Loan service.
• There are many circumstances where we do not wish to expose the ODM specific nature of the Business
Objects used in the External Service. In this instance, it is common to provide marshalling/de-
marshalling capabilities before and after calling the service.
18. Hover on the User interface folder and click on the plus sign. Then select Client-Side Human Service
this will open the Human Service editor where you will see a Start node, an End node and a Coach
activity.
19. From the right hand palette, hover over the Service activity and drag it onto the editor. Drop it above the
Coach (not connected to the flow):
20. Click on the name (Service) of the Service that you just added and give it a suitable name:
Press enter when you’re done and keep the Service activity ‘in focus’ (It will have an orange ‘halo’).
21. On the Implementation tab, at the bottom of the page, select Loan Service as the Implementation:
Click on Finish.
d. Repeat this for the Output Mapping. Click on the Variables tab and you should see the following:
While we are in the Variables section, we need to initialize the input variable. Highlight body (on
the left hand side) and select the Has Default option on the right:
23. Click on the Coach tab to open the coach editor. When presented with the Starting Point dialog, click on
OK
This will show a list of all of the variables that we just defined:
There are now lots of data fields on the page and we don’t need them all so let’s do some cleanup:
b. In the same way, delete Messages. Once deleted, you may also need to delete the remaining
blue content box
c. Click on the selector and select All views:
Drag the Horizontal layout coach view and drop it above the Name field at the top of the page:
Click on Name and then drag it onto the layout that you just created, inside the blue box. Do the
same with the Credit Score field. Drop it to the right of the Name field – look for a horizontal
orange bar to appear when you have the right position. Repeat this for the Yearly Income field.
d. Now drop the loan variable (note: not loanOutput) onto the page. Drop it below the OK button.
Use a third Horizontal section to collect the Amount 2, Duration 2, Yearly Interest Rate 2 and
Yearly Repayment 2 fields. Here is how your view should look:
21. The last thing to do is to integrate our loan service with the UI.
b. Drag the Button view onto the editor, place it just above the OK Button. Click on the button and
an edit selector will appear. Click on the pencil:
Change the name of the button to Call Rules. Click on the button again and this time select the
paint can. Pick a new color for the button:
c. Switch to the Diagram view. From the right hand palette, hover over the Service activity and drag
it onto the editor. Drop it above the Coach (not connected to the flow):
Note that the new connector is tagged with Call Rules – the name of our Button. The editor has
associated this connector with the most likely boundary event in the Coach. (You can change
this if the editor doesn’t get it right)
This means that when the Call Rules button is pressed in the Coach, processing will pass to the
Call Loan Rules service, just what we need.
e. We need to tell the Human Service what to do when the service completes. We want to pass
control back to the Coach and so we connect the Call Loan Rules service back to the Coach:
23. There is a validation rule in Loan Rules that the Loan Amount cannot exceed $1m. Put a value greater
than 1,000,000 in the Amount field and click on Call Rules. You should see the following:
24. Let’s now exercise the rules a bit more. Enter the following:
a. Name=John Doe ; Credit Score=690 ; Yearly Income=145000 ; Amount=30000 ; duration=120 ;
Yearly Interest Rate=0.055 ; click on Approved
(If Yearly Repayment is 0, the rules will calculate the payment)
Click on Call Rules. You should see the following:
c. Feel free to experiment with other values. As a guide, the credit score minimum is 200, the loan
maximum is 1,000,000 and the required debt to income ratio is 0.3.
Congratulations you have implemented an external service and a user interface to use that service without
writing a single line of code!