Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

How to Copy Problem record Work Notes into Related Incident work notes

chanikya
Kilo Sage

Hi,

Not working my BR script

After

Condition: current.work_notes.changes()

var updateInitiatedBy = updateInitiatedBy || current.sys_id.toString();
(function executeRule(current, previous /*null when async*/) {

// Add your code here

if(updateInitiatedBy == current.sys_id.toString()){
var gr = new GlideRecord('incident');
gr.addQuery('problem_id',current.sys_id);
gr.query();
while(gr.next()){
gr.work_notes = current.work_notes;
gr.update();
}
}

 

 

1 ACCEPTED SOLUTION

Or you can use the same Business Rule as for Incident Work notes -> simply specify a second variable:

 

(function executeRule(current, previous /*null when async*/) {

// This Business Rule ensures that if there is a Parent Problem record, which has one or more Incidents records associated to it as Child Incidents or Problem Task(s) -> then, whenever the Work notes of the Problem get updated -> the Work notes of all Child Incidents & Problem Tasks will be updated accordingly with the same text;


// var rec = Child Incident(s);
var rec = new GlideRecord("incident");
rec.addQuery("problem_id", current.sys_id);
rec.addActiveQuery();
rec.query();
while (rec.next()) {

rec.work_notes = "Incident Work note copied from Parent Problem" + ':' + current.work_notes.getJournalEntry(1); // //Choose a text of your own, which suits you;
rec.update();
}


// var prtask = Child Problem Task(s);
var prtask = new GlideRecord("problem_task");
prtask.addQuery("problem", current.sys_id);
prtask.addActiveQuery();
prtask.query();
while (prtask.next()) {

prtask.work_notes = "Problem Task Work note copied from Parent Problem" + ':' + ' ' + current.work_notes.getJournalEntry(1);
prtask.update(); //Choose a text of your own, which suits you;
}

})(current, previous);



Best Regards,
Georgi Mavrodiev

IT Consultant
Do IT Wise Bulgaria

You may visit us in our Web Site: www.doitwise.com

View solution in original post

29 REPLIES 29

Radha K
Kilo Guru

Try this on after update


var num = current.number;
var incident = new GlideRecord("incident");
incident.addQuery("problem_id", "=", current.sys_id);
incident.query();
while (incident.next()) {
incident.comments = (num + ' ' + current.work_around);
incident.update();

}


RK
If my response is helpful, please select Helpful. If my response answers your question, please select Accept as Solution.

Mike Patel
Tera Sage

instead of current.work_notes you need current.work_notes.getJournalEntry(1);

not working!

Is your script like below

(function executeRule(current, previous) {
	var updateInitiatedBy = updateInitiatedBy || current.sys_id.toString();
	// Add your code here

	if(updateInitiatedBy == current.sys_id.toString()){
		var gr = new GlideRecord('incident');
		gr.addQuery('problem_id',current.sys_id);
		gr.query();
		while(gr.next()){
			gr.work_notes = current.work_notes.getJournalEntry(1);
			gr.update();
		}
	}
})(current, previous);