Our engineering change approval workflows in SAP PLM 2020 are experiencing severe delays. Approvals that should trigger immediately are taking 15-30 minutes to reach approvers. I’ve traced this to background job processing bottlenecks.
Looking at SM37, I see the workflow background jobs (SWWDHEX, RSWWERRE) are queuing up during peak hours. The background job queue shows 40-50 jobs waiting while only 3-4 are actively processing. We have workflow runtime monitoring enabled, but I’m not sure how to interpret the data to identify the root cause.
I’ve also noticed that job prioritization doesn’t seem to be working - critical ECO approvals are stuck behind routine notification workflows. How can we optimize this to ensure timely approvals without overwhelming the system?
I’ll provide a systematic approach to resolve all three bottleneck areas:
Background Job Queue Optimization:
Your primary issue is insufficient background processing capacity. Here’s a comprehensive fix:
Increase Background Work Processes: Access transaction RZ10, edit your instance profile, and increase parameter rdisp/wp_no_btc. Current value is likely 3-5; increase to 12-15 for dedicated workflow processing. This requires system restart during maintenance window.
Configure Dedicated Workflow Job Server Group: In transaction RZ12, create a new server group ‘WORKFLOW_PRIORITY’ and assign 4-5 background processes exclusively to it. Then in transaction SM36, configure SWWDHEX and RSWWERRE jobs to run on this dedicated group. This isolates workflow processing from other background jobs.
Optimize Job Scheduling Intervals: Transaction SWWA → Workflow Runtime Configuration → Background Processing. Current setting is probably 5-minute intervals. Reduce to 1-minute intervals for SWWDHEX and 2-minute intervals for RSWWERRE. This ensures faster workflow event processing without overwhelming the system.
Implement Job Parallelization: For SWWDHEX, enable parallel processing by copying the job and scheduling multiple instances with different start times (offset by 30 seconds). Each instance processes a subset of workflows based on workflow type. Configure in transaction SM36 with variant parameters for workflow type filtering.
Monitor Queue Depth: Set up transaction SM37 monitoring alerts when job queue exceeds 20 waiting jobs. Use transaction CCMS (RZ20) to create custom alert for background job queue threshold.
Workflow Runtime Monitoring Analysis:
Transaction SWI2_FREQ is your primary diagnostic tool. Here’s how to interpret the data:
Event Queue Analysis: Check ‘Event Queue for Type Linkages’ - if you see >1,000 events queued, your event processing is saturated. Root causes:
Too many synchronous event triggers (change to asynchronous)
Inefficient event receiver determination
Missing event linkage indexes
Workflow Log Analysis: Transaction SWI1 → Select ‘Technical Workflow Log’ → Filter by date range. Look for workflows stuck in ‘Started’ status for >10 minutes. These indicate processing delays. Common patterns:
System scalability: Support 3x more concurrent workflows
Implement in phases: Week 1 (work process increase), Week 2 (job prioritization), Week 3 (workflow optimization), Week 4 (monitoring and fine-tuning).
This draft is based on general SAP PLM knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.
Your background work process configuration is likely the issue. Check SM50 during peak hours to see if all background processes are busy. You probably need to increase the number of background work processes in transaction RZ10. We increased from 5 to 10 and it eliminated most queuing.
The SWWDHEX job (workflow deadline monitoring) can become a bottleneck if you have many active workflows with deadlines. Check transaction SWI2_FREQ to see workflow event queue statistics. If you have thousands of events queued, consider splitting your workflow processing across multiple job servers or increasing the package size in SWWDHEX job parameters.
For job prioritization, you need to configure job classes properly. In SM36, check if your workflow jobs are assigned appropriate job classes (A, B, or C). Class A gets highest priority. Also look at transaction SWWA for workflow runtime configuration - you can define separate job queues for critical vs. routine workflows. We created a dedicated high-priority queue for ECO approvals.
Use transaction ST03N to analyze background job resource consumption. Look at the ‘Task Type Analysis’ for background processing. You might find that certain workflow tasks are consuming disproportionate CPU or database time. We discovered a custom workflow task that was doing full table scans, causing 80% of our delays.
Check the workflow event queue configuration in transaction SWETYPV. If event coupling is set to ‘wait’, events will queue up. Change to ‘background task’ with appropriate priority settings. Also verify in transaction SWU3 that your workflow customizing is complete - incomplete configuration can cause unexpected background processing delays.