Who has Scheduling and MRP and can lend advice

(George Hicks) #1

Hello All;
We have been using MRP for years and while Scheduling has been running, it was never fully properly configured. I have worked with the plant for the past six months to get things where they need to be and Scheduling is now being used and looking really good…except a couple of things.

For anyone who has both MRP and Scheduling:
How do you hand the MRP Jobs showing up on the Resource Scheduling Boards and causing overloads on resources?
We have modified the reports such as Shop Load and Schedule Impact to exclude MRP Jobs, but they still affect the schedule boards. I have an open SCR to add a checkbox to the Resource Scheduling Board to filter out MRP Jobs, but that will be in E10 and will only be a visual helper.

It is my belief that these unused MRP Jobs should be eliminated or moved way out in the schedule so that you can Load Level a Resource properly, but that is not so easy to do. We FIRM the MRP Jobs that we need, but as you know, MRP creates a lot of bogus MRP Job Suggestions and schedules them, ergo, contaminating an otherwise good schedule. Omitting these bogus jobs could leave nice holes in the schedule that FIRM Jobs could fill.

One option is the Global Reschedule, but we have tried that in the PILOT system, and troubleshot all the issues that caused it to hang, and still it took (3) Days to complete! Now the PILOT system is slower than the production system, so a Global Reschedule every day is out of the question.

MRP Job suggestions are linked to SOs’ so you need to remove the demand and delete the Job to remove it from the schedule, again, another very time consuming task.

I can to into the Job Scheduling Board and select all MRP Jobs, but again, moving them out 1 by 1 is brutal.
I think getting rid of all MRP Jobs in one swoop every day, then Global Reschedule would be great if there was a way to do that, and if Global Reschedule worked.

My Question: How do you manage your schedule and scheduling boards with all these MRP Jobs affecting it?

George Hicks
Visionaire Lighting
Epicor 9.05.702 In process of E10 Migration, 1st pass running…

(Andris Skulte) #2

George, Can you tune MRP to not create ‘bogus’ jobs? We’re on E10, but if E9 works the same way, you could make a BPM to delete the ShipBy date on the order release, and MRP won’t create an unfirm job in the first place.

(George Hicks) #3

We try to tune MRP of course, not to create the bogus jobs, and need to do more, but it will always create suggestion to some degree.
Deleting the Release ShipBy date won’t help, as we would not get “Good” suggestions for those orders. We match the individual sales order part number to the Job Suggestion, then FIRM it if it is real.
We are on 9, but 10 is the same way.
How do you handle them in 10 on the scheduling boards etc.? Do you just disregard them and leave them in your schedule? They take up scheduling blocks that I would like to free up for new Jobs.

Thanks for the reply! Glad there are others who use both and deal with this…

(Charlie Smith) #4

George, when you say “bogus unfirm jobs”, what are you talking about? Jobs that are being created due to timing issues? Quantity Issues?

Talk to me, buddy.

(Andris Skulte) #5

We have a BPM that removes the ShipBy dates if the order is on hold, and not ready to be released to the floor. Once it’s floor ready, our project coordinator enters the date, and MRP picks it up overnight. The next morning, we firm all unfirm jobs. There aren’t bogus jobs that need to be deleted, that I know of… Of course, some might have backordered material, but that’s still a real job satisfying demand.

(Ernie Lowell) #6

If the “bogus” jobs are being created by Sales Orders, you can also uncheck the “Firm Release” checkbox on the Sales Order Release (making it unfirm), which makes MRP ignore that release (and not create a job). Someday, however, somebody has to remember to go back in and firm it up…

(George Hicks) #7

Hello Ernie;

I am still struggling with this issue and if I may reword it, maybe you can help.

What I want to do is over a weekend, somehow get rid of ALL MRP Jobs in the schedule that have not been firmed. These will be overwritten by MRP on Sunday night anyway, so they are junk that is just taking load away from my resources.

If I can remove ALL MRP Jobs from the schedule, and then Global Reschedule ALL “Real” jobs in the system so that all “Real” Jobs get scheduled on my resources without MRP Jobs filling in and taking resources. Then I would have a good starting point at a “Real” schedule of ALL Jobs now in the system.
THEN I would let MRP Run from there and fill in the schedule with them as usual, but all resources would be then filled with Actual Released Jobs. I just can’t get a good starting point on the schedule without all the MRP BS Jobs.

We are using the schedule, but it is very difficult to manage with 700 MRP Jobs taking up resources that we will never actually firm up anwyay.

Does this make sense to you?
I have resources that are affected by MRP Jobs I will not firm, and they are pushing real jobs out.
A. I have tried moving the Dates on the MRP Jobs out to 2020 but then suggestions that do get firmed put the 2020 date on the real job after firming.

