
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-04-2022 04:47 AM
Hi ,
please look at the attachment , the Business Leaders should be auto populated with the Manager of the Business contacts
And if the level of the business contact is a manager then he himself should be populated under Business Leader as well
Kindly help with the Request.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-04-2022 06:54 AM
Hello,
Please use the below:-
Write a Onchange client script on Business contact field with the below code(Remember to replace the businesscontact and businessleader field name with your fieldname)
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var ga = new GlideAjax('getMembers');
ga.addParam('sysparm_name', 'getMembers');
ga.addParam('sysparm_internal_service_name', g_form.getValue('businessconatctfieldname'));
ga.getXML(errorTypeParse);
function errorTypeParse(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.setValue('businessleaderfieldname', answer);
}
}
Then write a script include with name getMembers and have client callable checkbox as true and then use the below code:-
var getMembers = Class.create();
getMembers.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getMembers: function() {
var arr = [];
var grp_mem = new GlideRecord('sys_user');
grp_mem.addEncodedQuery('sys_idIN' + this.getParameter('sysparm_internal_service_name'));
grp_mem.query();
while (grp_mem.next()) {
gs.log('test');
arr.push(grp_mem.manager.toString());
}
return arr.toString();
},
type: 'getMembers'
});
Please mark my answer as correct based on Impact.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-04-2022 05:34 AM
Hi @Community Alums ,
create onchnage client script on business contact field.
1. Wen the business contact change manger will populate accordingly.
Client script:
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var ga = new GlideAjax('global.setmanager'); //script include name
ga.addParam('sysparm_name', 'getmanager'); //function name
ga.addParam('sysparm_usrsysid', newValue); //passing buisness contact sysid to server
ga.getXMLAnswer(setusermanager); //callback function
function setusermanager(response) {
g_form.setValue('businessleaderfieldname', response); //give business leader field to set manger on business leader
}
}
2. Script Include: Create a script include and check Client Callable as true
var setmanager = Class.create();
setmanager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getmanager: function() {
var sysid = this.getParameter('sysparm_usrsysid');
var grusr = new GlideRecord("sys_user");
grusr.addQuery('sys_id', sysid);
grusr.query();
if (grusr.next()) {
return grusr.manager;
}
},
type: 'setmanager'
});
ServiceNow Community MVP 2024.
Thanks,
Pavankumar