I’m after some advice, many of our manufactured parts must start and finish within the same working day. We are backward scheduling, is there a solution to force MRP to schedule these jobs within a 9am to 5pm window ensuring any started Job completes the same day?
These Jobs have one operation and one resource attached to them.
Yes, the time for the operation is controlled by the resource group and the calendar assigned to it and the number of machines or scheduling blocks you assign to the operation. Our resources are people so we use generic resources for capacity and we do infinite capacity.
Everything is an integer in the MRP calculation so if you have an 8 hour calendar and a 50 hour job that is 6.25 machines, so you will need to assign 7 scheduling blocks to the operation BEFORE it is scheduled and Epicor will handle the rest. The resources can be used multiple times in infinite, so Epicor may assign it seven times or like my example 1 and 2 are used.
I do ours in JobEntry.Update and it based on the hours of the job under 40 gets 2 resources, 80 gets 3 resources, 100 5 resources, etc, but you will have to trace out how MRP is making the job and possibly update them in a JobOper data directive.
Appreciate feedback Greg, we may have to explore using a BPM, all these jobs are a few hours max, some under two hours but scheduling engine will often start the job late and complete in the morning. Due to the nature of the manufacturing process we have to start and finish these jobs the same day.
Calendar is 9am till 5pm, 1 resource (one person only), 1 scheduling block, actual job hours must remain fixed so not sure if we can introduce additional scheduling blocks.
Can this be achieved out of the box or do we need to explore using BPM?
What is the site backwards schedule due time? If that is 4:59 PM and the jobs are just a few hours and you are infinite it should give you all one day jobs.
The more scheduling blocks you add it applies what Epicor calls the squeeze factor to finish the job sooner. It is not a real person or resource, just to make the math work.
Unfortunately this resource is finite, jobs cannot run concurrently. Backward scheduling Start is set to 23:59. Changing to infinite and adjusting backward start time to 4:59pm indeed completes all jobs in the same day but this wouldn’t work for us.
Operator starts Job A completes Job A, starts Job B completes Job B, if there’s not enough time to start and complete Job C operator will not start the Job until the next working day. Need scheduling engine to mirror this.
Easiest answer is to print a “Do not start this job after [Time]” in bold letters on the router. You get the time by taking whatever you define as EOD and subtracting the Est Hours on the job. Use a BPM and a UD field attached to the JobHead or JobAsmb table.
I don’t know if you’re running Global Scheduling, but that should shift the job to the beginning of the next day and then everything is back inline with expectations.
Hardest answer is build your own custom scheduling function that runs after the system apps and moves things around the way you like. That’s the stuff of my nightmares though. Every other idea I’ve thought about in the last 5 minutes was even worse/less effective.