B. I set all MRP Jobs to LOWEST Priority and then also adjusted the Global Scheduling Order to make them the highest Sequence Numbers after ALL other jobs, but still it fills them into the Resources based on the Due Date on the Job regardless of the Priority or Sequence.

How the heck do I either get rid of these or move them so my “Real” released jobs get the system resources first.

Huge flaw in the MRP/Scheduling system in my opinion to assign resources to these Jobs when NOT firmed. They should put them on the WhatIf and then allow you to do what you want with them from there and keep the normal schedule un-affected by this phantom load.

Any assistance appreciated…
George Hicks

(Ernie Lowell) #8


This is one of the reasons why Scheduling is more of a Black Art than a science. From a system perspective, it would be much easier to determine why you’re getting so many suggestions you KNOW you aren’t going to firm up, and see if you could eliminate at least some of those. If you really don’t need them, why are they being suggested?

I’m afraid I don’t have a better answer… perhaps someone else will!

(George Hicks) #9

Thanks Ernie!
I know about the Black Art of it, and totally agree.
We do need to see why so many suggestions get generated for sure.
I would love to see some option in Company Config to have MRP use “Rough Cut Scheduling” so that it did NOT put load on resources, and allow you to Firm then Schedule, as that may be a good solution for this.
I appreciate the help!
George Hicks

(Michael Thompson) #10


I certainly understand your frustration with this. That said, the MRP and Scheduling systems are doing what you are telling them to do, just not what you want them to do. When I first started working with Epicor’s MRP and Scheduling systems, I too ran into situations where I thought that shortcomings in the way the system functions were standing in the way of achieving my objectives. After a decade of working through the issues, I realize that the problems these systems are solving are very complex
and take into consideration more variable that most of us can keep track of in our heads. Also, most MRP and scheduling systems are designed to meet the needs of as many different manufacturing environments as possible, which means that we end up with features and functions that we may not want or need, but end up in our variable set nonetheless. MRP and Scheduling is much like a balloon—squeeze one part of the balloon and other parts expand. The “Black Art” of MRP and Scheduling involves learning how and where to put pressure on the balloon so that we get the best results for our situation, then use the other tools provided by the system (or created by us) to help us understand and respond effectively to the results. So, off the cuff, here are a couple of ideas
that might help.

As you indicate, the most important factors when determining scheduling priority order are the Due Date and the calculated Days Late value. For the benefit of others viewing this thread, I offer an overview of the Calculate Global Scheduling Order Process from the Epicor ERP Scheduling Technical Reference guide (v10.1.600):

After eliminating Closed, Un-engineered and Locked jobs, each job is then scheduled one at a time to set its scheduling Priority.

  1. The job is forward scheduled from the global schedule Start Date using the Infinite Capacity calculation. Because the jobs are scheduled with unrestricted access to resources (Infinite Capacity), this process finds each job’s best What-If Due Date.

  2. The What-If Due Date is compared to the requested Due Date on the job header; if the Due Date is in the past, then today’s date is used. This results in a Days Early or Days Late value.

  3. The Days Early or Days Late value is then multiplied by 24 to determine the Calc Hrs. EarlyLate value.

  4. The Calc. Hrs. EarlyLate value is next used to determine the scheduling Priority. The process does this by using the following formula: (Calc Hrs EarlyLate -99,999) * Scheduling Factor = Calc Scheduling Priority

Once the Global Scheduling Order is established through this process, the Global Scheduler will schedule each job in this order and, for the most part, earlier jobs will have priority to resources before later jobs. That said, there are reasons why later jobs end up on resources before earlier jobs. For instance:

A Job with scheduling priority 6 (Job 6) is sitting at Resource A and requires Resource B for its next operation. By the time Job 6 is completed (along with accounting for move and queue time), Job with scheduling priority 24 (Job 24) is already using Resource B, so it is unavailable for job 6 until Job 24 finishes. And this can have a cascading effect on the balance of Job 6’s schedule. Job 6 might only need Resource B for a few hours, but Job 24 may be scheduled on Resource B for 2 weeks. That pushes Job 6’s schedule out by 2 weeks, which then makes it more likely that other jobs later in the priority order will get to Job 6’s future resources before it does. Perhaps something like this is going on in your situation.

(Continued below…)

(George Hicks) #11

Thanks Michael!
Great stuff, and I like the analogy of the Balloon!
I have done a ton of system cleanup, Resource and Resource Group setting tweaks so they mirror our capacity etc.
I do understand how complicated the scheduling system is, and also MRP, which adds complexity as well.
A month ago, we were waaaay over capacity and trying to get things cleaned up from all sides. We originally had a 60 Day Finite Horizon, and after discussing with a consultant, reduced it to 30 Days for the past month. Today I reduced it to 5 Days, as we are really looking at a daily schedule, but want to see out a week what we can work on if needed.
I am reviewing the MRP Logs to see why I get so many suggestions for Sub Assembly parts along with regular Sales Order Jobs, and will be tracking those down as well.

