A process administrator's role involves governing, configuring, and maintaining BPM processes and business rules. They are in charge of BPM Server administration, policy management, providing grant access to various users based on their role in the process, and deploying/undeploying the process as and when required by the IT organization, who are directly linked to the business organization unit of James Bank.
Process participants are people who are part of the process and interact with other process participants or customers. They are directly or indirectly involved in moving the process ahead. In James Bank's scenario, Conan Doyle, Jack London, and John Steinbeck are involved in preliminary and secondary loan applicants' credential checks. Some of their work is manual, some automated; but they keep the ball rolling ahead. William Faulkner, who heads the finance organization, is also involved in the final checks and finance approval of the process.
Before we begin, the following requirement needs to be fulfilled:
Download the source code from the previous recipe
Ensure that the
LoanEligibility
process is deployed and working as expected
Let's use the James Bank's loan schema, application.xsd
, to create a new BPM project for the loan application. The request and response elements can be seen in application.xsd file provided with the source code of this chapter.
This recipe demonstrates WebCenter Process Spaces. If you already have WebCenter installed with BPM Process Spaces, then we can use WebCenter Portal. If you do not have WebCenter Portal, then we can test the same process in BPM Workspace application as well.
Let us extend the home loan use case based on the following points:
James Cooper is the loan applicant who has applied for a home loan. He now knows that he is eligible for loan and has an option of choosing a fixed or variable EMI. He also has a unique loan request ID that will be used throughout his home loan processing. He submits the required document proofs such as property address, government approval of the property, proof of address, salary slips, and his income tax return statements, as required by James' Bank in order to process his loan application.
The process continues in a parallel mode where application document verification and physical address and employment proofs are checked by field officers.
Conan Doyle and Jack London—who are in the role of Application Verification Officers—validate the documents such as address proof and salary slips sent by James Cooper. If they are satisfied with the validity of the documents, either one of them approves them. This task is named as Application Verification Officer.
John Steinbeck—who is in the role of Field Officer—physically visits James Cooper's home and office, and checks his residential address and employment status. When both the Application Verification Officer and the Field Officer—provide their approval, the process moves to the next level. This task is named as Agency Verification.
William Faulkner is the Finance Officer at James Bank. He would be the final approver in the business process.
Based on the customer's monthly income and the requested loan amount, the loan applicants are classified as Platinum, Gold, Silver, and Bronze customers.
Platinum customers are the ones who have requested a substantial loan amount, and sometimes it makes sense for James Bank to borrow the loan from other partner banks or financial institutions at a lower rate of interest, and give the same loan to their customers at a higher rate of interest. So there is a subprocess that takes care of communicating with partner networks based on certain service-level agreements. This task is named as Partner Loan Request Process.
Note
All the users—James Cooper, Jack London, Conan Doyle, and John Steinbeck—need to be created in UCM as well. WebCenter Content can be accessed at http://localhost:16200/cs
. If not created, these users would not be able to check documents in to the content repository.
Let us now model this process in JDeveloper by performing the following steps:
Launch JDeveloper and create a new project under the James Bank application. Name this project as
LoanApplicationProj
.Create input arguments, output arguments, business objects, and business process data objects.
Map all the request objects to the
loanRequest
element of the schema, and map all the response elements to theloanResponse
element of the schema.Create
LoanApplicant
,VerificationOfficer
,FieldOfficer
, andFinanceOfficer
swimlanes on the process canvas, which can be seen in the extreme left vertical lane in the Flow tab. Each of these represents a participant role.Switch to the BPM Project Navigator view and open the Organizational Chart roles. Add the required actors as discussed in the preceding use case for each of the swimlane roles.
Drag-and-drop a task initiator from the Component Palette on the
LoanApplicant
BPM process swimlane.Create the
Loan Application
human task and associate it with theloanRequest
process data object as an input parameter.Select
Loan Application Task
and click on Auto-Generate Task Form….Add a parallel task and link up
AgencyVerification
andApplication Verification Officer
, so that they merge again at theParallelGateway
endpoint.Add an exclusive gateway to check if the customer is a Platinum customer. If yes, take the customer to a subprocess (Partner Loan Request Process) which is marked as Is Draft, for later implementation.
If the customer is not a Platinum customer, then the process moves to the next human task—
Finance Approval
.Save the loan application data in the required database table by using a Database Adapter at the
Save Loan Application
service invocation.Finally, send an e-mail notification to the customer by dragging and dropping the Email notification activity.
Deploy the application to WebLogic Server from JDeveloper.
The output of this recipe will run LoanApplicationProcess
, which goes through a series of checks and approvals before the applicant is notified of his loan status.
Let's understand how each role in our use case plays its part, by performing the following steps:
Log in to BPM Workspace (
http://localhost:7001/bpm/workspace
) as James Cooper (loan applicant).He checks for loan eligibility, fills in the required data, and submits the form.
He also attaches required documents such as proof of age, proof of address and salary slips that get checked into the UCM content repository.
John Steinbeck—who is the Field Officer—visits James Cooper's home and office, and approves the
Loan Application Task
in the BPM Workspace application.Jack London—who is the Application Verification Officer—has access to the corporate intranet WebCenter Portal. He logs in and verifies all the related documents such as Income Tax Permanent Account Number (PAN), address proof, and employment certificate and provides his approval on them.
After login, he selects his group space related to home loans and views the task assigned to him in the process workflow:
He then selects
Application Verification Task
assigned to him and verifies the documents. Once done, he clicks on the Approve or Reject button to approve or reject the application based on his verification of the documents.William Faulkner—who is the Finance Officer at James Bank—gives the final approval, and the loan is sanctioned to James Cooper.
The following screenshot shows how the end-to-end process flow looks in the Enterprise Manager. The green line shows the happy path.
Deployments can be done directly from JDeveloper by creating a WebLogic Application Server connection. After deployment, it is necessary to create a data source and a connection pool in the WebLogic Server console. The deployed SOA application can be tested in multiple ways; the most common being to log in to Enterprise Manager and test the process from there. Another approach is to use the web service WSDL URL to create an ADF-based data control. Once created, drag-and-drop this control onto an ADF JSPX page and test it by running the JSPX page. Enterprise Manager-based testing will always be a quicker approach during development stages.