- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2023 01:01 AM
Hi All,
I have a requirement to show the sub account(and make it mandatory) only when selected account has any child account.
I tried using client script but it was not working.
Onchange of Account
var subAccount = g_form.getValue("u_sub_account");
g_form.clearValue("u_sub_account");
if (subAccount == '') {
g_form.setMandatory("u_sub_account", false);
} else {
g_form.setMandatory("u_sub_account", true);
}
So I tried using script include.
Script include
var account_details = Class.create();
account_details.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getSubAccount: function() {
var answer = "";
var subacc = this.getParameter('sysparm_account');
var acc = new GlideRecord('customer_account');
// acc.addQuery('account_parent',subacc);
acc.addEncodedQuery('account_parentISNOTEMPTY');
acc.query();
if (acc.next()) {
answer = 'Yes';
} else {
answer = 'No';
}
return answer;
},
type: 'account_details'
});
And Onchange client script
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var subAccount = g_form.getValue("u_sub_account");
var account = g_form.getValue("account");
var ga = new GlideAjax('account_details');
ga.addParam('sysparm_name', 'getSubAccount');
ga.addParam('sysparm_account', account);
ga.getXML(myCallBack);
//ga.getXMLAnswer(getAccount);
function myCallBack(response) {
var cc = response.responseXML.documentElement.getAttribute('answer');
alert(cc);
if (cc == 'Yes') {
g_form.setMandatory("u_sub_account", true);
}
}
// function getAccount(answer) {
// g_form.setMandatory("u_sub_account", true);
// }
g_form.clearValue("u_sub_account");
}
In alert null is coming.
Please help in this.
Thanks,
Samiksha Sonam
Solved! Go to Solution.
- Labels:
-
Customer Service Management
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2023 01:48 AM
I have made small change in the script include and client script. It is working now.
Script include:
var account_details = Class.create();
account_details.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getSubAccount: function() {
var subacc = this.getParameter('sysparm_account');
var acc = new GlideRecord('customer_account');
// acc.addQuery('account_parent',subacc);
//acc.addEncodedQuery('account_parentISNOTEMPTY');
acc.addEncodedQuery('account_parent=' + subacc);
acc.query();
if (acc.next()) {
var answer = 'Yes';
} else {
var answer = 'No';
}
return answer;
},
type: 'account_details'
});
Client script: Onchange of Account
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var subAccount = g_form.getValue("u_sub_account");
var account = g_form.getValue("account");
var ga = new GlideAjax('account_details');
ga.addParam('sysparm_name', 'getSubAccount');
ga.addParam('sysparm_account', account);
ga.getXML(myCallBack);
//ga.getXMLAnswer(getAccount);
function myCallBack(response) {
var cc = response.responseXML.documentElement.getAttribute('answer');
alert(cc);
if (cc == 'Yes') {
g_form.setMandatory("u_sub_account", true);
}
else{
g_form.setMandatory("u_sub_account", false);
}
}
// function getAccount(answer) {
// g_form.setMandatory("u_sub_account", true);
// }
g_form.clearValue("u_sub_account");
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-25-2023 01:48 AM
I have made small change in the script include and client script. It is working now.
Script include:
var account_details = Class.create();
account_details.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getSubAccount: function() {
var subacc = this.getParameter('sysparm_account');
var acc = new GlideRecord('customer_account');
// acc.addQuery('account_parent',subacc);
//acc.addEncodedQuery('account_parentISNOTEMPTY');
acc.addEncodedQuery('account_parent=' + subacc);
acc.query();
if (acc.next()) {
var answer = 'Yes';
} else {
var answer = 'No';
}
return answer;
},
type: 'account_details'
});
Client script: Onchange of Account
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var subAccount = g_form.getValue("u_sub_account");
var account = g_form.getValue("account");
var ga = new GlideAjax('account_details');
ga.addParam('sysparm_name', 'getSubAccount');
ga.addParam('sysparm_account', account);
ga.getXML(myCallBack);
//ga.getXMLAnswer(getAccount);
function myCallBack(response) {
var cc = response.responseXML.documentElement.getAttribute('answer');
alert(cc);
if (cc == 'Yes') {
g_form.setMandatory("u_sub_account", true);
}
else{
g_form.setMandatory("u_sub_account", false);
}
}
// function getAccount(answer) {
// g_form.setMandatory("u_sub_account", true);
// }
g_form.clearValue("u_sub_account");
}