Let me provide a comprehensive approach to optimizing MRP performance in D365 cloud with Planning Optimization:
1. MRP Run Logs Analysis
First, analyze your MRP run logs systematically to identify bottlenecks. Go to Master planning > Inquiries and reports > Master planning run log. Look for these specific metrics:
- Time spent in explosion phase (should be <30% of total)
- Time in requirement calculation (typically the longest phase)
- Number of planned orders generated vs. number of items
- Database query counts during coverage group processing
If explosion is taking excessive time, you have BOM or formula complexity issues. If requirement calculation dominates, your coverage parameters need optimization.
2. Planning Parameter Optimization
Planning Optimization requires different parameter tuning than the built-in engine. Key changes needed:
Coverage Groups: Consolidate where possible. Each coverage group creates a separate calculation pass. We typically recommend 3-5 coverage groups maximum:
- Strategic items (longer time fences, detailed planning)
- Standard items (moderate planning parameters)
- Low-value items (simplified planning, shorter horizons)
Review Master planning > Setup > Coverage > Coverage groups and merge similar groups.
Master Plan Parameters: Navigate to Master planning > Setup > Plans > Master plans and optimize:
- Reduce planning time fence to minimum needed (60 days instead of 90 if possible)
- Set Explosion time fence to match your longest lead time only
- Enable “Use fast explosion” if available in your version
- Set Action message preference to “Reduce” to minimize message generation
- Configure Batch bundle size to 50-100 items per thread
Item Coverage Settings: For your 45K items, segment them:
- A items (20%): Full planning with all parameters
- B items (30%): Simplified coverage, standard lead times
- C items (50%): Min/max planning only, no detailed explosion
This alone can reduce processing time by 40-50%.
3. Cloud Performance Tuning
Planning Optimization runs as a separate Azure service, so cloud-specific factors matter:
Data Synchronization: The service needs to sync your item master, BOMs, inventory, and orders before calculating. Reduce sync overhead:
- Clean up obsolete items, BOMs, and historical planned orders
- Archive old production orders and purchase orders beyond planning horizon
- Remove inactive items from coverage groups
Parallelization: Planning Optimization automatically parallelizes but needs proper configuration:
- Ensure your coverage groups don’t have dependencies forcing sequential processing
- Use the “Number of threads” parameter in Master planning parameters (set to 8-12 for your volume)
- Schedule MRP during off-peak hours to get better Azure resource allocation
Network Latency: Planning Optimization communicates with your D365 instance:
- Minimize custom code that executes during planning
- Avoid real-time inventory checks during MRP if using custom logic
- Review any integrations that trigger during master planning
4. Specific Recommendations for Your Scenario
With 45K items and 12 warehouses:
- Reduce planning horizon to 60 days for B/C items, keep 90 for A items
- Implement warehouse-level coverage only where needed (not all 12 for all items)
- Set explosion time fence to your longest cumulative lead time (typically 30-45 days)
- Enable “Auto-firming” for standard items to reduce manual processing
- Schedule MRP to run incrementally (daily for changes, weekly for full regeneration)
5. Monitoring and Continuous Improvement
After implementing changes:
- Monitor MRP run times daily for 2 weeks
- Compare explosion vs. calculation time ratios
- Review planned order counts - significant reduction indicates better efficiency
- Check action message volumes - should decrease by 30-40%
- Use Planning Optimization fit analysis tool to identify remaining issues
Implementing these optimizations should bring your MRP run time down to 3-4 hours. The key difference in cloud is that Planning Optimization favors simplified, consolidated planning parameters over complex, granular configurations that worked well on-premise.