- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2018 07:50 PM
Hi Friends,
I have a requirement to auto populate the age based on date of birth.I have created a script include and catalog client script for this but the age is not auto populating.while checking the script Include in background script it is working, I think the problem is with client script, can anyone please check and advise us where I am making mistake
Script Include:
var Agescript = Class.create();
Agescript.prototype = {
checkage: function() {
var dob = this.getParameter(sysparam_id);//get data from catalog
var today = new GlideDateTime(gs.nowDateTime());
var todayyear = today.getYearLocalTime();
var bday = new GlideDateTime(dob.tostring());
var bdayyear = bday.getYearLocalTime();
var age = todayyear - bdayyear;
return age;
},
type: 'Agescript'
};
Client Script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
//Type appropriate comment here, and begin script below
var ga = new GlideAjax('Agescript');
ga.addparam('sysparam_name','checkage');
ga.addParam('sysparam_id',g_form.getValue('dob'));
ga.getXML(Age);
function Age(response){
var ages = response.responseXML.documentElement.getAttribute("Age");
alert("Age is" + ages);
g_form.setValue('age',Age);
}
}
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2018 11:44 PM
Hi
in the below image
in the script below on line 2
Agescript.prototype should be like this. there is a space seen in your line.
I recommend you to create a new client callable Script include .

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2018 09:23 PM
dont forget to replace 'sysparam' with 'sysparm' in the script include also now. Also update the addparam method to addParam
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2018 09:36 PM
When I Select the date of birth instead of age function is getting populated

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2018 09:38 PM
your screenshot did not come through
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2018 10:39 PM
Getting Age is null when checked with alert.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2018 09:27 PM
Hi
var Agescript = Class.create();
Agescript .prototype = Object.extendsObject(AbstractAjaxProcessor,
{
checkage: function() {
var dob = this.getParameter(sysparam_id);//get data from catalog
var today = new GlideDateTime(gs.nowDateTime());
var todayyear = today.getYearLocalTime();
var bday = new GlideDateTime(dob.tostring());
var bdayyear = bday.getYearLocalTime();
var age = todayyear - bdayyear;
return age;
},
type: 'Agescript '
});
This will work in client script when client callable is ticked.
Mark Correct if it helps.
Warm Regards,
Omkar Mone
www.dxsherpa.com