- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2025 06:50 AM
Hi,
I have created a UI action ''Create Defect' on stories. When a defect created from story is closed complete, story state should be moved to ready for testing, I have created a update and after business rule on defect to move the story to ready for testing.
(function executeRule(current, previous /*null when async*/ ) {
var story = new GlideRecord('rm_story');
story.addQuery('sys_id', current.reported_against);
story.query();
if (story.next()) {
if (current.state == '3') {
story.state = '-7';
} else if (current.state == '7') {
story.state = '-7';
}
story.update();
}
})(current, previous);
This business rule is working fine except it's creating below error message even when I move the defect to closed complete. And I'm not changing any product or project field on story.
Please assist.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2025 02:09 PM
Hello Sath,
It's happening because the product value that you checking is null in the story.
Instead modify the condition to check if the product value exists and then check with or conditions, something like below.
current.product && current.product.changes -
this first checks if the product exists and then checks if product's value is changed. This shouldn't give any null checks as well. You can further modify it to add more conditions per requirement.
Please mark my answer as helpful if it helped your query in anyway.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2025 01:28 PM
@sath could you please tell the values of product and project on the story, are they null?
If you found this helpful, please hit the thumbs-up button and mark as correct. That helps others find their solutions.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-10-2025 06:39 AM
Product value is populated and I don't even see project field on story table. This is OOB BR
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2025 07:09 AM
did you check the update is causing some other update business rule to run which is causing the BR in your screenshot to trigger?
Did you debug business rules and see?
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
03-07-2025 12:38 PM
Hi @Ankur Bawiskar , I don't see any logic that triggering this BR "Set Product Backlog Type" and don't see much info on debug business rule as well.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-07-2025 01:47 PM
Hello @sath
try below
(function executeRule(current, previous /*null when async*/) {
var story = new GlideRecord('rm_story');
story.addQuery('sys_id', current.reported_against);
story.query();
if (story.next()) {
if (current.state == '3' || current.state == '7') {
story.state = '-7';
story.setWorkflow(false); // Prevents triggering other rules/workflows
story.update();
story.setWorkflow(true); // Restores normal workflow execution
}
}
})(current, previous);
Hope that helps!