Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-10-2025 08:58 PM
1 ACCEPTED SOLUTION
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-22-2025 01:19 AM
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]
****************************************************************************************************************
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]
****************************************************************************************************************
30 REPLIES 30
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Monday - last edited Monday
🧩 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();
}
}
