Invalid resource codes being used in jobs

So we ran across a problem yesterday, where someone could start activity on a job, but whenever they went to end activity, they got a null reference error. After copying the database and debugging, we finally found out that we have jobs with scheduled resources that are valid resource IDs.

It looks like these are employee IDs. Is that a thing?

In this screen shot there are 2 resources, but in the problem job it was only the invalid one.

If we remove from schedule then reschedule, it applies the appropriate resource.

Does anyone know why this is happening, or what we could do about it?

Any clues in the Scheduling Logs?

I haven’t gotten that far yet. If we reschedule manually, this goes away, so I don’t know exactly how to catch it.

I think we figured it out. We had some employees set as the resources for some of these operations, (which they really shouldn’t be) and someone removed that from their employee record. So I believe that the ones that were removed were the ones that were not finding the proper resources and setting off the exception.


OK, so since that was the error, I found only 10 jobs that needed to be rescheduled.

So that being fixed, I do have some questions about how that scheduling works. (Everywhere I’ve worked has some external schedule to work towards because there were too many setup steps to make scheduling useful).

So in real world, you have a machines/workstations, and you have workers. If I have 20 stations and 10 workers. So I can only run a machine x hours a day so if I run 10 hour days we have 200 hours of machine time available total. With the workers I only have 100 hours of man hours available in a day.

So even if you have the work to load all 20 machines up, you can only run 10 of them at a time because you only have 10 people.

Conversely, say I have enough work to load all 10 people up, but they all run on the same 2 machine, I can only run 20 hours of work.

From what little I’ve explored with the scheduling engine, I haven’t seen any way to schedule the machines AND people with both of those constraints taken into account.

Is that statement accurate? Or is that was setting the employees as a resource is supposed to do?

There is no one answer to this question. It really depends on your company and how you want to manage overload.

If you want to run Finitely, you set up the limiting resources as Finite and the system will tell you what can be made and your Due Dates will get pushed out beyond the Ship By and that is your trigger to do something.

If you want to run Infinitely, you review the load on resources to see where you are above capacity and that is your trigger to do something.

But yes, if you have more machines than people, I would have the employees be Finite.

So scheduling is a beast but I had the same issue when Scheduling. I am not sure if you need advanced scheduling or not but I believe you do. There is a lot of setup to use capabilities so you can use that on the operation and the resource then schedule add two resource groups to the operation one man resource group and one machine resource group, This will allow epicor only to schedule to the constraint.

For the one place I worked I actually did the scheduling along with IT and Epicor duties for awhile. I learned a lot and had it functioning in a test environment better than I have seen. My suggestion is though don’t go through each operation and resource just use the bottle necks in each functional area.

feel free to ask more questions or PM if you want to know more.