Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Make Risk field read only in change request form

karunasrikuna
Tera Contributor

Hi , I am currently working on few use cases where I am facing a challenge on one of the use cases, which is described below. 

 

In the change request form, when we select "Impacted application" as "xyz" or " Affected CI" as "123" or "Service Related CIs" as "abc" then "Risk" field should be default to "moderate" and read only. To achieve this, I have used below client script:

 

   var impApp = g_form.getValue('u_impacted_application');
    var ci = g_form.getValue('u_related_ci_list');
    var affci = g_form.getValue('ci_item');
    if (impApp == 'xyz'); {
        g_form.setValue('risk', 3);
        g_form.setReadOnly('risk', true);

    }
    if (ci == 'abc'); {
        g_form.setValue('risk', 3);
        g_form.setReadOnly('risk', true);

    }
    if (affci == '123'); {
        g_form.setValue('risk', 3);
        g_form.setReadOnly('risk', true);
    }
   
}
 
I have used the same script for "on submit" as well. When I am creating a change request this is working but after submitting the request the 'Risk" field is editable. Attaching Snippets for your reference.
 
@Ankur Bawiskar AG - LearnNGrow any quick help will be appreciated.
4 REPLIES 4

Siddhesh Jadhav
Kilo Sage
Kilo Sage

Hi @karunasrikuna ,

You can try this 

 

1. Fix the Client Script (onChange Event):

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}

var impApp = g_form.getValue('u_impacted_application');
var ci = g_form.getValue('u_related_ci_list');
var affci = g_form.getValue('ci_item');

if (impApp == 'xyz' || ci == 'abc' || affci == '123') {
g_form.setValue('risk', 3);
g_form.setReadOnly('risk', true);
}
}

 

2. Add an onLoad Client Script to Maintain Read-Only Property After Submission:

 

function onLoad() {
var impApp = g_form.getValue('u_impacted_application');
var ci = g_form.getValue('u_related_ci_list');
var affci = g_form.getValue('ci_item');

if (impApp == 'xyz' || ci == 'abc' || affci == '123') {
g_form.setValue('risk', 3);
g_form.setReadOnly('risk', true);
}
}

 

If this helps resolve your query, please accept the answer and mark it as helpful.

 

Best Regards,
Siddhesh Jadhav

Ankur Bawiskar
Tera Patron
Tera Patron

@karunasrikuna 

ensure your onChange runs onLoad as well

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading) {

        // your here
        var impApp = g_form.getValue('u_impacted_application');
        var ci = g_form.getValue('u_related_ci_list');
        var affci = g_form.getValue('ci_item');
        if (impApp == 'xyz'); {
            g_form.setValue('risk', 3);
            g_form.setReadOnly('risk', true);

        }
        if (ci == 'abc'); {
            g_form.setValue('risk', 3);
            g_form.setReadOnly('risk', true);

        }
        if (affci == '123'); {
            g_form.setValue('risk', 3);
            g_form.setReadOnly('risk', true);
        }

        return;
    }

   // your further logic here


}

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Medi C
Giga Sage
Giga Sage

@karunasrikuna 

Please add an onLoad script as well

function onLoad() {
var impApp = g_form.getValue('u_impacted_application');
var ci = g_form.getValue('u_related_ci_list');
var affci = g_form.getValue('ci_item');

if (impApp == 'xyz' || ci == 'abc' || affci == '123') {
g_form.setValue('risk', 3);
g_form.setReadOnly('risk', true);
}
}

If you found this helpful, please hit the thumbs-up button and mark as correct. That helps others find their solutions.

Dr Atul G- LNG
Tera Patron
Tera Patron

Hi @karunasrikuna 

 

The experts have already answered, but when you run the risk assessment, the outcome may change based on the findings from the assessment.

*************************************************************************************************************
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.

Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]

****************************************************************************************************************