MRP Job Scheduling

***** Long post alert *****

My colleague has been doing lots of work on MRP - we’re not using it at all currently, but have been testing a subset of parts with a view to using them as a springboard for all parts eventually. I think the timing of our product is pushing the boundary of base MRP, and wanted to get thoughts from people here if possible.

We’re a dairy manufacturer - our products get turned from raw materials (Milk/Skim/Skin Conc/Cream) into finished products in a maximum of 24 hours. The problem we’re having is getting MRP to put jobs next to each other on the same day, when there is plenty of resource availability. I think it’s because there are 3 jobs, and job 2 uses job 1 as a material, and job 3 uses job 2 as a material. I’ll try and demonstrate why it is that way, and why Pull as Assembly won’t do it for us.

Job 1
Produce Pallecon (1 tonne capacity metal box pallet)
Consumes Raw materials (skim and cream)
Finished product is assigned a Lot Number for traceability, and to allow it to be tracked around our facility

Job 2
Produce bottles
Involves consuming the pallecon from Job 1 by Lot Number (Issue Material)
Also backflushes bottle, label, cap
Receipted to stock
Qty here might be say 3600 BTL

Job 3,4
Produce shrink wrapped 6 packs of the above bottles
Backflushes BTL part num that was produced on Job 2
Multiple jobs at this step, 1 job = 1 pallet of stock = 300 packs
2 jobs required for the 3600 BTL produced in this example

Our typical schedule on this line would look like this:
Day 1 (Send liquid raw materials to incubation tank, add starter cultures, wait 8-10 hours for pH to develop - elapsed time 12 hours
Day 1 Pack above product into pallecon - elapsed time 1 hour
Day 2 Consume pallecon on production line, and there is a continuous flow from filling to capping, labelling, metal detecting, and then shrink wrapping.

At present it wants to have each job on a separate day, but Job 2 and 3 are all on the same line so happen concurrently.

We can’t ask the operator on the filling part of the line to issue materials to each “finished pallet” qty as per Job 3, because it’s just a continuous stream of bottles past a point. As they go, they issue material to the job and then when finished on that SKU can take a total bottle count and record production.

Through the other side of a hygiene barrier another operator is recording against Job 3, 4, etc each time they have a full pallet. For them it’s very easy to see the separate between jobs, but they have no idea what pallecon of base product is in the bottles - so they can’t do both parts of the recording activity.

The nice thing about recording both separate, is that the finished packs might end up at 600 (6 BTL per pack), but the high care team might have recorded that they actually made 3650 bottles - enables us to calculate yield and wastage of packaging.

Hopefully that kind of makes sense, and somebody fancies a little challenge to see if there is a way to configure MRP so that it is aware it can run Job 2 and 3 simultaneously and therefore schedules it that way.

Thanks if you’ve managed to read all the way day to this point!

Can you have only one job with multiple operations since it is a continuous line.

Vinay Kamboj

Not really - because of the trace ability required, and the fact that it is divided into 2 distinct areas (High Care and Low Risk).

have you tried turning on the constrained flag for the lower level parts? If a material is a constraining material, then subsequent jobs will not be scheduled to start until the materials are scheduled to be available.

Can you play with your Production Standard on the operation level, and see if “Fixed Hours” makes a difference? That is the value that the scheduling engine will use to determine availability on the resources… and if that value times the quantity produced exceeds the number of hours available in a SINGLE BLOCK on the resource, it will skip to the next day. You’ll still be collecting your actuals, but the scheduling engine uses the estimates.

Not tried that I don’t think - will give it a go, but my initial reaction is that it will make the problem worse?

It’s like it doesn’t understand the interaction between the 2 jobs - it wants the lower level job to be made and in stock on the day before by midnight, so that it is available to use on the intended production day. BUT, in the schedule it SHOULD be able to work out that if it’s scheduling the lower level job to complete at 11am, then the next job can start straight away because its material is now available.

We just need it to get the jobs on the correct day, scheduling within the day is less of a concern because there is a “best order” to run - we’re packing different sizes and flavour combinations on the line, and reducing CIP times and changeovers is key.

Thanks Earnie - I’ll certainly ask my colleague @LizRandall to have a go with a small number of fixed hours to see if that makes any difference at all.

Is it safe to assume you haven’t set resources to use move or queue? This would push out your jobs dependent upon prior jobs.

Are your demand links to Stock or to Job? Shouldn’t matter. Just curious.

What time are you running MRP/Scheduler, are the scheduled resources finite capacity or infinite - and if finite, what are the available hours relative to when you run MRP/scheduling as well as relative to midnight?

Are you forward or backward scheduling?

For the 2nd process, have you tried using Send Ahead & Start-to-Start OP processing? That would allow overlapping schedules as you describe the real process to be.

Just checked, and there both Move Hours and Queue Hours are both 0.

Demand links are all Make To Stock.

Time - it’s been run at various times throughout the day. We’re only studying 1 part family, and only these parts are marked as “Process MRP”. Takes approx 6 mins to do a full regen run.

Finite vs Infinite - we’ve tried it on both. When set to infinite, the multiple Job 3’s all start at the same time as expected. With Finite, it schedules them 1 after the other which looks correct and mirrors our process. Even with finite there are way more hours available on the resource per day than required.

Scheduling is BACKwards.

You refer to 2nd process - as there are 3 separate jobs, would you still expect the Send Ahead to work between Jobs? I know it works for operations, but jobs too? The Start-Start on Operations isn’t applicable here because each job only has 1 operation.