-
Language:
English
-
Language:
English
Chapter 5. MortgageApprovalProcess business process in Business Central
A business process is a diagram that describes the order in which a series of steps must be executed using a flow chart. A business process consists of a collection of nodes that are linked to each other using connections. Each of the nodes represents one step in the overall process while the connections specify how to transition from one node to the other.
The sample Mortgage_Process contains the following predefined MortgageApprovalProcess business process.
5.1. Delete the existing MortgageApprovalProcess process application
For this tutorial, delete the existing MortgageApprovalProcess business process and recreate it to gain a better understanding of creating a business process. Creating a new business process using the same name ensures that the sample project deploys and tests without error.
Procedure
- In Business Central, go to Menu → Design → Projects → Mortgage_Process.
-
Input
MortgageApprovalProcess.bpmn
in to the project’s asset search box and click MortgageApprovalProcess. - Select Delete from the toolbar, and click Delete to confirm that you want to delete this asset.
5.2. Creating a new MortgageApprovalProcess business process application
The following procedures guide you through the creation of tasks, connections, and gateways that make up the MortgageApprovalProcess business process.
Red Hat Process Automation Manager contains a predefined selection of node types to simplify business process creation. The predefined node panel is located on the left side of the diagram editor.
5.2.1. Creating the initial mortgage business process
The mortgage validation business process determines whether a mortgage application contains all required data. If the specified data requirements are met, the application proceeds on to the mortgage calculation business process.
Procedure
- In Business Central, go to Menu → Design → Projects → Mortgage_Process.
- Click Add Asset → Business Process.
Enter the following values:
-
Business Process:
MortgageApprovalProcess
Package: Select
com.myspace.mortgage_app
The Package specifies the location inside the existing project where the asset will be created. In this example, it is created in
com/myspace/mortgage_app
.
-
Business Process:
- Click Ok. The diagram editor opens.
- In the upper-right corner, click the Diagram properties icon.
- Scroll down and expand Process Data and click in the Process Variables section.
Enter the following values:
-
Name:
application
-
Data Type:
Application [com.myspace.mortgage_app]
-
Name:
5.2.2. Creating outgoing connections and exclusive gateways
This section shows you how to create outgoing connections, exclusive gateways, and business rule tasks. Use exclusive gateways to make decisions and react to events based on the available data.
Procedure
Create an outgoing connection from the start event to an exclusive gateway:
On the canvas, click the start event node and click the Create Parallel icon.
Hover over the icon of the parallel and click the Convert into Exclusive icon.
Create an outgoing connection from the exclusive gateway to a business rule task:
On the canvas, click the exclusive gateway and click the Create Task icon.
Hover over the icon of the task and click the Convert into Business Rule icon.
Configure the business rule task:
- Click the business rules task.
- If the Diagram properties panel is not open, in the upper-right corner click the Diagram properties icon.
-
In the Diagram properties panel, enter
Validation
in the Name field. - Expand Implementation/Execution and from the Rule Flow Group list select validation.
In the On Exit Action field, enter the following Java expression:
System.out.println(application.getProperty());
- Expand Data Assignments and click next to Assignments.
In the Validation Data I/O window, click Add and create the following assignments:
- Click Save.
- In the diagram editor, to save the changes made to the business process, click Save and click Save again to confirm your changes.
5.2.3. Defining the validation data
This section shows you how to define the validation data that determines whether the application data is correct, contains an error, or has missing information.
Procedure
Create an outgoing connection from the Validation task to an exclusive gateway:
- Click the Validation task and click the Create Parallel icon.
Hover over the icon of the parallel and click the Convert into Exclusive icon.
Create an outgoing connection from the exclusive gateway to a new business rule task:
- Click the exclusive gateway and click the Create Task icon.
Hover over the icon of the task and click the Convert into Business Rule icon.
- If the Diagram properties panel is not open, in the upper-right corner click the Diagram properties icon.
-
In the Diagram properties panel, enter
Retract Validation
in the Name field. -
Expand Implementation/Execution and enter
error
in the Rule Flow Group field.
Configure the connection between the exclusive gateway and the business rule task:
Click the connection.
- If the Diagram properties panel is not open, in the upper-right corner click the Diagram properties icon.
-
In the Diagram properties panel, enter
Invalid
in the Name field. - Expand Implementation/Execution and select Expression in the Condition Expression section.
-
From the list, select drools and enter
ValidationErrorDO()
in the Condition Expression field.
Create an outgoing connection from the Retract Validation task to a new user task:
- Click the Retract Validation task and click the Create Task icon.
Hover over the icon of the task and click the Convert into User icon.
- If the Diagram properties panel is not open, in the upper-right corner click the Diagram properties icon.
-
In the Diagram properties panel, enter
Correct Data
in the Name field. Expand Implementation/Execution and enter the following values:
-
Task Name:
CorrectData
-
Groups:
broker
-
Task Name:
- Click next to Assignments.
In the Correct Data Data I/O window, click Add and create the following assignments:
- Click Save.
Connect the Correct Data back to the first exclusive gateway. Your workflow should look similar to the following diagram:
5.2.4. Calculating the mortgage
The mortgage calculation business process determines the applicant’s mortgage borrowing limit.
Procedure
Return to the second exclusive gateway. Create an outgoing connection to a business rule task.
-
Click the created connection and in the Diagram properties panel, input
Valid
in the Name field. -
Expand Implementation/Execution, select Expression in the Condition Expression section, and enter
not ValidationErrorDO()
in the drools expression field. -
Click the created business rule task and in the Diagram properties panel, input
Mortgage Calculation
in the Name field. -
Expand Implementation/Execution and select
mortgagecalculation
from the Rule Flow Group drop-down menu. - Expand Data Assignments and click next to Assignments.
In the Mortgage Calculation Data I/O window, click Add to create the following assignments and click Save.
Click an empty space on the canvas, scroll down, expand Process Data, and click next to Process Variables. Enter the following values:
-
Name:
inlimit
-
Date Type:
Boolean
-
Name:
Create an outgoing connection from the Mortgage Calculation task to a user task.
Click the user task, enter
Qualify
in the Name field, expand Implementation/Execution, and enter the following values:-
Task Name:
Qualify
-
Groups:
approver
Click next to Assignments. In the Qualify Data I/O window, click Add to create the following assignments:
-
Task Name:
- Click Save. Above the canvas, click Save, and Save, to confirm your changes.
Create an outgoing connection from the Qualify task to an exclusive gateway.
- Click the GATEWAYS icon in the node panel.
- Click Exclusive and drag it to the right of the Qualify task.
- Create an outgoing connection from the exclusive gateway and connect it to a user task.
-
Click the connection and input
in Limit
in the Name field of the Diagram properties panel. - Expand Implementation/Execution and select Condition in the Condition Expression section.
Select inlimit from the Process Variable drop-down menu and select Is true from the Condition drop-down menu.
Click the user task, enter
Final Approval
in the Name field, expand Implementation/Execution, and enter the following values:-
Task Name:
FinalApproval
-
Groups:
manager
-
Task Name:
Click next to Assignments. In the Final Approval Data I/O window, click Add to create the following assignments:
- Click Save. Above the canvas, click Save, and Save, to confirm your changes.
5.2.5. Increasing the down payment
The increasing the down payment business process checks to see if the applicant qualifies for the loan by increasing their down payment. The final result is either the final loan approval, or loan denial based on the applicant’s inability to increase the down payment.
Procedure
Create an outgoing connection from the Final Approval user task and connect it to an end event.
Return to the exclusive gateway that connects with the Final Approval user task. Create a second outgoing connection and connect it to a new user task.
-
Click the connection and input
Not in Limit
in the Name field of the Diagram properties panel. - Expand Implementation/Execution and select Condition in the Condition Expression section.
- Select inlimit from the Process Variable drop-down menu and select Is false from the Condition drop-down menu.
Click an empty space on the canvas, scroll down, expand Process Data, and click next to Process Variables. Enter the following values:
-
Name:
incdownpayment
Data Type:
Boolean
-
Name:
-
Click the new user task and in the Diagram properties panel, input
Increase Down Payment
in the Name field. Expand Implementation/Execution and enter the following values:
-
Task Name:
IncreaseDownPayment
-
Groups:
broker
Click next to Assignments. In the Increase Down Payment Data I/O window, click Add to create the following assignments:
-
Task Name:
- Click Save. Above the canvas, click Save, and Save, to confirm your changes.
- Create an outgoing connection from the Increase Down Payment user task to an exclusive gateway.
- Create an outgoing connection from the exclusive gateway to an end event.
-
Click the connection and input
Down payment not increased
in the Name field of the Diagram properties panel. - Expand Implementation/Execution and select Condition in the Condition Expression section.
- Select incdownpayment from the Process Variable drop-down menu and select Is false from the Condition drop-down menu.
- Create an outgoing connection from the exclusive gateway and connect it to the first exclusive gateway.
-
Click the connection and input
Down payment increased
in the Name field of the Diagram properties panel. - Expand Implementation/Execution and select Condition in the Condition Expression section.
- Select incdownpayment from the Process Variable drop-down menu and select Is true from the Condition drop-down menu.
- Click Save, and Save, to confirm your changes.
Figure 5.1. Final version of the business process