- 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:14 AM
yea i am

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2017 07:15 AM
Is your UI page and script include both in the same scope?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2017 07:20 AM
yes it is

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2017 07:31 AM
Okay, can you just create a script inlcude in your scope so that all the function definitions will be autopopulated. Then just add this function to the script include
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;
var arr2 = name.split(" ") ;
var name2 = arr2[2] + ", " + arr2[1];
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;
obj.beneficiary_mobile=usr.beneficiary_contact.mobile_phone;
obj.beneficiary_relationship=usr.beneficiary_contact.relationship;
obj.beneficiary_percentage=usr.getValue('percentage');
obj.beneficiary_address=usr.beneficiary_contact.address;
}
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:50 AM
Thank you so much for helping me through this Abhinay, the code now runs, but the elements that require dot-walking still do not populate. Does this have something to with getValue not being present for the dot-walked values? For example the email code is obj.beneficiary_email = usr.beneficiary_contact.email; should it be obj.beneficiary_email = usr.getValue('beneficiary_contact.email');?