Let me provide a comprehensive solution covering all four areas causing your escalation failures.
Notification Association to Approval Steps:
The primary issue is that your escalation notification is associated with the workflow step rather than the timeout transition event. In Orchestrator Studio, open your PO approval workflow and navigate to the manager approval step. You’ll see the notification is configured under ‘Step Properties’ → ‘Notifications’. This is incorrect for escalations.
Instead, configure the notification on the timeout transition:
- Select the manager approval step
- Go to ‘Transitions’ tab
- Find the timeout transition (usually labeled ‘On Escalation’)
- In the transition properties, add your notification action
- Set the notification trigger to ‘On Transition Entry’
This ensures the notification fires when the timeout occurs, not when the step initially activates.
Workflow Priority Configuration:
Your escalation timers aren’t processing because of thread pool contention. Edit your Orchestrator server configuration (orch.ini or equivalent):
[WorkflowEngine]
MaxThreads=20
EscalationThreads=5
PriorityProcessing=true
TimeoutCheckInterval=3600
The dedicated escalation threads ensure timeout events process independently of main workflow execution. The 3600-second interval means escalations check hourly - adjust based on your SLA requirements.
Escalation Rule Definition:
Your escalation rule is testing correctly in isolation but failing in production because it’s missing the workflow context variables. Update your rule definition to include the PO amount and current approver level:
<EscalationRule name="Director_Escalation">
<Condition>
<Amount greaterThan="50000"/>
<ElapsedTime greaterThan="48 hours"/>
<CurrentApprover equals="Manager"/>
</Condition>
<Action>
<Route to="DirectorGroup"/>
<Notify template="PO_Director_Escalation"/>
</Action>
</EscalationRule>
The CurrentApprover condition prevents the rule from triggering at inappropriate workflow stages.
Notification Routing Debugging:
The silent failure you’re experiencing is due to an invalid notification template ID after your JDE 9.2.2 upgrade. Template IDs changed in this version. To fix:
- Open Notification Template Management (typically in OMW)
- Find your escalation notification template
- Note the new template ID (likely changed from numeric to alphanumeric format)
- Update your workflow notification action:
<NotificationAction>
<TemplateID>PO_ESC_DIR_v922</TemplateID>
<Recipients role="Directors" type="Group"/>
<Priority>High</Priority>
<DeliveryMethod>Email,InApp</DeliveryMethod>
</NotificationAction>
- Verify the Directors group has email addresses configured in User/Role Management
For your 23 stuck POs, use this Orchestrator API call to manually trigger escalation:
POST /orchestrator/api/workflow/escalate
{
"workflowIds": [list of stuck workflow IDs],
"targetStep": "director_approval",
"notifyRecipients": true
}
After implementing these fixes, test with a low-value PO (under $50K) to verify standard approval flow, then test with a $51K PO and let it sit for 48 hours to confirm escalation triggers correctly. Enable verbose logging in Orchestrator during testing to capture the complete notification routing sequence.
The combination of proper notification association, dedicated escalation threads, context-aware rules, and correct template IDs should resolve your workflow hang issues permanently.