- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2020 11:24 AM
I have an onChange client script that collects an array of values (groups) that the user selected is in. How can I add these values in a select box as options?
I want those values in the "Existing HLA Access in Group(s):" field to be options in remove from group. For example: "Domain RTR Admins", "Domain CyberArk Users", and "Domain SMS Users-WAN" as options in the "Remove from Group" Select Box. The text in that field will change whenever the requested for is changed, so I need to create a functionality that will populate the selectbox options with that.
Here is the client script to populate the first text field:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('getHLAGroups');
ga.addParam('sysparm_name', 'groupHLA');
ga.addParam('sysparm_userSelect', g_form.getValue('u_user_hla'));
ga.getXML(updateGroup);
}
function updateGroup(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
// alert('Answer is: '+answer);
answer = answer.slice(0, -1);
var inAnswer = answer.split(';');
var outData = '';
for (var i=0; i < inAnswer.length; i++) {
outData = outData+'\n'+inAnswer[i].toString();
}
g_form.setValue('u_group_hla', outData);
}
I tried this:
myArray = answer.split(",");
var a = myArray[0];
alert(a);
g_form.addOption('remove_from_group', 'myArray[0]','myArray');
but it keeps adding "MyArray" as the only option in the select box.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2020 11:28 AM
try below
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('getHLAGroups');
ga.addParam('sysparm_name', 'groupHLA');
ga.addParam('sysparm_userSelect', g_form.getValue('u_user_hla'));
ga.getXML(updateGroup);
}
function updateGroup(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
// alert('Answer is: '+answer);
answer = answer.slice(0, -1);
var inAnswer = answer.split(';');
var outData = '';
for (var i = 0; i < inAnswer.length; i++) {
outData = outData + '\n' + inAnswer[i].toString();
g_form.addOption('u_group_hla', inAnswer[i].toString(), inAnswer[i].toString());
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2020 11:28 AM
try below
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('getHLAGroups');
ga.addParam('sysparm_name', 'groupHLA');
ga.addParam('sysparm_userSelect', g_form.getValue('u_user_hla'));
ga.getXML(updateGroup);
}
function updateGroup(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
// alert('Answer is: '+answer);
answer = answer.slice(0, -1);
var inAnswer = answer.split(';');
var outData = '';
for (var i = 0; i < inAnswer.length; i++) {
outData = outData + '\n' + inAnswer[i].toString();
g_form.addOption('u_group_hla', inAnswer[i].toString(), inAnswer[i].toString());
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2020 01:37 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2020 01:42 PM
try below
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('getHLAGroups');
ga.addParam('sysparm_name', 'groupHLA');
ga.addParam('sysparm_userSelect', g_form.getValue('u_user_hla'));
ga.getXML(updateGroup);
}
function updateGroup(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
// alert('Answer is: '+answer);
answer = answer.slice(0, -1);
var inAnswer = answer.split(';');
var outData = '';
g_form.clearOptions('u_group_hla');
for (var i = 0; i < inAnswer.length; i++) {
outData = outData + '\n' + inAnswer[i].toString();
g_form.addOption('u_group_hla', inAnswer[i].toString(), inAnswer[i].toString());
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-06-2023 04:43 AM
Hi @Mike Patel ,
I need your help, I have similar king of request.
Two fields on the form:
1) Business Unit - Lookup Select Box
2) Country - Lookup Select Box
Script Include -
country: function() {
var bu = this.getParameter('sysparm_bu');
gs.log("I am Business" + bu);
//var arr = [];
var gr = new GlideAggregate('u_oracle_financial_approvals');
gr.addQuery('u_business_unit', bu);
gr.groupBy('u_country');
gr.query();
gs.log("Tejas" + gr);
var arr = [];
while (gr.next()) {
var obj = gr.getValue('u_country').toString() + "";
arr.push(obj);
gs.log("Result", +arr);
}
var data = JSON.stringify(arr);
gs.log('Final Result', data);
return data;
},
OnChange Catalog Client Script -
var rf = g_form.getDisplayValue('u_business_unit');
alert('Hi, I am ' + rf);
var ga = new GlideAjax('Oracle_Business_Units');
ga.addParam('sysparm_name', 'country');
alert('Hi, I am ' + rf);
ga.addParam('sysparm_bu', rf);
ga.getXMLAnswer(setAnswer);
function setAnswer(response) {
var arr = JSON.parse(response);
//var res = arr.split('#');
g_form.setValue('country', arr);
}
With above scripts we are getting below output where we don't need highlighted country names which are coming from reference table, we need those highlighted in blue which is correct output getting added at the end with comma separated values
With the above script I am getting expected output in logs
but in the variable on the form, I am getting all country values with my expected values with printed in one line as comma separated values, which need to be selectable choices
Thanks,
Tejas