For instance:
Today I have (59)_ MRP Job Suggestions for one Part Number, totaling (1,050) parts needed 1/20/2019 through 04/19/2019
I have MRP Looking out End of Month + 4 Months for long lead items, so I get the 04/19/2019 date, that makes sense.
What I find is that every Assembly or Sub Assembly has this Part Number called out as a Material yet it is not marked as “Pull as Assembly” on the method, so MRP is looking at the Part Master and seeing it is marked as “Manufacture” and since it did not Pull as an Assembly on the Main Job, it is kicking off an MRP Suggestion for it.
This kind of thing is what is driving all this demand against my Resources…

I will continue working on the issues, but I really appreciate your, and everyone’s comments.

See you at Insights!

George Hicks

(Gil Violette) #12

I address this issue in a couple of ways.

  1. By running MRP with a start date a few weeks out into the future, the current shop schedule will not be cluttered with unfirm jobs.
  2. By printing dispatch reports, unfirm jobs don’t appear.

It isn’t perfect, but it does allow me to schedule the first two weeks of a job finitely before I have to look at removing unfirm jobs to make room in the schedule for the released jobs.

Ideally, I’d like to see the load report differentiate unfirm from released in the hours totals, that would be an effective way to manage this.

One thing I do is look at released jobs daily and determine if they are scheduling to be completed on time. Depends upon your business, if you release 200 jobs a day, that might not be realistic.

Keep in mind that if your job creation folks are converting unfirm jobs into live jobs, they will already be scheduled. That might be contributing to your challenges (in addition to the unfirm jobs that already meet customer need, you are adding live jobs without converting - therefore compounding the problem).

(Michael Thompson) #13

(Note to self: do not reply to these threads via e-mail if you care about truncation and formatting!)

…All of this notwithstanding, let’s see how we might take the next step in finding the correct pressure points on the balloon.

Following Ernie’s lead, I would suggest reducing the noise feeding into the MRP and Scheduling systems as much as possible. This includes removing demand that is unlikely to be firmed, reducing the number of finite resources, and creating realistic finite horizons—if your products have a 6 to 12 months production cycle, how likely are they to stay on their original schedule for more than a few weeks. Also, recognize that finite and infinite scheduling are not an either/or proposition—they work best used together. We use finite for short term information about which jobs should be prioritized at each resource in order to keep all of the demand on track, and we use infinite to help us understand medium- and long-term capacity constraints or “bottlenecks” so that we can plan accordingly. This can be done in Epicor using finite horizons and/or running independent Global Scheduling events.

With the above considerations, here is an idea for doing the experiment you propose in your post. The steps below are basic and, like I said, off the top of my head, so some experimentation and modulation may be required. Of course, YOU SHOULD PEFORM THESE STEPS IN A TEST OR DEVELOPMENT ENVIORNMENT FIRST, before doing this on your live database:

I think this will accomplish what you are asking for and inform your process even if it does not prove to be what you need in the long run. You may see, for instance, that a firm Job not due for 6 months will consume resources required for a required un-firmed job that is due in 3 months—that may or may not be OK. In any case, this may be a good next step in the development of an MRP and Scheduling process that works for your situation.

Hope the helps. Report back your results and any clarifications or issues you encounter.


Michael Thompson

(Michael Thompson) #14

Not sure that I follow completely, but have you checked Time Phase on the material part? Is the balance at the bottom of Time Phase in line with demand, or is MRP over-producing the part?

Also, my last post on this thread was submitted by e-mail–bad idea for long posts. As a result, the meat of the communique was cut off. I have reformatted and reposted the original response in two separate posts, the second of which provides a way for you to schedule your firm jobs independently from the un-firmed jobs.

“Farewell whenever you fare.”

Michael Thompson

(Gil Violette) #15

Note to Michael Thompson - agree 100% on the need to schedule both finitely and infinitely - if you’re too regimented in this area, you can end up with delayed job schedules due to capacity limitations that are easily overcome.

To explain this better, think of an operation that is dependent upon a machine being available - those are critical, because you can’t just add machines. Where an operation that is labor dependent can be managed by working overtime, moving the workforce around, etc.

This makes the Job Scheduling Board a highly effective tool, because you can schedule every operation either infinitely or finitely. So, if a resource is overloaded, you can choose to schedule the operation on that resource infinitely or finitely depending upon how easy it is to address the overloaded resource.

Very powerful tool, and one I’ve never seen in any other ERP system.