- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-16-2022 12:25 AM
Hi All,
Please suggest me how to add choice values from array.
Array CHOICEVALUES[value,label]
[chat,Chat,voice_call,Voice Call,walk-in,Walk In,email_fire,Email Fire]
Issue : Now How to add choices from Workspace client script using with for-loop
function onClick(g_form) {
var fields = [{
type: 'choice',
name: 'invoice_type',
label: getMessage('invoice type'),
value: getMessage(' -- Select -- '),
choices: [{
displayValue: '',
value: ''
}],
mandatory: true
}, {
type: 'string',
label: getMessage('Invoicer'),
value: g_form.getDisplayValue('consumer'),
readonly: true,
}];
g_modal.showFields({
title: "Product for Invoice",
fields: fields,
size: 'lg'
}).then(function(fieldValues) {
g_form.setValue('short_description', fieldValues.updatedFields[1].value);
//<--------------------------------------------------------------------------------------->//
var ga = new GlideAjax('CDAInvoiceProcessor');
ga.addParam('sysparm_name', 'getInvoiceTypes');
ga.getXML(populateChoiceeField);
function populateChoiceeField(response) {
var msg = response.responseXML.documentElement.getAttribute('answer').toString();
if (msg != '') {
msg = msg.split(',');
if (msg.length > 0) {
g_form.clearOptions(fieldValues.updatedFields[0].name);
g_form.addOption(fieldValues.updatedFields[0].name, '', '-- None --');
for (var i = 0; i < msg.length; i = i + 2) {
fieldValues.updatedFields[0].value= msg[i];
fieldValues.updatedFields[0].displayValue= msg[i+1];
}
}
}
}
//<---------------------------------------------------------------------------------------->//
});
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-17-2022 05:52 AM
Hi,
if you wish to add None then do this
Script Include:
var arr = [];
// to add None
arr.push({
"value":"",
"displayValue":"-- None --"
});
var DWN = new GlideRecord("u_customer");
DWN.addQuery("u_active", true);
DWN.addQuery("u_name", "Customer Specific Type");
DWN.addQuery('u_customer',' b70c0f830f37330013a831ef68767e33');
DWN.query();
if (DWN.next()) {
PARMS = DWN.u_parms.split(',');
gs.info("PARMS " + PARMS.length + "--" + PARMS);
for (var i = 0; i < PARMS.length; i++) {
var obj = {};
var choice = new GlideRecord('sys_choice');
choice.addQuery('name', 'incident');
choice.addQuery('language', 'en');
choice.addQuery('element', 'contact_type');
choice.addQuery('inactive', false);
choice.addQuery('value', PARMS[i]);
choice.query();
if (choice.next()) {
obj["value"] = choice.value.toString();
obj["displayValue"] = choice.label.toString();
arr.push(obj);
}
}
}
var result = {};
result["choices"] = arr;
return JSON.stringify(result);
},
Workspace client script:
function onClick(g_form) {
var fields = [];
fields.push({
type: 'string',
label: getMessage('Invoicer'),
value: g_form.getDisplayValue('consumer'),
readonly: true,
});
var ga = new GlideAjax('CDAInvoiceProcessor');
ga.addParam('sysparm_name', 'getInvoiceTypes');
ga.getXML(populateChoiceeField);
ga.getXMLAnswer(populateChoiceeField);
function populateChoiceeField(response) {
var msg = response;
var answer = JSON.parse(msg);
fields.push({
type: 'choice',
name: 'invoice_type',
label: getMessage('invoice type'),
choices: answer.choices,
mandatory: true
});
g_modal.showFields({
title: "Product for Invoice",
fields: fields,
size: 'lg'
}).then(function(fieldValues) {
g_form.setValue('short_description', fieldValues.updatedFields[1].value);
//<--------------------------------------------------------------------------------------->//
//<---------------------------------------------------------------------------------------->//
});
}
}
Regards
Ankur
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-17-2022 05:52 AM
Hi,
if you wish to add None then do this
Script Include:
var arr = [];
// to add None
arr.push({
"value":"",
"displayValue":"-- None --"
});
var DWN = new GlideRecord("u_customer");
DWN.addQuery("u_active", true);
DWN.addQuery("u_name", "Customer Specific Type");
DWN.addQuery('u_customer',' b70c0f830f37330013a831ef68767e33');
DWN.query();
if (DWN.next()) {
PARMS = DWN.u_parms.split(',');
gs.info("PARMS " + PARMS.length + "--" + PARMS);
for (var i = 0; i < PARMS.length; i++) {
var obj = {};
var choice = new GlideRecord('sys_choice');
choice.addQuery('name', 'incident');
choice.addQuery('language', 'en');
choice.addQuery('element', 'contact_type');
choice.addQuery('inactive', false);
choice.addQuery('value', PARMS[i]);
choice.query();
if (choice.next()) {
obj["value"] = choice.value.toString();
obj["displayValue"] = choice.label.toString();
arr.push(obj);
}
}
}
var result = {};
result["choices"] = arr;
return JSON.stringify(result);
},
Workspace client script:
function onClick(g_form) {
var fields = [];
fields.push({
type: 'string',
label: getMessage('Invoicer'),
value: g_form.getDisplayValue('consumer'),
readonly: true,
});
var ga = new GlideAjax('CDAInvoiceProcessor');
ga.addParam('sysparm_name', 'getInvoiceTypes');
ga.getXML(populateChoiceeField);
ga.getXMLAnswer(populateChoiceeField);
function populateChoiceeField(response) {
var msg = response;
var answer = JSON.parse(msg);
fields.push({
type: 'choice',
name: 'invoice_type',
label: getMessage('invoice type'),
choices: answer.choices,
mandatory: true
});
g_modal.showFields({
title: "Product for Invoice",
fields: fields,
size: 'lg'
}).then(function(fieldValues) {
g_form.setValue('short_description', fieldValues.updatedFields[1].value);
//<--------------------------------------------------------------------------------------->//
//<---------------------------------------------------------------------------------------->//
});
}
}
Regards
Ankur
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-17-2022 05:59 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-17-2022 06:00 AM
Glad to help.
Happy learning.
Regards
Ankur
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-17-2022 06:47 AM
I just created a blog for this so that it helps community members.
Populating dynamic choices in workspace form pane for choice field type
Do visit and mark it helpful and also bookmark it.
Regards
Ankur
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-17-2022 06:08 AM
Small correction
comment out this line
ga.getXML(populateChoiceeField);
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader