i want to CSA (servicenow) cerificate with my full name

munukuntlak
Tera Contributor

i want to CSA (servicenow) cerificate with my full name

1 ACCEPTED SOLUTION

Dr Atul G- LNG
Tera Patron

Is issue still open @munukuntlak 

*************************************************************************************************************
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/dratulgrover [ Connect for 1-1 Session]

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

View solution in original post

30 REPLIES 30

munukuntlak
Tera Contributor
🧩 Step 1: Create Business Rule
Go to System Definition → Business Rules


Click New


Basic
Name: BA → Set SLM Flag


Table: cmdb_ci_business_app


When: After


✅ Insert


✅ Update


Condition Builder
ALL conditions
TRTC           less than or equal to     5

AND
[App Status     is     Being Assembled
OR
App Status     is     Deployed]










(function executeRule(current, previous) {
var svc = new GlideRecord('cmdb_ci_service_discovered');
svc.addQuery('u_associated_business_app', current.sys_id);
svc.query();

while (svc.next()) {
    var sla = new GlideRecord('contract_sla');
    sla.addQuery('u_service', svc.sys_id);
    sla.query();

    while (sla.next()) {
        var agr = new GlideRecord('itil_agreement');
        agr.addQuery('agreement', sla.sys_id);
        agr.query();

        while (agr.next()) {
            agr.slm_flag = true;
            agr.update();
        }
    }
}

})(current, previous);

AC2 – Fix Script (Existing Records)
Purpose: Correct SLM flag for already existing applications

 System Definition > Fix Scripts
Fix Script
var app = new GlideRecord('cmdb_ci_business_app');
app.query();

while (app.next()) {

    var makeSLMTrue = (
        (app.app_status == 'being_assembled' || app.app_status == 'deployed') &&
        (app.trtc <= 5)//change the condition 
    );

    var svc = new GlideRecord('cmdb_ci_service_discovered');
    svc.addQuery('u_associated_business_app', app.sys_id);
    svc.query();

    while (svc.next()) {
        var sla = new GlideRecord('contract_sla');
        sla.addQuery('u_service', svc.sys_id);
        sla.query();

        while (sla.next()) {
            var agr = new GlideRecord('itil_agreement');
            agr.addQuery('agreement', sla.sys_id);
            agr.query();

            while (agr.next()) {
                agr.slm_flag = makeSLMTrue;
                agr.update();
            }
        }
    }
}



✅ AC1 — Business Rule (New / Updated SLA)
🧩 Step 1: Create Business Rule
Navigate to System Definition → Business Rules


Click New


Basic Configuration
Name: SLA → Inactivate Previous Versions


Table: sla


When: After


✅ Insert


✅ Update







🧩 Step 2: Configure Conditions (UI)
Use Condition Builder (no script logic here):
Status     is     Active
AND
u_previous_version     is not empty


🧩 Step 3: Business Rule Script
👉 This script inactivates the previous SLA versions.
var prev = new GlideRecord('sla');
prev.addQuery('sys_id', current.u_previous_version);
prev.addQuery('status', 'active');
prev.query();

while (prev.next()) {
    prev.status = 'inactive';
    prev.update();
}


✅ AC2 — Fix Script (Existing SLAs)
🎯 Purpose
Inactivate older SLA versions where multiple versions are still Active

🧩 Step 1: Create Fix Script
Go to System Definition → Fix Scripts


Click New


Name: SLA → Fix Previous Versions Status



🧩 Step 2: Fix Script Code
var sla = new GlideRecord('sla');
sla.addQuery('status', 'active');
sla.addNotNullQuery('u_previous_version');
sla.query();

while (sla.next()) {

    var prev = new GlideRecord('sla');
    if (prev.get(sla.u_previous_version) && prev.status == 'active') {
        prev.status = 'inactive';
        prev.update();
    }
}