Client catalog script stopped working
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-27-2023 09:28 AM
XML Response: <ml answer="Apple MacBook Pro, Apple Magic Keyboard with Numeric Keypad, Mouse, Headset | |1509aa4387b79d10d1d5cb7eebb35b5, 71d96a4387b79d10d1d5cb7edebb35be, 9ee9668387b79d10d1d5cb7e@ebb352a, c9f9668387b79d10d1d5cb7edebb35 e5" sysparm max="15" sysparm name="options" sysparm processor="findOptions"></xml>
Answer: Apple MacBook Pro,Apple Magic Keyboard with Numeric Keypad, Mouse, Headset ||1509a4387b79d10d1d5cb7edebb35b5,71d96a4387b79d10d1d5cb7edebb35be,9ee9668387b79d10d1d5cb7e0ebb352a, c9f9668387b79d10d1d5cb7e0ebb355
In the prod instance it gives me the following XML response:
XML Response: <xml sysparm_max="15" sysparm_name="options" sysparm_processor="findOptions"></xml>
Answer: null
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var bundleSelected = g_form.getValue('u_bundle');
var ga = new GlideAjax('findOptions');
ga.addParam('sysparm_name', 'options');
ga.addParam('sysparm_u_bundle', bundleSelected);
ga.getXML(doSomething);
}
function doSomething(response) {
var xmlResponse = response.responseXML.documentElement;
var answer = xmlResponse.getAttribute('answer');
// Log the XML response and answer for debugging
console.log('XML Response:', xmlResponse);
console.log('Answer:', answer);
// Check if answer is not null or undefined before splitting
if (answer !== null && answer !== undefined) {
var arr = answer.split('||');
if (window === null) {
g_form.setValue('hardware_options', arr[1], arr[0]);
} else {
addItemsToList('hardware_options', arr[1], arr[0]);
}
} else {
// Handle the case where answer is null or undefined
console.error('Answer is null or undefined.');
}
}
function addItemsToList(listCollector, sysid, displayValue) {
g_form.clearValue('hardware_options');
var bundles = g_form.getValue('u_bundle');
if (bundles == 'mac' || bundles == 'windows' || bundles == 'monitor') {
var varName = listCollector;
var leftBucket = document.getElementById(varName + '_select_0');
var rightBucket = document.getElementById(varName + '_select_1');
var selectedOptionsIDs = [];
rightBucket.options.length = 0;
if (sysid != '') {
var myCIArray = sysid.split(',');
var myDisplayValue = displayValue.split(',');
for (i = 0; i < myCIArray.length; i++) {
var option = document.createElement('option');
option.value = myCIArray[i];
option.text = myDisplayValue[i];
rightBucket.add(option);
}
}
sortSelect(rightBucket);
moveSelectedOptions(selectedOptionsIDs, leftBucket, rightBucket, '--None--');
} else {
g_form.clearValue('hardware_options');
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-27-2023 11:58 AM - edited 12-28-2023 06:27 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-28-2023 07:14 PM
@nimishpatel This could be due to one of the following reasons.
1. Table u_hardware_request_option doesn't have any record on the prod
2. Table u_hardware_request_option has an ACL which is preventing the access to records
3. Table u_hardware_request_option has a query business rule working on it which is filtering the records
4. There is a difference between the source code of client script/script include on dev and prod.
Hope this helps.