- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 02:49 AM
Hi,
I have two selectbox variables and one reference variable to autopopulate, but one selectbox is not displaying. Kindly help.
GlideAJAX
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
if (newValue == "") {
g_form.setValue('current_primary_approver', "");
g_form.setValue('share_type', "");
g_form.setValue('protocol_type_new', "");
} else {
alert(g_form.getValue('protocol_type_new'));
var ga = new GlideAjax('populate_modify_network');
ga.addParam('sysparm_name', 'get_modify');
ga.addParam('sysparm_share_path', newValue);
ga.getXML(callBackFunction);
function callBackFunction(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var op = JSON.parse(answer);
g_form.addInfoMessage(answer);
g_form.setValue('current_primary_approver', op.approver);
g_form.setValue('share_type', op.type);
g_form.setValue('protocol_type_new', op.protocol);
}
}
}
ScriptInclude
var populate_modify_network = Class.create();
populate_modify_network.prototype = Object.extendsObject(AbstractAjaxProcessor, {
get_modify : function()
{
var path = this.getParameter('sysparm_share_path');
var values = {};
var gr = new GlideRecord('u_cmdb_ci_file_share');
gr.addQuery('sys_id',path);
gr.query();
if(gr.next())
{
values.approver = gr.managed_by.toString();
values.type = gr.u_type.getDisplayValue();
values.protocol = gr.u_protocol.getDisplayValue();
}
return JSON.stringify(values);
},
type: 'populate_modify_network'
});
Even though Employment Center showing up as the correct protocol, it is not getting into the variable.
Regards
Suman P.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 04:47 AM
you should set either of those 2 choice values.
check the value in server side and set it accordingly
var populate_modify_network = Class.create();
populate_modify_network.prototype = Object.extendsObject(AbstractAjaxProcessor, {
get_modify: function() {
var path = this.getParameter('sysparm_share_path');
var values = {};
var gr = new GlideRecord('u_cmdb_ci_file_share');
gr.addQuery('sys_id', path);
gr.query();
if (gr.next()) {
values.approver = gr.managed_by.toString();
values.type = gr.u_type.getDisplayValue();
if (gr.u_protocol.toString() == 'Windows Only')
values.protocol = 'windows';
else
values.protocol = 'multiprotocol';
}
return JSON.stringify(values);
},
type: 'populate_modify_network'
});
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 02:51 AM
if the choice values for the field and select box match then this should work fine
values.protocol = gr.u_protocol.toString();
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 03:09 AM
Your log shows "Windows Only". Does the variable have a Question Choice with this Value (not Text)? Also note that your script will not run beyond the opening if block if the share_path variable is changed to blank due to the OR condition:
if (isLoading || newValue == '') {
return;
}
so just change that to if (isLoading) {
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 03:48 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2025 03:56 AM
For some reason, even though I have two selectbox options, I am showing 3 in the ESC variable.
Regards
Suman P.