- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-21-2022 05:19 AM
I have a requirement on the catalog task for my catalog item. Based on the requested for company hide/show a specific variable on the catalog task.
I created an Onload catalog clients script (GlideAjax) and I don't know what it is that I am missing. Any help as an extra pair of eyes definitely helps.
I have tried g_form.getValue('request_item.request.requested_for') & g_form.getValue('requested_for') neither works. The call alert comes back as null
Catalog Client Script
alert('Start Script');
var request_item = g_form.getValue('request_item');
if (request_item == 'New Employee_Non Employee Mailbox') {
var user = g_form.getValue('requested_for');
}
var global = new GlideAjax('global.catalogUtils');
global.addParam('sysparm_name', 'getUserCompany');
global.addParam('sysparm_userid', user);
global.getXML(getUserComp);
function getUserComp(response) {
var call = response.responseXML.documentElement.getAttribute("answer");
alert(call);
if (call == 'AAE') {
g_form.setMandatory('authorizing_sp9_7_number', true);
g_form.setDisplay('authorizing_sp9_7_number', true);
} else {
g_form.setMandatory('authorizing_sp9_7_number', false);
g_form.setDisplay('authorizing_sp9_7_number', false);
}
}
}
Script Include using the getUserCompany Function
var catalogUtils = Class.create();
catalogUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getPrivilegedRoleFunction: function() {
var privileged = this.getParameter('sysparm_privilegedrole');
var result = '';
var elook = new GlideRecord('u_req_lookups');
elook.addEncodedQuery('u_catalog_item=10396995db1a101016dbe9c948961957^u_lookup_description=Privileged-Role-Function^u_active=true^u_lookup1=' + privileged);
elook.query();
while (elook.next()) {
result += (',' + elook.u_lookup2);
}
return result;
},
getUserCompany: function() {
var userId = this.getParameter('sysparm_userid');
var ans;
var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id', userId);
gr.query();
if (gr.next()) {
ans = gr.getDisplayValue('company');
}
return ans;
},
getClosureDetails: function(requestedItemId) {
var flag = 0;
var flag1 = 0;
var task1 = new GlideRecord('sc_task');
task1.addQuery('request_item', requestedItemId);
task1.query();
flag = task1.getRowCount();
var task = new GlideRecord('sc_task');
task.addQuery('request_item', requestedItemId);
task.addQuery('state', '7');
task.query();
flag1 = task.getRowCount();
gs.log('Flag: '+flag+' '+'Flag1: '+flag1);
if (flag == flag1) {
return 'yes';
}else{
return 'no';
}
},
type: 'catalogUtils'
});
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-21-2022 05:33 AM
Hi Brett,
Please check following line is getting executed or not.
var user = g_form.getValue('requested_for');
Assuming requested_for is direct column on request_item table but if it is a reference table field then you need to access with reference_field_name.requested_for.
More ever, declare the "user" variable out side the if loop.
Thanks,
Srinivasulu Laggala
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-21-2022 05:33 AM
Hi Brett,
Please check following line is getting executed or not.
var user = g_form.getValue('requested_for');
Assuming requested_for is direct column on request_item table but if it is a reference table field then you need to access with reference_field_name.requested_for.
More ever, declare the "user" variable out side the if loop.
Thanks,
Srinivasulu Laggala