How to display the Service Request Parameters in Approval notifications

Version 1

    Details

     

    When a Service Request is created, the data entered by the Self-Service user is stored as Service Request Parameters. If the Request requires approval, it may be desirable for the approver to see these Parameters in the approval notification instead of accessing the record in the system (for example, if they only have access to email and will approve by replying to the email). 


    This article describes a possible solution to include the Service Request Parameters in Approval notifications.

     


    Resolution

        

    Possible solution

    On creation of the Service Request, concatenate the parameters into a field which can be referenced in the Approval notification. 

     

    Prerequisites

    - You must have Administrator rights to the tenant.

     

    Steps To Implement

    1. On Service Request, create a new field (ServiceReqApprovalParams)  to hold the concatenated parameters. 

    2. On the Request Offering, update the workflow to store the parameters in the ServiceReqApprovalParams field. 

    3. On FRS_ApprovalVoteTracking, edit the outgoing Email Notification to include the contents of the ServiceReqApprovalParams field. 

     

     

     

    1) Create a new field to hold the concatenated parameters.

    1. Log in to the tenant with the Administrator role. 

    2. Go to Configure Application > Business Objects > Service Request. 

    3. Go to Object Fields > Add New... 

    4. Select the 'Text' Field Type.

    5. Enter the Field Name, e.g. ServiceReqApprovalParams,  and the Display Name. 

    6. If required, change the Field Type to 'Unicode Text'. 

    7. Select a Text Length of Unlimited. 

    8. Click 'Add This Field'. 

    9. Save changes.

     

     

     

     

    2) Update the workflow to store the parameters in the ServiceReqApprovalParams field.

    1. Log in to the tenant with the Service Owner role. 

    2. Go to the Request Offerings workspace. 

    3. Edit the Request Offering you wish to update. 

    4. Go to "3. Plan Request Fulfillment". 

    5. Between the Start block and the Get Approval block, add an Update block. 

     

     

    6. Open the Update block. 

    7. Add the following value against the "ServiceReqApprovalParams" Field: 

    $(ForEachChild("ServiceReq#", RecId, "ServiceReqParam#", "ParameterName + ': ' + ParameterValue + '\r\n'", "CreatedDateTime ASC"))

    8. Check the 'Overwrite' option. 

     

     

    9. Save the block. 

    10. Open the Approval block and check which Approval Notification QuickAction is used (needed for next step): 

     

     

    11. Save the changes to the Request Offering.

     

     

     

    3) Edit the outgoing Email Notification to include the contents of the ServiceReqApprovalParams field.

    1. Log in to the tenant with the Administrator role. 

    2. Open the Quick Action Center for FRS_ApprovalVoteTracking. 

     

    i.e. EITHER: 

    a) Go to More... > Approval Vote Tracking. 

     

    b) Go to the Action Menu > Edit Actions. 

    OR 

    a) Go to Configure Application > Automation Tools > Quick Actions

     

    b) Click Add/Edit next to the FRS_ApprovalVoteTracking object. 

     

     

    3. Edit the Quick Action from the previous step. 

    4. In the appropriate place in the message, insert the following string: 

    $([FRS_Approval#.][ServiceReq#.]ServiceReqApprovalParams)

     

     

    5. Save changes. 

     

     

     

    Result

    When the user submits a Request, all the parameters from the request are copied to the ServiceReqApprovalParams field on the Service Request by the  fulfillment workflow. The workflow sends out the Approval Notification message containing the copy of the parameters. 

     

     

     

     

    Known Caveats/Limitations

    - Parameters cannot be ignored/skipped; all parameters are inserted. 

     - Image fields are shown as a RecId. 

     

    - You have little control over the order the parameters are displayed. In testing the order appears to be the same as the order of the fields on the  Request Offering. The last parameter of ForEachChild controls the order: 

    $(ForEachChild("ServiceReq#", RecId, "ServiceReqParam#", "ParameterName + ': ' + ParameterValue + '\r\n'", "CreatedDateTime  ASC"))

    In practice, the CreatedDateTime is the same for all parameters because the database write happens in sub-second time.