This example includes a Service Item and an Approval. The Approval includes an option to Approve, Deny or Add Another Approver. Selecting the Add Another Approver option will allow the Approver to identify the additional Approver. The Task Tree will create another approval for the identified Approver.
This process can continue infinitely until it is approved or denied by one of the Approvers. At this time the most recent Approval Task tree will return control back to the Task Tree for the orignal submission.
This process works with the assistance of two Service Items and Task Trees. They are attached to this Article for download and installation on a Kinetic Request server. One Task Tree on Infinite Approvers Submission and one on the Infinite Approvers Approval Service Item.
Infinite Approvers Submission
The Infinite Approvers Submission Tree contains the node Create Closure Deferral. This node creates a deferral which waits for a complete trigger from the approval tree to indicate the approval was completed for the request. Then the Approval node creates the approval.
Infinite Approvers Approval
The approval is created in the Infinite Approvers Approval Service Item and has a Complete Parent node which always runs upon completion of the Approval. This node completes the parent node which created the Approval record.
The Approval node only executes if the Approver chooses to "Add Another Approver". In this case another Approval is created using the same approval Service Item as itself.
If the Approval is approved or denied, the Infinite Approvers Submission request needs to be completed and any additional nodes can now execute. There are two processes that need to execute. The Validation Status needs to be set on the Infinite Approvers Submission request to indicate it is closed (or similar verbiage). Also the Create Closure Deferral Node needs to be completed.
The Validation Status of Infinite Approvers Submission is set by the Close Original Approval Node.
Back in the Infinite Approvers Submission Task Tree the Update Deferral Token node set the ng_EndpointSecret value of the request to the Token ID created by Create Closure Deferral. Now this Token ID is retrieved by the Retrieve Deferral Token node. The Token ID is used to complete the Create Closure Deferral on the Infinite Approvers Submission request.
Any nodes that need to execute after approval can be connected to the Create Closure Deferral with a complete connector. alternately, similar nodes could be connected to Complete Deferred Node on Original Submission node on the approval. The advantage of this alternate is that it could be shared nodes if many Services items used the Infinite Approvers Approval for Approvals