Epicor Kinetic · Manufacturing
Why Epicor Kinetic MRP won't generate jobs: 7 things to check
Applies to: Epicor Kinetic and Epicor ERP 10.2 manufacturing environments. Always validate scheduling and planning parameters in Pilot first.
Short answer
When MRP finishes without errors but a job you expected is missing, the cause is usually configuration or data, not an engine fault. Work through the checks below, then review the MRP log.
1. Process MRP on the site
A part can be set to be planned at part level but not for a specific site. In Part Maintenance, open the site (plant) planning settings and confirm the part is planned by MRP at the plant that runs the calculation (fields Part.ProcessMRP and PartPlant.ProcessMRP). On-premises diagnostic:
SELECT PartNum, Plant, ProcessMRP, NonStock
FROM Erp.PartPlant
WHERE PartNum = 'YOUR-PART';
Cloud users can use a BAQ on PartPlant instead.
2. The demand itself
Check that the order is open and not held, and that the release is open and firm enough to be planned. Specifically, verify OrderRel.OpenRelease = 1 and OrderRel.FirmRelease = 1, alongside OrderHed.OpenOrder = 1 and OrderHed.OrderHeld = 0. Many sites control release firming through custom BPM rules, so check your workflow.
3. The Cutoff date
Demand beyond the Cutoff Date entered when MRP is submitted is not planned. If MRP runs from a saved schedule in the Task Agent / System Monitor, check that the saved schedule uses a relative dynamic date (e.g., Today + 90 days) rather than a fixed calendar date that falls behind over time.
4. Planning time fence
A planning time fence (PartPlant.PlanTimeFence) stops MRP creating or changing supply inside the near-term fence. Inside the fence, MRP pushes suggested job dates out to the fence boundary rather than scheduling inside the frozen period. Check that the fence is not set longer than intended.
5. Firm jobs
MRP manages unfirm jobs (JobHead.JobFirm = 0); firm jobs (JobHead.JobFirm = 1) are owned by planners. If a firm job already covers the demand, MRP will not create another job. Instead it suggests changes, so look in the planning suggestions or workbench.
6. Stock, non-stock and part type
Non-stock parts are planned against specific demand (Make-to-Order or Make-to-Job), not for replenishment. A part with type Purchased (TypeCode = 'P') produces purchase suggestions (table Erp.SugPODtl), not manufacturing jobs. A manufactured part (TypeCode = 'M') requires an approved revision effective on the demand date.
7. Run parameters
Check that no part, class, or other filter was left populated on the saved MRP run submission parameters, as it would silently limit what is planned.
Using the MRP log
When a part still will not plan, run MRP for that specific part with logging enabled on the submission screen. View the resulting log via System Monitor (or server deployment folder on-premises) to trace the exact calculation pass and verify why supply was or was not generated.
Checklist
- Part planned at site (PartPlant.ProcessMRP)
- Order open, not held; release open and firm
- Cutoff date later than due date
- Time fence not blocking
- No firm job absorbing demand
- Correct part type; approved, effective revision
- No filters on the run
FAQ
Net change vs regeneration?
Net change processes only parts affected since the last run and is faster; regeneration recalculates everything. Many sites combine them, for example running regeneration weekly.
Why purchase suggestions instead of jobs?
The part is configured with TypeCode = 'P' (Purchased) or has a site-level purchase/transfer rule.
Can MRP run during working hours?
It can, but heavy runs can cause database lock contention on demand tables, so schedule large regeneration runs off-peak.