- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-12-2022 09:52 AM
Hello,
I'm new to coding and I would very much like to ask you for help.
I need to develop a client script running on change request table, which checks for the value of the field 'cmdb_ci' and when it changes, the CI's GMP Approval Group's value will be populated in the 'u_gmp_approval_group' field.
Some CI's do have this GMP Approval Group filled in, some of them don't.
How do I do this correctly, please?
There's is an existing display BR for this, but the client wants to have it covered with client script instead.
Here's the form:
And here's my sad onChange client script code:
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
if (!g_form.isNewRecord())
return;
var businessService = g_form.getValue('business_service');
var cmdbCi = g_form.getValue('cmdb_ci');
var serviceOffering = g_form.getValue('service_offering');
var gmpApprovalGroup = g_form.getValue('u_gmp_approval_group');
//the code needs to compare the fields Business Service, Service Offering and Configuration item
//they have different priority, the highest is Configuration item and if that one has got a value, then that will be used
//if there is no value in Configuration item's GMP Approval Group field, then the value of the Service Offering's GMP Approval Group will be used
//if there is no value in the Service offering's GMP Approval Group field, then the value of the Business Service's GMP Approval will be used
if (cmdbCi.u_gmp_approval_group !== '') {
g_form.setValue('u_gmp_approval_group', cmdbCi.u_gmp_approval_group);
} else if (cmdbCi.u_gmp_approval_group == '' && serviceOffering.u_gmp_approval_group !== '') {
g_form.setValue('u_gmp_approval_group', serviceOffering.u_gmp_approval_group);
} else if (cmdbCi.u_gmp_approval_group == '' && businessService.u_gmp_approval_group !== '') {
g_form.setValue('u_gmp_approval_group', businessService.u_gmp_approval_group);
}
}
Thank you very much for any help, very appreciaed
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-12-2022 10:22 AM
Try below
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
if (!g_form.isNewRecord())
return;
var businessService = g_form.getValue('business_service');
//changed
var cmdbCi = g_form.getReference('cmdb_ci',callbackme);
var serviceOffering = g_form.getValue('service_offering');
var gmpApprovalGroup = g_form.getValue('u_gmp_approval_group');
function callbackme(cmdbCi)
{
var grpis=cmdbCi.u_gmp_approval_group; //ensure here the u_gmp_approval_group field is the name of field on the cmdb_ci table
g_form.setValue('u_gmp_approval_group',grpis); //ensure here the u_gmp_approval_group field is the name of field on change table
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-12-2022 10:22 AM
Try below
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
if (!g_form.isNewRecord())
return;
var businessService = g_form.getValue('business_service');
//changed
var cmdbCi = g_form.getReference('cmdb_ci',callbackme);
var serviceOffering = g_form.getValue('service_offering');
var gmpApprovalGroup = g_form.getValue('u_gmp_approval_group');
function callbackme(cmdbCi)
{
var grpis=cmdbCi.u_gmp_approval_group; //ensure here the u_gmp_approval_group field is the name of field on the cmdb_ci table
g_form.setValue('u_gmp_approval_group',grpis); //ensure here the u_gmp_approval_group field is the name of field on change table
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-13-2022 03:29 AM
Thank you very much, Jaspal!