I wrote this up internally for my company, but I tried to edit it for the public. Just wanted to share for awareness.
To be clear, MRP does complete. When it fails (always at level zero), it still completes all other level zero parts (I have ways of checking) and then does all level 1+ parts just fine. But the part it fails on, well, we are lucky so far that it hasn’t mattered yet.
And now, the writeup:
MRP is set (by us) to 7 processes. Yet several days lately, it’s done fewer than that.
7 processes seems fine for us. Honestly it seems to have fairly little bearing on things. There are many other variables, like the number of orders and their distribution.
The problem here is actually the erroring out that leads to this.
So when it runs 5 instead of 7 processes (yesterday), it does start with 7. But early on, 2 of them fail. This is the fairly useless error:
The underlying provider failed on EnlistTransaction.
---> System.InvalidOperationException: The requested operation cannot be completed because the connection has been broken.
Now this next part sure sounds like an amazing coincidence…
The two processes that failed were the ones that had assigned to them the two oldest (very old) orders in the schedule - dated 2020 and early 2021. Yes, of course, something is amiss here for these to still be open, but I’ll set that aside.
What impact does this have? Minimal. But…
On the one hand, it failed to complete the two jobs it was working on (one per process). It made the headers, but no material, nor was it scheduled.
The parts had demand for only one order (line) each, so the impact is small.
And the jobs are probably not even supposed to exist anyway - what I mean is that it is probably a human mistake that the sales orders are still driving this demand.
Also, it seems like whatever other parts would have been assigned to the 2 dead processes somehow got reassigned to the 5 surviving processes. Good job there Epicor.
But it’s not deciding to reassign the part(s) that caused the problem. And, well, maybe that’s the point - that it would continue to fail, so it needs to be abandoned.


