SLA update after Broken-Process SLA fails
SummaryWhen an SLA tries to update a work object and the current SLA was in Broken-Process Status, the action fails with an error.
The Flow Action post-processing activity ActionChangeAssignmentSLAProps failed: Instance of class Queue not found: SYSTEM-QUEUE-SERVICELEVEL.SYSTEM-QUEUE-SERVICELEVEL 1490882738462000C931AD59FEDBAE743FDB28910E8A887F
Steps to Reproduce
- Have a SLA defined on a work object.
- Make SLA to go to broken state.
- Do a local action to adjust SLA
- Error message appear on the screen.
The root can be traced back to the OOTB Activity: Updates Assignment SLA Properties CL Work‐ ID ActionChangeAssignmentSLAProps RS Pega‐ProcessEngine:07‐10‐01 Where in step 5 in the JAVA code line 14....if (queuePage.getString("pyItemStatus").equalsIgnoreCase("Broken‐Process"))
nextBlock = "PR";It looks like the concatenation of the key is wrong, separating the class by dot (.) rather than space and as a result the repair isattempted on non‐existing queued item:SYSTEM‐QUEUE‐SERVICELEVEL.SYSTEM‐QUEUE‐SERVICELEVEL 1490882738462000C931AD59FEDBAE743FDB28910E8A887Fwhereas the pzinskey of the actual queued item is with <<SPACE>>SYSTEM‐QUEUE‐SERVICELEVEL SYSTEM‐QUEUE‐SERVICELEVEL 1490882738462000C931AD59FEDBAE743FDB28910E8A887F
Hotfix Change :
There is an API updateDeferred(page,repairBroken) which accepts a Boolean if it has to repair a broken item. Activity ActionChangeAssignmentSLAProps can be updated to use this API instead of updateDeferred. repairBroken flag if set to true will bypass the call to dequeue and hence can solve this issue.
Published April 28, 2017 - Updated May 17, 2017