This is a sample script written in Python to handle Conditional Approvals for Incident \ Service Requests, through Custom Triggers using Field and Form Rules. One of the advantages of using this script is that there is no modification of the script is required to get the script working. The approvers can be configured through FAFR and this is easier to modify without server access.
Let's assume that in a large organization, when users request a service from a long list of offerings, it makes no sense if all the services go through the same set of approval processes. As most of the services would have a different set of approvers and approval levels, it is mandatory to customize the request approval processes. This post helps IT, administrators, to dynamically set approvers at different approval stages directly in the request without the need to configure them in the template. With the help of Field and Form rules, the list of approvers are set in the request additional fields which will be used to send approvals.
2. functions.py : This package consists of all the functions that are used to handle the standard requirements of the customer. Most repeated requirements are written as separate functions. Depending on our use case, we can include these functions in our script.
3. configuration.json : This file maintains the configuration details of the installed server.
1. Create new additional fields for the request to hold the approver information and update the api name in the script. Attached the Screenshot.
2. Each stage must be configured as a separate additional field.
3. Go to Admin > Service Templates > Select a particular template > Field and Form Rules > Rule execution - On Create / Edit > Event - "On Field Change" - "Requester" > Conditions - "Department=Network" > Actions - Set Field - First additional field - Set the list of approvers. Eg: firstname.lastname@example.org
4. Similarly set values for the required number of stages and move status to "Waiting for approval".
5. Extract the ZIP file under ..\ManageEngine\Servicedesk\integration\custom_scripts - folder.
6. Edit the configuration.json and update the values.
7. Configure a custom trigger to get invoked when the "Status" is "Waiting for approval". Go to Admin > Custom Trigger > give a trigger name > execute script > py addApprovals.py $COMPLETE_V3_JSON_FILE and set the criteria as "Status=Waiting for approval"
Field and Form Rule: