Batch/One Piece flow scheduling

(James McKinnon) #1

I wonder if someone can point me in the right direction on scheduling planning as the way we have the system setup is not reflecting what we do – we may consider using some consultancy but at a high level I need to understand if E10 can do planning the way we would like to.

We make to order, discrete customer parts, some of these will be simple route and boms, some of these will be complex routes and bom’s with multiple levels of sub assembly. Each saleable part, including all of it’s sub-assemblies will be manufactured via one production order. To try to give this some context we may make a steel tank, so we would have a separate part for the right hand, left hand, top, bottom etc that come together as one saleable part which then may have other smaller part assembled onto it – foam kits etc

A customer may issue us with an order for 16, requiring delivery of 4 a week over 4 weeks – to optimise machine setup time etc we would run this as one production job with quantity of 16.
At our front end operations, for example cutting and bending operations, we will work on a full batch – so for example for an order of 16, we would cut and fold 16 left hand sides, 16 right hand sides etc all together. At subsequent operations, which may take several hours/days to complete for each unit, we would work on these one at a time and move them onto subsequent processes one at a time. For example it may take one day to weld all the sides together, once one is welded, we can paint that one and so on.

As our ops, routes, resources etc are currently setup, when I schedule this job, each operation is scheduled so that the preceding operation/sub assembly requires to be completed before you can start working on the next operation/assembly so it means that in the example above the painting op is only scheduled to start when all 16 have been welded – in our cases this could be a gap of days/weeks.

Effectively we are looking to be able to schedule a job as batch for some initial operations and for later operations switch to one piece flow. It is not Takt time as the demand is highly variable within a relative short window of time and indeed we are trying to establish where load exceeds capacity so as we can take action. Also not really level loading, as we would like the ability to flex capacity.
I’ve read the 170 page plus Tech RefGuide for scheduling and tried playing about with things like start to start, start to finish (we are currently finish to finish, with an 8 hours (shift) queue time between operations), production consumption rate, daily production capacity and also the scheduling factors like send ahead type and send ahead factor but I don’t get what I need which is the load spread smoothly across some/all operations during the life cycle of the job.

I appreciate this is a complex issue and question, but assuming anyone understands the above :wink: , has anyone setup Epicor 10 scheduling to be able to operate in this manner – please feel free to reply requesting more information.

(Marvin Horst) #2

I would look at changing scheduling blocks on the long-running operations. Normally defaults to 1

(Brandon Anderson) #3

We have similar problems with scheduling and batching like things from different jobs. We structure our jobs similar to yours. Also, our jobs average between 1000-2000 assembly sequences. We’ve found the scheduling engine pretty useless for us. We just schedule it to get it into purchase suggestions, but to do any kind of tweaking for us, it just doesn’t work, the system is too slow and it’s impossible to be well defined enough to make it useful for us at this point.

However, if you aren’t too tied to the schedule, using the work queue lets you clock into multiple things at once and you can filter by a lot of things. So if you know that you are going to be working on a certain part number, you can filter by that part number and start all (or some) of those part numbers that are currently released. Then you can end those activities all at the same time as well.

One workaround to a tough problem.

(Gil Violette) #4

I would break the routing in two - at the step when it goes from batch processing to single piece flow.

I’d create a fixed order quantity of 16 for the batch processes, and a fixed order quantity of 1 for the one-piece-flow operations.

That might not be doable in your business environment, but that is the simplest approach I can think of.

In our plant we do the exact same thing - but there is a clean break in the item’s routing when it goes from batch to one-piece - we have one part number for the child item’s start with a fixed order quantity of five, and it’s parent is a fixed order quantity of one. The planned jobs work nicely - we get plans for 5 piece jobs for the child, and one piece jobs for the parent.

This speaks to the heart of the difference between a Bill of Manufacture and a Bill of Material.

Clearly, the way setup times are defined on your routings can affect the one-piece jobs - if the setups are permanent (likely in a one piece flow environment), you don’t want the scheduler adding a setup for every run - you’ll falsely overload your cell with setup hours you aren’t actually going to perform.

(Rob Bucek) #5

Disclaimer This is all just personal view points, in know way do i think I’m the foremost authority on scheduling.

