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

chanikya
Tera Guru

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);