- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a month ago
Hello Community ,
There is one Date field on HR case form. The date value entered in the date field, when matches to todays date then state should change to WIP and work-notes should get updated with comments.
The challenge is here - I have created one scheduled script so that when date matches to todays date then state should change along with that work-notes should get updated. But this work-notes is not getting updated every time. Like sometimes , it work and sometimes it won't.
I also tried different way of script like setting work-notes without setWorkflow(false) then calling a function where I am setting state value along with setWorkflow(false).
But this too is not working.
My script :
Thanks !
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
Hi @Drishti,
The issue is: setWorkflow(false) prevents all business rules — including system logic that updates journal fields like work_notes. That’s why your comments sometimes disappear.
Here’s the clean, reliable solution 👇
✅ Final Working Script
var grCase = new GlideRecord('sn_hr_core_case');
grCase.addEncodedQuery(MYQUERY);
grCase.query();
while (grCase.next()) {
// Store Sys ID before manipulating workflows
var sysId = grCase.getUniqueValue();
// Step 1: Update work notes safely (with workflow ON)
grCase.work_notes = "MY COMMENTS FOR WORKNOTES";
grCase.update(); // Let this trigger normally (ensures notes get written)
// Step 2: Update state quietly (no notifications, no BRs)
var grSilent = new GlideRecord('sn_hr_core_case');
if (grSilent.get(sysId)) {
grSilent.setWorkflow(false);
grSilent.autoSysFields(false);
grSilent.setValue('state', '18'); // WIP
grSilent.update();
}
}🔍 Why this works
The first update writes work notes correctly because setWorkflow(false) is not used.
The second update (separate GlideRecord instance) changes state silently — no BRs, no notifications, no duplicate triggers.
Using a fresh record (grSilent) ensures no workflow caching or update conflicts.
⚠️ Notes
Don’t try to set both fields in one update if setWorkflow(false) is true — that’s why you saw inconsistency.
Keep the “silent” update isolated to avoid blocking journal updates.
Make sure your scheduled job runs with a user who has rights to update HR Cases and journal fields.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a month ago
you can use scheduled flow which runs daily and see if the date is Today
Then use Lookup Records and use For Each and then update the record
I shared solution for something similar in past, see and enhance
I cannot seem to get an Email Notification when a record's due date is reached
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a month ago - last edited a month ago
@Ankur Bawiskar
Thanks for your response.
But I have one doubt here , via flow also if I will set the state to WIP , it will trigger all those BR(s) and notifications(s) satisfying the condition ( state changes to WIP).
Please correct me if I am wrong.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
that's correct, it will trigger.
if you don't want then use scheduled job and use setWorkflow(false)
try this -> why to update 2 times?
var grCase = new GlideRecord('sn_hr_core_case');
grCase.addEncodedQuery(MYQUERY);
grCase.query();
while (grCase.next()) {
grCase.setValue('state', '18'); // WIP
grCase.work_notes = 'MY COMMENTS FOR WORKNOTES';
grCase.setWorkflow(false); // Avoid triggering BRs if that's intended
grCase.autoSysFields(false); // Prevent auto-update on sys fields
grCase.update();
}
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
Like stated earlier , setWorkflow(false) is stopping worknotes from being updated. For that reason I wrote that script updating two times.
My challenge here is I have to update work-notes and set state value without triggering any other BRs and notifications
