
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2019 11:09 AM
Hello,
On the Business Service form, we have added the 2 Portfolio reference fields that reference the 'Product Portfolio' table. One called 'Product Portfolio' (u_prdct_portfolio) and one 'Software Development Organization' (u_sd_portfolio). I am trying to pull the "Manager" field/value from each portfolio record to a reference field called 'PP Manager' and 'SD Manager' on the same Business Service form. I was able to dot.walk the field from the Portfolio Table but then I can only have one manager field on the form.
I have seen some articles and even thought @Chuck Tomasi had created a YouTube pulling values from an existing reference field because reference fields bring all the data values related to it to the form but I can't track it down. I know it can be done with GlideAjax but trying to keep to a simpler solution. I have tried the following to the Dictionary Entry's 'Default Value' field but no success.
javascript:u_prdct_portfolio.portfolio_manager;
javascript:u_prdct_portfolio.portfolio_manager.toString();
javascript:u_prdct_portfolio.portfolio_manager.getDisplayValue();
javascript:new u_prdct_portfolio.portfolio_manager;
javascript:new u_prdct_portfolio.portfolio_manager.toString();
javascript:new u_prdct_portfolio.portfolio_manager.getDisplayValue();
So now I am trying this article's onChange Client Script but I am still missing something. https://community.servicenow.com/community?id=community_question&sys_id=05638725dbd8dbc01dcaf3231f96...
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
var ppm = g_form.getReference('u_prdct_portfolio', manager);
}
function manager(pm) {
g_form.setValue('u_prdct_portfolio.manager', ppm.portfolio_manager);
}
Thank you for your help,
-Wesley
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2019 11:50 PM
Okay.
So in your onchange client script function, there is an error in the parameters passing. Try this code
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
var ppm = g_form.getReference('u_prdct_portfolio', manager);
function manager(ppm) {
g_form.setValue('u_prdct_portfolio.manager', ppm.portfolio_manager); //cross verify the field name once if this is correct?
}
}
Similarly, write onchange for the other field as well.
Mark the comment as a correct answer and also helpful once worked.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2019 11:29 AM
Hi,
If you want to have more than 1 manager shown, then you need to create those fields as reference and then under Reference specification, select advanced qualifier and call a script include which returns the comma separated sys_ids of all portfolio managers.
Mark the comment as a correct answer if this answers your question.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2019 01:01 PM
Hello Asifnoor,
Nope, not more than 1 manager. One manager for 'Product Portfolio' and one manager for 'Software Development Organization' would auto-populate them manager for that selected porfolio. Both managers would be pulled from the same Product Portfolio Out-of-the-box table. So user would select Product Portfolio and the manager would auto-populate and then when the user selects the Software Development Organization the manager for that portfolio would auto-populate to its respective manager field.
Hope that makes sense.
-Wesley

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2019 11:50 PM
Okay.
So in your onchange client script function, there is an error in the parameters passing. Try this code
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
var ppm = g_form.getReference('u_prdct_portfolio', manager);
function manager(ppm) {
g_form.setValue('u_prdct_portfolio.manager', ppm.portfolio_manager); //cross verify the field name once if this is correct?
}
}
Similarly, write onchange for the other field as well.
Mark the comment as a correct answer and also helpful once worked.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-09-2019 11:23 AM
Hi Asifnor,
I found out the issue. My client script was on [cmdb_ci_service_discovered] table vs. [cmdb_ci_service] and I was working with a Business Service record that hadn't been discovered yet. Once I created the client script on the [cmdb_ci_service] table everything worked great. Small ServiceNow glitch (migration issue) you have to pay attention if the Business Service has been mapped/discovered yet. If so, you get redirected to a different table.
Thanks your help.
-Wesley