- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-28-2023 02:15 AM
Hi All,
In a knowledge form, we have a field called "OpCo (List Collector)", If we have selected any value in the OpCo field (ex: FXE,FXO), this should be populated in the prefix of short description field. I have written onload client script, but instead of choice name, the value is populated, can anyone help me on this? see below images for reference.
Onload Client script:
function onLoad() {
//Type appropriate comment here, and begin script below
var list = g_form.getValue('u_opcom').toString();
alert(list);
var array = list.split(',');
for (var i=0; i < array.length; i++) {
g_form.addInfoMessage("This should be the list collector value " + array[i]);
var shortDesc = g_form.getValue('short_description');
g_form.setValue('short_description', array[i].toString() + ' , ' + shortDesc);
}
}
Here 2 and 1 are the choice value of FXE and FXO.
Thanks.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-28-2023 03:22 AM
Hi @MS17 ,
Create a client callable script include as follows:
var GetKbArticles = Class.create();
GetKbArticles.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getWatchList:function(){
var id = this.getParameter('sysparm_sysID');
var watchlist;
var kb=new GlideRecord('kb_knowledge');
if(kb.get(id.toString())){
watchlist=kb.getDisplayValue('u_opcom');
}
return watchlist.toString();
},
type: 'GetKbArticles'
});
And call in client script.
function onLoad() {
//Type appropriate comment here, and begin script below
if (!g_form.isNewRecord()) {
var arr = [];
var ga = new GlideAjax('GetKbArticles');
ga.addParam('sysparm_name', "getWatchList");
ga.addParam('sysparm_sysID', g_form.getUniqueValue());
ga.getXMLAnswer(function(answer) {
arr = answer.split(',');
for (var i = 0; i < arr.length; i++) {
g_form.addInfoMessage("This should be the list collector value " + arr[i]);
var shortDesc = g_form.getValue('short_description');
g_form.setValue('short_description', arr[i].toString() + ' , ' + shortDesc);
}
});
}
}
Thanks,
Gopi

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-28-2023 07:49 AM
You can use below :
function onLoad() {
var list = g_form.getValue('u_opcom').toString();
var shortDesc = g_form.getValue('short_description').split(':');
if (shortDesc.length > 1)
shortDesc = shortDesc[1];
else
shortDesc = shortDesc[0];
var op = [];
var array = list.split(',');
for (var i = 0; i < array.length; i++) {
if (array[i] == '1')
op.push('FXO');
if (array[i] == '2')
op.push('FXE');
}
if(op.length>0)
g_form.setValue('short_description', op.toString() + ':' + shortDesc); // here : is used to separate OpCo and short description
}
Thanks
Anil Lande
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-17-2023 09:47 AM
How did you handle 20 choices?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-31-2024 01:15 PM
I have a similar use case.
Can you look below in my script and see why it is not working?
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var list = g_form.getDisplayValue('parent').toString();
var array = list.split(',');
alert("list is " +array);
for (var i = 0; i < array.length; i++) {
if (array[i].includes('RITM')) {
g_form.setValue('type', 'Enhancement::Planned Change');
alert("set type field for ritm");
// return;
} else if (array[i].includes('PRB')) {
g_form.setValue('type', 'HI22');
// return;
}
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-28-2023 02:54 AM
Hi @MS17 ,
Try to Use var list=g_form.g_form.getDisplayBox('u_opcom').value;
Thanks,
Gopi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-28-2023 03:06 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-28-2023 03:06 AM
You can Use ist=g_form.getDisplayBox('u_opcom').value; to get display values.
Thanks,
Gopi