- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-28-2016 12:56 PM
I created a UI Page that incorporates a reference field using <g:ui_reference>. Field 13 in the below screenshot uses this code:
<label> 13. Name of family member $[SP]<i>(last, first, middle initial)</i></label>
<g:ui_reference name="family_member_1" id="family_member_1" table="hr_beneficiary" query="active=true" completer="AJAXTableCompleter" columns="employee; beneficiary_contact.relationship" />
When a user chooses a beneficiary from the reference field, I want 14. SSN and 15. DOB to autopopulate. If this was a regular Record Producer, I would have written an onChange client script on 13. Name of family member, but since this form is coded as a UI Page, I can't utilize g_form. How would I go about autopopulating fields based on the reference chosen?
Thanks!
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2017 08:10 AM
You will have to add toString() to all the elements in the object as shown below. Copy the function as is in to your script include and you are good to go
getDetails: function(){
var obj = {};
var usr= new GlideRecord('hr_beneficiary');
usr.addQuery('employee',gs.getUserID());
usr.addQuery('sys_id',this.getParameter('sysparm_id'));
usr.query();
if(usr.next()){
var name = usr.beneficiary_contact.name.toString();
var arr2 = name.split(" ") ;
var name2 = arr2[1] + ", " + arr2[0];
obj.beneficiary_name = name2;
obj.beneficiary_ssn = usr.getValue('ssn');
obj.beneficiary_date_of_birth = usr.getValue('date_of_birth');
obj.beneficiary_email = usr.beneficiary_contact.email.toString();
obj.beneficiary_mobile=usr.beneficiary_contact.mobile_phone.toString();
obj.beneficiary_relationship=usr.beneficiary_contact.relationship.toString();
obj.beneficiary_percentage=usr.getValue('percentage');
obj.beneficiary_address=usr.beneficiary_contact.address.toString();
}
var data = JSON.stringify(obj);
return data;
},

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2017 07:54 AM
getValue() does not work when you are dot walking. Can you put an alert in the callback function of the client script and see what it shows
var ga = new GlideAjax('GetBeneficiaryDetails');
ga.addParam('sysparm_name','getDetails');
ga.addParam('sysparm_id', $('family_member_1').value);
ga.getXML(CallBack);
function CallBack(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var rec=JSON.parse(answer);
alert(rec);
$('fm1_ssn').value=rec.beneficiary_ssn;
$('fm1_dob').value= rec.beneficiary_date_of_birth;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2017 08:00 AM
the message i receive is [object Object]

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2017 08:02 AM
How about alert(answer); what does it show?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2017 08:05 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2017 08:10 AM
You will have to add toString() to all the elements in the object as shown below. Copy the function as is in to your script include and you are good to go
getDetails: function(){
var obj = {};
var usr= new GlideRecord('hr_beneficiary');
usr.addQuery('employee',gs.getUserID());
usr.addQuery('sys_id',this.getParameter('sysparm_id'));
usr.query();
if(usr.next()){
var name = usr.beneficiary_contact.name.toString();
var arr2 = name.split(" ") ;
var name2 = arr2[1] + ", " + arr2[0];
obj.beneficiary_name = name2;
obj.beneficiary_ssn = usr.getValue('ssn');
obj.beneficiary_date_of_birth = usr.getValue('date_of_birth');
obj.beneficiary_email = usr.beneficiary_contact.email.toString();
obj.beneficiary_mobile=usr.beneficiary_contact.mobile_phone.toString();
obj.beneficiary_relationship=usr.beneficiary_contact.relationship.toString();
obj.beneficiary_percentage=usr.getValue('percentage');
obj.beneficiary_address=usr.beneficiary_contact.address.toString();
}
var data = JSON.stringify(obj);
return data;
},