Automate change request with change tasks creation for monthly patching activities

Arjun Reddy Yer
Mega Sage

required help @Vasantharajan N @Ankur Bawiskar @Voona Rohila @WillieW @RaghavSh 

 

As I need to automate the standard change request creation every 2nd Friday of the month for the change templates that I have with me along with that change tasks also need to create and those change tasks need to auto assign to assignment groups that I have with 

Short Description: [assignment_group] Microsoft Patching

Description: New Microsoft patches installed

 

Change Template:

1. Monthly Microsoft Patching

ArjunReddyYer_0-1765391652132.png

2. Monthly PMPC Patching

ArjunReddyYer_1-1765391782557.png

Assignment Groups:

 

  1. Supply Chain Engineering
  2. Corporate Engineering
  3. Digital Engineering

 

24 REPLIES 24

@Arjun Reddy Yer 

make it run Daily and use the script I shared in condition and the other script field

Also I believe you should know how to use GlideRecord to insert new record into any table

If you are not aware then I will suggest to take scripting fundamentals course from now learning

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

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

But one thing is those Change Tasks need to auto assign to groups. So, that's the reason asking for script for creating change tasks and auto assigning them to groups.

 

Assignment Groups:

 

  1. Supply Chain Engineering
  2. Corporate Engineering
  3. Digital Engineering

@Arjun Reddy Yer 

this is sample script

(function() {
    var templateName = 'your_standard_change_template'; // Replace with your template name
    var assignmentGroup = 'Microsoft Patching'; // Replace with your assignment group

    var change = new GlideRecord('change_request');
    change.initialize();
    change.type = 'standard'; // Ensure the change type is standard

    change.assignment_group.setDisplayValue(assignmentGroup);

    // Apply the template
    if (change.applyTemplate(templateName) == 0) {
        gs.info('Template applied successfully to change request');
    } else {
        gs.info('Failed to apply template');
    }

    // Insert the change request
    var changeSysId = change.insert();
    gs.info('Standard change request created: ' + changeSysId);

    // add logic here to create change tasks
    var rec = new GlideRecord('change_task');
    rec.initialize();
    rec.change_request = changeSysId;
    rec.short_description = 'Your Testing';
    rec.assignment_group.setDisplayValue('Supply Chain Engineering');
    rec.insert();

})();

I believe I gave enough script and solution which answers your question

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

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

@Arjun Reddy Yer 

Hope you are doing good.

Did my reply answer your question?

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

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

with below script Change request and change task is getting created but the fields in the change request are not getting populated with the change template field values and it should execute on 2nd Thursday of every month so replaced with 4.

ArjunReddyYer_0-1765787018202.png

(function() {
    var templateName = 'sys ID of the Template'; // Replace with your template name
    
    var change = new GlideRecord('change_request');
    change.initialize();
    change.type = 'standard'; // Ensure the change type is standard

     // Apply the template
    if (change.applyTemplate(templateName) == 0) {
        gs.info('Template applied successfully to change request');
    } else {
        gs.info('Failed to apply template');
    }

    // Insert the change request
    var changeSysId = change.insert();
    gs.info('Standard change request created: ' + changeSysId);

    // logic to create change tasks
	
    var rec = new GlideRecord('change_task');
    rec.initialize();
    rec.change_request = changeSysId;
    rec.short_description = 'Your Testing';
	rec.description = 'Confirm business application functions as it should with new Microsoft patches installed.';
    rec.assignment_group.setDisplayValue('Supply Chain Engineering');
    rec.insert();

})();

  Error when checked in Background script:

 

*** Script: Failed to apply template
#### Compiler Stats ####
Compiles: 1, time: 924ms
Total classes: 8, bytecode length: 0
Total loaders created: 8, unloaded: 8, existing: 0
Interpreted compiles: 18,800, time: 8,961ms
Cache name: "syscache_expression", max: 7,447, size: 7,678, seeks: 194,386,910, hits: 97,178,102, misses: 97,208,808, flushed: 0, row evictions: 0, single key evictions: 7,460, puts: 0, reclaims: 0, time from last reclaim to recreation total ms: 0, average time from last reclaim to recreation ms: 0
*** Script [TaskSLAFlow]: 2025-12-15 06:47:37.852 start: failed to start Flow "Default SLA flow" for Task SLA bfad3eca933db210fc57ff584dba1008:
com.snc.process_flow.exception.ProcessAutomationException: Failed to find complex object schema
*** Script [TaskSLAFlow]: 2025-12-15 06:47:37.883 start: failed to start Flow "Default SLA flow" for Task SLA 37ad3eca933db210fc57ff584dba100c:
com.snc.process_flow.exception.ProcessAutomationException: Failed to find complex object schema
Slow business rule 'Run SLAs' on change_request:<span class = "session-log-bold-text"> CHG0047407</span>, time was: 0:00:00.123
notification.provider: For Synchronous Providers: Loaded 0 recipients and 0 destinations and delivered to 0 destinations in 2ms
TriggerEngine:runEngine took 0.006ms to process for 'insert' operation on the record change_request[ffadba0e93f5b210fc57ff584dba101c]
*** Script: Standard change request created: ffadba0e93f5b210fc57ff584dba101c