Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

How to insert SCTASK worknotes when worknotes is added to RITM , the same worknotes i want on SCTASK

sanasayyad
Tera Contributor

I have written a business rule on sc_req_item i.e after insert here is the code 

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

    // Add your code here

    current.work_notes = "test";
    current.update();

    //Now i want same thing on sc_task table so i have written this

    var id = current.sys_id;

    var grp = new GlideRecord("sc_task");
    grp.addQuery('request_item', id);
    gs.info("The ID is " + id);
    grp.query();

    gs.info("testing query: Row count = " + grp.getRowCount());

    if (grp.next()) {
        gs.info("test");
        grp.work_notes = "test ";
        grp.update();
    }
    else
    {
        gs.log("No sc_task records found for request item: " + id);
    }


})(current, previous);

In this i am not getting record by doing  grp.getRowCount() in system log i am getting  record as 0.
1 ACCEPTED SOLUTION

VikMach
Mega Sage

Hi @sanasayyad,
Here is the revised code. It should be after update.
Try this. Your code has few misses. Updated them below.

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

	var sys_id = current.getUniqueValue();


	var scTask = new GlideRecord('sc_task');
	scTask.addActiveQuery();
	scTask.addQuery('request_item', sys_id);
	scTask.query();

	if(scTask.hasNext()){

		var currentWorkNotes = current.work_notes.getJournalEntry(1);

		while(scTask.next()){

			if(scTask.work_notes.getJournalEntry(1) == '' || currentWorkNotes.indexOf(scTask.work_notes.getJournalEntry(1)) <0){

				scTask.work_notes = currentWorkNotes;
				scTask.update();
			}
		}
	}
})(current, previous);


Let me know if this worked.

Regards,
Vikas K

View solution in original post

1 REPLY 1

VikMach
Mega Sage

Hi @sanasayyad,
Here is the revised code. It should be after update.
Try this. Your code has few misses. Updated them below.

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

	var sys_id = current.getUniqueValue();


	var scTask = new GlideRecord('sc_task');
	scTask.addActiveQuery();
	scTask.addQuery('request_item', sys_id);
	scTask.query();

	if(scTask.hasNext()){

		var currentWorkNotes = current.work_notes.getJournalEntry(1);

		while(scTask.next()){

			if(scTask.work_notes.getJournalEntry(1) == '' || currentWorkNotes.indexOf(scTask.work_notes.getJournalEntry(1)) <0){

				scTask.work_notes = currentWorkNotes;
				scTask.update();
			}
		}
	}
})(current, previous);


Let me know if this worked.

Regards,
Vikas K