- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-07-2018 05:39 AM
Hi,
in project table i have a field called "it segment".if that i"t segment" is equal to "xyz" then only i need to set some values in child table(decision) like short description to "test"and approval required to yes
Please find the scripts used:
client script:table:Decission
function onLoad() {
//Type appropriate comment here, and begin script below
var itsegement=g_form.getValue("it_segments");------>it is in parent table
alert(itsegement);
var ga = new GlideAjax('SetValuesforITSDProject');-->my script include
ga.addParam('sysparm_name','myfunction');
ga.addParam('sysparm_user_name',g_form.getValue("it_segments"));
ga.getXML(setValue);
function setValue(response)
{
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
g_form.setValue("short_description",answer);
g_form.setValue("approval_required",'yes');
}}
script include:
var SetValuesforITSDProject = Class.create();
SetValuesforITSDProject.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
myfunction: function() {
var name = this.getParameter('sysparm_user_name').toString();
return "test";}
});
kindly help here. Thanks in advance!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-08-2018 02:17 AM
Hi Akash,
If you are having field on child which refers to parent then Have display business rule and set the value in scratchpad variable for it segment.
use this scratchpad variable in onLoad and compare it with your sys id and then set the value for the required fields.
Mark Correct if this solves your issue and also mark Helpful if you find my response worthy based on the impact.
Thanks
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
08-07-2018 05:56 AM
Hi Akash,
So what is your question here? What is not working?
On which table this client script is working? Also the description and approval_required fields are on what table i.e. parent or child?
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
08-07-2018 06:05 AM
Hello,
If you have the it_segments field on the child form already why do you need the glide ajax? Have you extended that field from the parent to the child? If so then you should be able to just use that in your condition like:
if(g_form.getValue('it_segments') == 'this value'){
//add code
}
if it isn't on the form then your itsegement variable will not have a value.
Cheers
Dave
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-07-2018 06:11 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-07-2018 06:15 AM
OK you can't use g_form.getValue to get the value of a field on the parent form. Use this code instead, you just need to pass the sys_id of the child record so you can retrieve the parent and then return the value of the it segment
client script:
function onLoad() {
if(isNewRecord()){ //i'm assuming you only want this to run when you first open the child ticket?
var ga = new GlideAjax('SetValuesforITSDProject');-->my script include
ga.addParam('sysparm_name','myfunction');
ga.addParam('sysparm_parent',g_form.getValue("parent"));
ga.getXML(setValue);
function setValue(response)
{
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
g_form.setValue("short_description",answer);
g_form.setValue("approval_required",'yes');
}
}
}
script include
var SetValuesforITSDProject = Class.create();
SetValuesforITSDProject.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
myfunction: function() {
var parent = this.getParameter('sysparm_parent');
var gr = new GlideRecord('pm_project');
if(gr.get(parent)){
return gr.it_segments.getDisplayValue(); //is this an OOB field? should be u_it_segments no?
}
});