Job Schedule - Show me the data!

I am looking to create a query for all released (scheduled) jobs showing the schedule parameters such as ‘Finite Capacity’. When I get Field Help - Technical Details is shows EpiBinding as ‘ScheduleEngine.Finite’ I recognize this as a dll.

Where is this saved - ie what database and table?

Shawn Williams

I’m not sure that this Finite value would be saved.
I have always thought of it as a runtime option for the scheduling process?
i.e. ScheduleEngine

I’m with Bruce on this. If you really wanted to know where that data comes from, and what is done with it, you’ll need to decompile that DLL a poke around.

A quick and dirty solutions might be to create a UD field to store that data on the job and slap some code in a BPM to do it.

What is driving me crazy here is this; if you have the option to Finite Capacity or not Finite Capacity, then this implies that the global finite parameter is overridden by this if not in agreement. If this is correct, then the Schedule Calculator must be able to retrieve this parameter from somewhere in order to determine how to schedule all the operations for each individual job. I have not found this type of data in any table.

To expand this a bit, if you trace the schedule board communications, you will see it returns a dataset from the SchedulingBoard.BuildResourceLine method.

image

Again, it contains a lot of data that in not present on any Job table. The gant chart is generated from these calculated values - from where? It would take a lot of cpu time to recalculate these values (and every related operation) every time you pulled up a schedule board.

I feel like I am missing something!

You’re looking at one of the tables that Epicor builds on the fly. It doesn’t exist anywhere in the database in a format that matches the dataset/tableset you’re looking at.

As far as I’ve been able to tell the finite vs infinite isn’t stored anywhere relative to the job but is something that’s defined as a parameter to be passed in whenever you setup the scheduling engine to run.
The resources do have a finite capacity option and that ultimately decides whether or not the jobs are scheduled in a finite or infinite manner. The value that you’re passing in when you schedule from job entry is really whether or not you’re overriding that properly.

If you want to see what’s actually on your schedule then you need to be looking at the ResourceTimeUsed table. That table stores the resource allocations as well as the start and end times for everything that you would see on the scheduling board.

Erik,

Thanks for the reply. My question is the culmination of a lot of frustration that begins here:

image

This is the operation gant chart for one resource - a Mazak Nexus CNC machine. It can only do one operation at a time. I cannot get the gant chart to be a simple finish to start schedule (Finite) All I ever get is this, which implies infinite scheduling. So, starting from the top down, here is this Site Mainenance:

image

Next is the Resource Group:

image

And finally the Resource:

image

My conclusion can be several things:

  1. I am missing something blatantly obvious
  2. I am missing something significant that is hidden
  3. Something else is determining Finite/Infinite Scheduling - i.e. Job level Scheduling and thus the reason I am trying to figure out how this works from the data level.

Please point me in the correct direction.

Shawn Williams

A finite horizon of zero indicates that you want the resource/resource group to be scheduled infinitely.

The resource/resource group value will override the plant/site settings.

Heirarchy of settings is not well-documented.

Gil,

Blatantly hidden?

I want the Resource Group value to inherit Site Maintenance values, and the Resource to inherit the Resource Group values. If it ain’t ‘0’ then it cannot inherit at all? Or is there a special character to tell it to inherit?

Shawn

The setting on resource group acts as the default when creating a new resource.

The site maintenance setting will be the value used unless there is a different value on the resource/resource group. The resource group settings can override the resource settings.

Using V8 over here, but trying to relay as much info as I have gathered regarding settings heirarchy.

If you want them to be correct, verify the value on every resource group and resource. Hopefully, you won’t have too many to check. I’m not a fan of leaving anything to chance when modifying scheduler settings.

Please realize that even when scheduled finitely, it is possible to reschedule the job using infinite settings through Job Entry. On a lot of our work, we schedule the front operations finitely (through Job Entry) and modify the later operations to be infinite by using Job Scheduling Board. In our products, we have more flexibility at the end of a part’s routing than at the start to vary shop capacity (overtime, etc).

Edit - a word.

Gil,

I am trying to grasp what the rules are. Here is my level of understanding at this point:

  1. To get finite scheduling for a resource - it must have a finite horizon >0 value.
  2. Resource group finite horizon(RGFH) overrides resource finite horizon(RFH) only when RFH > RGFH.
  3. Site finite horizon(SFH) overrides resource group finite horizon(RGFH) only when RGFH > SFH.

The concept of inheritance is NOT used here.

Am I correct so far?

Job Entry is where I am still confused.

What I want is to understand what Finite Capacity = True does and what Finite Capacity = False does.

This implies that the Schedule Job Finite Capacity parameter override the Resource Finite Horizon value. Is this correct? (How can it do that without being stored somewhere?)

What I want is for every job to be scheduled as Finite Capacity. I want to correct every job to Finite Capacity = True(1) if it is not already true, without going job by job.

I don’t want much, do I?

Shawn

I would extend your finite horizon to the lead time of your shop, make sure your resources are set up to schedule finitely and global reschedule.

That should accomplish what you are trying to do.

Expect it to run for a while.

I have discovered why I cannot schedule Finite mode - my company is not using MRP feature, thus it cannot possibly schedule Finitely. Took me months to figure this one out. Thank you Robert Brown for helping me understand this!

(Doesn’t mean I have answers about where all the scheduling/calculations save the schedule/data/parameters, but at least I have some closure after months of searching for the root problem)

I hope this will help the next guy/gal trying to figure this out!

Shawn

There must be a module that you don’t have, there is no direct relationship between MRP and scheduling. MRP calls the scheduler during MRP to schedule the unfirm jobs.

Don’t want to burst your bubble, but I’m not convinced that something else isn’t going on.

Shawn,

We are going through the same issues currently. My question is, I figured the Horizon settings in Site Maintenance/Planning might not apply since we too are not running MRP, but does that mean we cannot set them by Resource Group and have the Global Schedule set jobs finitely? We have the same settings you outlined above, Site Maintenance Horizons set to 30,60,90 and Resource Groups/Resources set to 0. Is that why when we run global scheduling, we get jobs scheduling Infinitely?? Any assistance would be appreciated.

Eric P.
Jade Corp.

Eric,

Sorry Eric. I definitely feel your pain!, but I may not have what you want to hear. I will explain.

I had to resign myself to the reality that Epicor cannot do the scheduling that I need at our facilities.

Some brief history…
Precision Parts Inc is a machine shop. Scheduling relates directly to what the operator currently has on the machine, and what the operator is prepping for next. This is a very dynamic environment as opposed to the same machine doing the same thing for weeks at a time.

So with some programming skills and learning about Business Objects (Business Rules) in this forum, I was able to show the operator what to work on and give them a means of clocking on a job (activities) by clicking on the job in the list of jobs I produced with an SQL stored procedure. (MES is cumbersome)

But my underlying problem was always the schedule generated by Epicor. I could never get a finite schedule, so I did what most engineers do - do it myself!

So I am 5 weeks into developing a scheduling engine that will definitely yield a finite - real schedule. I am now starting on the GUI.

This is the path that I chose, because I can do it and get what I want.

Hope this will give you some additional thoughts about your dilemma.

Regards,
Shawn

Go to Epic Web and download the Application User Guide. Also get the MRP technical reference guide. Also get the planning and scheduling reference guide. Additionally you can use Epicor Embedded Education or help and it will explain the hierarchies and parameters.

I’m not understanding why a simple dispatch report cannot be used to instruct the operators what to work on next. The canned dispatch report works well, and it differentiates what items are available to start, and what items are not.