Best practices for buyers and production planners to know if MRP ran

If MRP doesn’t run(happens from time to time due to an error or server maintenance, etc) it creates problems for our buyers and production planners. I’ve been asked to find a way to ensure it runs every night. How do others handle this type of a problem. I’m not sure if we should put the burden on buyers/production planners to check if it ran and report it or if it’s better to implement some kind of monitoring that proactively notifies the ERP IT team if MRP doesn’t complete successfully. Thoughts?

PS I noticed Time Phase indicates the last time MRP ran and the last time it was scheduled to run, so seems like a simple way for buyers/production planners to check.

image

You can look at the systask table filter on “Process MRP” and “Error” and run a BAQ/BPM to send an email.

image

1 Like

Which table is this for a BAQ? The closest I can find to “systemTasks” is Ice.ExtSysTable but it does not appear to be the right table.

Ice.SysTask

image

2 Likes

Thanks! Silly me, I saw “tasks” but my fingers typed “Table”… twice… and then when I looked at the results I somehow mentally translated “Table” back into “tasks” without realizing the two are actually different words! :crazy_face:

i have seen people create a BAQ / DASHBOARD to extract specific date records from this table, to be shown for status info. I have also seen people create data BPMs to watch for specific types of errors, but this can cause performance issues if you are not very careful.,

1 Like

We use scheduled function which sends email if:
PO or MRP status:
still active(means it is stuck)
Ends with error or canceled

Something like this:

DateTime dt = DateTime.Today.AddDays(-1);
foreach(var rows in(from row in Db.SysTask.With(LockHint.NoLock) where row.TaskStatus != "Complete" && row.StartedOn >= dt && row.TaskDescription == "Process MRP" select row))
{
Company = rows.Company;
TaskDescription = rows.TaskDescription;
StarttedOn = rows.StartedOn;
Status = rows.TaskStatus;


}



foreach(var rows in(from row in Db.SysTask.With(LockHint.NoLock) where row.TaskStatus != "Complete" && row.StartedOn >= dt && row.TaskDescription == "Generate PO Suggestions" select row))
{
POCompany = rows.Company;
POTaskDescription = rows.TaskDescription;
POStarttedOn = rows.StartedOn;
POStatus = rows.TaskStatus;


}

1 Like

You could run MRP under a service account with, at minimum, MRP logging. Then give read access to your planning/purchasing teams to that service account’s logs folder. This way the team can review the summary log and see the status, including where it might have failed. They can also use notepad (or better yet, Notepad++) to search for part #s or errors to research “MRP isn’t working” issues better :wink:
Jenn

1 Like

As an alternate to a Dashboard, an email, or a text editor, may I suggest logging to an external sink where it is possible to notify people and do analysis of errors. Improved monitoring, as covered in this DevOps Idea, has other uses outside just MRP.

Epicor and SIEM Integration - ERP 10 - Epicor User Help Forum (epiusers.help)

Hi Mark,
I see this was marked as the accepted solution, but following the links I don’t see any details on how logging to an external sink works. Am I missing something? Thanks!

Only if you haven’t voted for this Idea. There is no “Potential Solution” checkbox, so Eddie clicked this one instead. :person_shrugging: The point is this idea solves this thread’s problem and helps with many others.