You listed most of what you need in one form or the other already. Like you said, scheduling is a complex issue. One thing you can’t do is have the system guess what you want to do ‘this time’ when the answer is often different. Modeling that takes a level of effort that would make any sane person kill themselves in my opinion. I’ve lived in that environment, it’s not a realistic expectation. Getting yourself a tool set built around your business model and scheduling needs is probably your best bet. Optimize your configuration as best you can that suites your 80/20 or sweet spot (you listed many of those towards the end). Dashboards to monitor capacity (define it accurately in your setup), build some automation / semi-automation for rescheduling ops when needed and utilize existing tools as best you can such as global rescheduling, resource scheduling dashboard and multi-resource scheduling dashboards.

You can address some of these issues with BOM structure etc, often times you compromise there when you go less than the ideal and lose visibility to costing and other factors (this may or may not be a big deal for you).

Like @Banderson mentioned, the engine does have limitations, i think his job structure is on one end of the extreme for average users of Epicor, but do understand (through testing) what limitations there are for your environment.

@Gil_V makes some great points to consider regarding scheduled setup impacting stated loads on your resources.

It sounds like you have a good idea on how you want to manage your shop you just have to pick the tools from everything available, everything you can build and make an agile active management approach to moving things through your system. I’ve seen it done before. In my experience a sizable chunk of scheduling issues derive from operational issues (procedures, capacity management, TQM failures etc…) you can’t schedule your way out of those. I bring that up because it’s important to recognize them and not design your system around problems like that. Address those each in turn. They exist in all companies to some degree or other.

I do believe most users can get something useful out of the scheduling module with some work which is better than nothing, try to avoid perfection paralysis and break it up into phases. That being said the engine is over a decade old with no meaningful improvements in that time (just some bells and whistles from 8 through 10). Yes I’ve been scheduling in it that long. Epicor does really need to move this to the top with it’s claim of being a manufacturing ERP.

(James McKinnon) #6

Thanks for all the replies.


Your process is the only way I think that this could work for a hybrid planning model.

Realistically we do not have the resource, appetite or capability to implement and manage this kind of change but I will suggest it as the best possible solution - I looked at scheduling blocks and it doesn’t give us what we need.

I think the problem with this is that there is quite frequently a gap between the 8 mile high flight level that questions about scheduling are asked when scoping or buying a system such as Epicor, and how a business actually operates/wants to operate scheduling.

As an aside is anyone aware of any good and simple apps/applications that can do this kind of hybrid (push/pull) scheduling - excel is a given.

(Brandon Anderson) #7

An interesting book that I read a little bit ago was Scrum: The Art of Doing Twice the Work in Half the Time. They talk a lot about schedules that are too in depth and virtually useless. (much like what @rbucek mentioned). I think that getting dates set to real dates down to the operation level is too hard to get right, unless your are purposely governing your capacity to control dates and always going slower than you can go. The more you try to nail it down, the more you end up being wrong. I think the more important part of the equation to get set, is to get everyone know which stuff to be working on, and in what order. If the priorities are clearly set and the triggers are well defined on when to start the next thing to work on, you just set it up so you work on the next thing in the queue, irregardless of what the date is. If you can get those things working well, (using Kanban type pull systems that you are mentioning) after a while you can get a bit of a feel for the pace and be able to get acceptable approximations of capacities and due dates. Promise long, deliver short!

Anyways, lots of theoretical talk. I can’t get my organization to work like this either, but I try when I feel like I can get traction.

(Gil Violette) #8

Mr. McKinnon -

Completely agree with the concept of the mile-high view versus the actual nuts and bolts of generating schedules. In my experience, it generally comes down to creating a resource group/resource model that reasonably matches the true capability of the shop, and having run times that are achievable. Most of the time, the construction of the model is done by folks that don’t have a detailed understanding of the scheduling engine.

Have you considered assigning resources directly to the operations that are done in one-piece flow manner, or do you have too many jobs to make that an effective solution? With the scheduling boards, it shouldn’t be too difficult to manipulate the individual machines (resources) to line up the assembly operations the way you like. If you’re talking about hundreds of jobs however, that can certainly become unwieldy. The scheduling boards (at least in V8) do allow you to schedule operations from a particular point in the routing, but you’d still have to deal with the selection of resources (trucks being scheduled in different bays).

(Rob Bucek) #9

Bingo… I spent a lot of time at my last gig doing that and making the tools available. Higher level scheduling with operational execution flexibility to manage things under 1,000 ft.