Display variable in RITM and TASK

2022_ServiceNow
Tera Expert

Hi all,

 

In the catalog item, there's one field to get the location of the user. I am populating it using Auto populate. This field is not visible in the portal.

2022_ServiceNow_0-1687279069005.png

There's a condition to check if the user belongs to particular location, if user belongs to that location, then displays another variable field on the portal for user to select. 

Everything on the portal side is working as expected.

 

There are only 2 UI Policy.

1. To hide all the variables on portal. 

2022_ServiceNow_1-1687279279426.png

2. To display another variable field based on the user location.

2022_ServiceNow_2-1687279326875.png

When I submit the request, there's no variable visible on the RITM aw well as TASK. I have made all the variables available in the workflow TASK.

Even if 'Applies on catalog Tasks' and 'Applies on Requested Item' is unchecked for the first UI policy, on the RITM it is not displaying any values. It displays only 'location of the user' variable but the value is blank.

I tried in multiple ways, still not able to debug this. 

Can anybody please let me know what changes has to be done?

 

Thanks in advance!

@Ankur Bawiskar @Manmohan K 

13 REPLIES 13

Hi @DaniJ ,

No, the field values weren't visible in the RITM or TASK when using the auto-populate option, so I used the script.

Can you share a sample of the script you used please. 

Thanks!

Sure @DaniJ 

I'm using a OnLoad Client Script

function onLoad() {
    var ga = new GlideAjax('global.getUserLocationdetails');
    ga.addParam('sysparm_name', 'getUserRegion');
    ga.getXML(getReign);

    function getReign(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        g_form.setValue('location_of_the_user', answer);
    }
}

Script Include

var getUserLocationdetails = Class.create();
getUserLocationdetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getUserRegion: function() {
        var grUser = new GlideRecord('sys_user');
        grUser.get(gs.getUserID());
        if (grUser) {
            var loc = grUser.location.getRefRecord();
            if (loc.isValidRecord()) {
                return loc.country;
            }
        }
    },

    type: 'getUserLocationdetails'
});

zyu
Tera Contributor

zyu_0-1729703213138.png

In the Catalog UI Policy Action list, add the "Clear the variable value" column, set it to false.