A Lease contract undergoes the following processes during the authoring:
- QA Check
- Pricing
- Approval
- Activation
This Blog discusses the approval process of a lease contract and how it can be customized to meet the business requirements.
OLFM follows the business event model; for every major event, it raises a workflow business event. When a lease contract is submitted for approval, a business event with the name oracle.apps.okl.la.approve_lease_contract is raised. This business event is subscribed by a workflow ‘Lease Contract Booking Approval’ (Internal Name: OKLLAAPP).
[restrictedarea]Profile Option
There is a seeded profile option named ‘OKL: Lease Contract Approval Process’. This can have possible values of WF (Workflow), AME (Approval Management) or NONE. When the value is set to WF or AME, the business event is raised. When value is set to NONE, the business event is not raised, and contract is automatically approved. When value is set as WF or AME, the business event is raised which launches the approval workflow and contract is updated to PENDING APPROVAL status till workflow completes.
Approval workflow (OKLLAAPP)
This is a seeded workflow and is launched when business event ‘oracle.apps.okl.la.approve_lease_contract’ is raised. This workflow contains two processes:
- Approval Controller
- Contract Approval Using Workflow
Approval Controller Process
The approval controller process is the main process which is launched when the workflow OKLLAAPP is launched by the approval business event. This process checks for the approval path (through the above mentioned profile option) and branches the processing to the appropriate route. This process is given graphically shown below:
The first node ‘Check Approval Process’ check the approval path. If it is AME, then the control goes on the top branch. If it is set to Workflow, then control goes to the lower branch.
The top node (Approvals Flow) is a function calling OKL_AM_WF.START_APPROVAL_PROCESS. This process calls another workflow OKLAMAPP with process ‘Approval Process’ (APPROVAL_PROC). This process queries the AME and gets the list of approvers. The workflow OKLAMAPP looks as below:
Contract Approval Using Workflow
The lower node (Approval process through workflow) is a function implemented using OKL_KBK_APPROVALS_WF.WF_APPROVAL_PROCESS. This process invokes process ‘Contract Approval Using Workflow’ (KBK_APPROVAL_WF) of the workflow OKLLAAPP. This workflow looks like as below:
This process has a node ‘Get Lease Contract Approver’ which sends the approval notification to the user who raised the workflow. This node needs to be customized based on the customer requirement.
How to Customize the Approval workflow
The workflow OKLLAAPP can be customized to meet the business requirements of approval. We can have following types of business requirements:
a. Using AME to get the supervisor of the employee who is authoring the contract or getting approvers based on some HR Job function.
b. Using approval only for Rebook process and by-pass the approval when original booking happens.
c. Approval to be invoked only when some significant financial changes happen during rebook.
All these requirements can be met by suitably changing the OKLLAAPP main approval process.
This can be achieved as follows:
a. Set the profile option for approval to AME
b. Customize the workflow OKLLAAPP and modify the process ‘Approval Controller’ as follows:
The ‘Approvals Flow’ node is a PL/SQL Function. This function can either start a workflow for approval or it can just set it to approved and complete.
This PL/SQL function will contain the logic for identifying whether it is a Booking or Rebooking and whether any significant financial changes has changed.
c. The node ‘Approvals Flow’ will be implemented through a custom procedure which will have the following logic:
I. If contract is undergoing first time booking (contract id is available and we can check the transaction to determine that), then complete the process with approved status.
II. If contract is undergoing rebook and there is a significant financial change, use the AME to get the approver list and send the notification. This node can launch another custom workflow which can send notification, check the response and set the approval status.
[/restrictedarea]