Move PTask created in the Problem Ticket to Work in Progress state
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
I want to move all the PTask created in the Problem Ticket to Work in Progress state once the Problem Ticket was approved by the Problem Approver - Fix in progress state.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
@kamblepooja To achieve this, you can use a AFTER business rule to automatically update the state of all PTasks associated with a Problem Ticket once the Problem Ticket is approved and moves to the "Fix in Progress" state. Here's a step-by-step guide on how you can set this up:
navigate to Business rule->New.
Give the proper name, and select problem table.
checked the advanced checkbox.
when to run: Set after, to ensure the BR runs after the problem is updated.
condition: current.state == 'Fix in Progress' && current.previous.state != 'Fix in Progress'
Script:
(function executeRule(current, previous /*null when async*/) {
var pTaskGR = new GlideRecord('task'); // Assuming PTasks are stored in the 'task' table
pTaskGR.addQuery('problem_id', current.sys_id); // Link PTasks to the current Problem Ticket
pTaskGR.addQuery('state', '!=', 'Work in Progress'); // Only update tasks not already in 'Work in Progress'
pTaskGR.query();
while (pTaskGR.next()) {
pTaskGR.state = 'Work in Progress'; // Set the state to 'Work in Progress'
pTaskGR.update();
}
})(current, previous);
Save the business rule and ensure it is activated.
This business rule will automatically update the state of all PTasks associated with a Problem Ticket to "Work in Progress" once the Problem Ticket is approved and moves to the "Fix in Progress" state.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
Hi @kamblepooja ,
Create a BR
Table: problem
When: after
Insert: false
Update: true
Delete: false
Advanced: true
Condition:
State changes to Fix in Progress
script:
// Run only when Problem moves to Fix in Progress
if (current.state.changesTo(3)) { // 3 = Fix in Progress (verify in your instance)
var ptaskGR = new GlideRecord('problem_task');
ptaskGR.addQuery('problem', current.sys_id);
ptaskGR.addQuery('state', '!=', 2); // 2 = Work in Progress
ptaskGR.query();
while (ptaskGR.next()) {
ptaskGR.state = 2; // Work in Progress
ptaskGR.update();
}
}
Please mark as helpful if this gives you the answer.
Thanks
Yamsani Bhavani
ServiceNow Developer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
so what did you start with and where are you stuck?
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
