- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-17-2022 06:13 AM
Hello,
I have to show some field message on the form when loaded but in that it should get the value of 'program manger' and 'backup program manager' fields value I mean what it is having so, I have written on lead clent script in 'demand' table like g_form.showFieldMsg('checkbox field value','this field is to be ticked by person A and person B ',"info");
Instead of A and B it should pick the values in those 'program manager' and 'backup program manager' those are in 'program' table
Thanks in advance ...
Solved! Go to Solution.
- Labels:
-
Demand Management
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-18-2022 03:43 AM
Hmm, understood the issue, there is limitation of using getReference method i.e. you can only access data up to one dot only.
e.g. grProgram.program_manager this works but when you use grProgram.program_manager.getDisplaValue(), it is going for second dot, that is you are trying to access another record data which actually does not exist on client side.
In this case you would need to use Display BR or GlideAjax.
Please use below Display BR and client script to achieve your goal.
Business Rule :
BR script :
On load client script :
BR script for you to copy :
g_scratchpad.program_manager=current.primary_program.program_manager.getDisplayValue();
g_scratchpad.backup_program_manager=current.primary_program.u_backup_program_manager.getDisplayValue();
Client script for you to copy:
function onLoad() {
if (g_scratchpad.program_manager == "") {
g_form.showFieldMsg('u_program_manager', 'This field is to be ticked by person ' + g_scratchpad.backup_program_manager);
} else if (g_scratchpad.backup_program_manager == "") {
g_form.showFieldMsg('u_program_manager', 'This field is to be ticked by person ' + g_scratchpad.program_manager);
} else {
g_form.showFieldMsg('u_program_manager', 'This field is to be ticked by person ' + g_scratchpad.program_manager +
'\n ' + g_scratchpad.backup_program_manager);
}
}
I haven't tested it practically but I am sure this would work, change field names properly if required.
Please mark this as Correct or Helpful if it helps.
Thanks and Regards,
Abhijit
Community Rising Star 2022
Regards,
Abhijit
ServiceNow MVP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-17-2022 06:18 AM
Hi Naresh
Are you storing the refernce of program record in any field?
Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-17-2022 06:32 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-17-2022 06:57 AM
Solution provided by Abhijith works, Make sure you add an if condition for program value is not empty
function onLoad() {
//Type appropriate comment here, and begin script below
if (g_form.getValue('progran_field_name') !='')
var grProgram = g_form.getReference('program_field_name', showErrorMessage);
function showErrorMessage(grProgram) { //reference is passed into callback as first arguments
g_form.showFieldMsg('checkbox field value', 'this field is to be ticked by person' + grProgram.program_manager_field_name + 'and person' + grProgram.backup_program_manager_field_name);
}
}
Mark it helpful if this helps you to understand. Accept solution if this give you the answer you're looking for
Kind Regards,
Rohila V
2022-25 ServiceNow Community MVP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-18-2022 01:18 AM