Please help me to debug client script, to parse values from script include to client script
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-15-2023 12:20 AM
Hi All,
I have a script include to parse some KB's number, short description and sys_id. Which is working in background script even.
When I am trying to setValue() in client script, it is not working. It is not even passing any single value:-
OnChange Catalog Client script-
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue === '') {
return;
}
var fvar = g_form.getValue('find');
var gagetKB = new GlideAjax('DTTLsoarKBfindANDreplace');
gagetKB.addParam('sysparm_name', 'getGEMSKB');
gagetKB.addParam('sysparm_fvariable', fvar);
gagetKB.getXML(getValue);
function getValue(response) {
var answer = response.responseXML.documentElement.getAttribute('answer');
if (!answer) {
return;
}
try {
var responseObject = JSON.parse(answer);
var findingsArray = responseObject.responses;
for (var i = 0; i < findingsArray.length; i++) {
var article = findingsArray[i];
g_form.setValue('serched_itemssss', article.sd);
}
} catch (error) {
}
}
}
Script Include Parm-
getGEMSKB: function() {
var fvar = this.getParameter('sysparm_fvariable');
var responseObject = {};
var gr = new GlideRecord('kb_knowledge');
gr.addQuery('text', 'CONTAINS', fvar);
gr.query();
var responseArray = [];
while (gr.next()) {
var responseObj = {};
responseObj.sd = gr.short_description.toString();
responseObj.num = gr.number.toString();
responseObj.sysID = gr.sys_id.toString();
responseObj.prop = gs.getProperty('instance_name');
responseArray.push(responseObj);
}
responseObject.responses = responseArray;
return JSON.stringify(responseObject);
},
Please help me to find out the issue.....Thank you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-15-2023 01:53 AM
@chandan15 You code looks good. I checked its working in my PDI.
Can you check if client callable checkbox is checked in script include and your code should look like as below.
var DTTLsoarKBfindANDreplace = Class.create();
DTTLsoarKBfindANDreplace.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getGEMSKB: function() {
var fvar = this.getParameter('sysparm_fvariable');
var responseObject = {};
var gr = new GlideRecord('kb_knowledge');
gr.addQuery('text', 'CONTAINS', fvar);
gr.query();
var responseArray = [];
while (gr.next()) {
var responseObj = {};
responseObj.sd = gr.short_description.toString();
responseObj.num = gr.number.toString();
responseObj.sysID = gr.sys_id.toString();
responseObj.prop = gs.getProperty('instance_name');
responseArray.push(responseObj);
}
responseObject.responses = responseArray;
return JSON.stringify(responseObject);
},
type: 'DTTLsoarKBfindANDreplace'
});
Also in client script, you are trying set "serched_itemssss" field in for loop. As it is in for loop, only last value will get store into it.
If I could help you with your Query then, please hit the Thumb Icon and mark as Correct !!