Good morning,
I just setup a new resource group representing 10 milling machines. Inside the resource group I setup a new resource for each milling machine.
When scheduling a job that requires any resource from this group, how does the system choose which resource to schedule from the group? Is there any way to define a priority for the resources in the group? So if I have two older machines that we try not to use, then they will be scheduled last.
When I backwards scheduled the job from the job entry screen, the system seems to have choose the first resource in the resource group. But I can’t tell how they are sorted. It is not the order I created them, or by the resource ID and not by the description.
EDIT: On second review. It is alpha sorting by the ResourceID field. Since I used numbers for my ResourceIDs, they looked out of order. Is this the expected way to prioritize the resources? I expected to be able to change machine priority on the fly. Am I expecting too much?
Thanks!
Nate
I’m not sure, but I think @timshuwy might know best.
I thought the resource that is selected is the first one that will finish the operation first (and I thought it looked like the resources were evaluated in ResourceID alphanumeric sorted, but all are checked.)
If you use Capabilities (and you might consider that or at least understand how it works) there are more priority options.
Another consideration if you have older resources you want to lower their use would be to associate them with a Calendar that has less time available each day or you might be able to twist the resources Daily Production Capacity (this is not a time capacity, I think it’s a units capacity) to limit the resources availability.
first… remember that even if you have 10 resources, it will only schedule the FIRST resource in the list for ALL jobs, UNLESS you do Finite Scheduling. It is the finite scheduling that forces the system to choose from available resources.
With Finite, it will first schedule one resource, and then the second job that comes along needing a resource from the resource group will select the next one in line, etc., until all the resources are consumed, then it will use the next avialable time slot for the next resource.
To “Prioritize” which resource is chosen, you need to use another feature that works really well, but takes more setup. You can use the “Capability” feature:
define a capability (Assemble Level 1).
define which resources can do this capability. Within this you can also set the sequence for each resource to be consumed. Example: if you have level 1, 2, and 3 assemblers, (each with more talent), you can tell the scheduling system to use the level 1 assemblers first before using 2 and 3. Even though a level 3 can do level 1 work, you want to use up the level 1 first. Note that you can also specify the efficiency that each resource has when doing this capability… for example, level 3 assembler might be 10% more efficient.
define the same for level 2 and level 3… but obviously, only level 3 assembler resources would be in the level 3 capability.
LASTLY, you need to change your BOM/BOO so that the operation points to the CAPABILITY instead of the RESOURCE GROUP. This allows the capability to work.
Once a resource is scheduled by the Global Scheduling process, shouldn’t the resource that is scheduled be listed in the JobOpDtl table? Or does that only happen if I assign a specific resource?
Is there another table that holds the resource that gets assigned to the job by the Global Scheduling Process?
In my attempt to see the whole picture, I want to see all the open jobs and their operations start/end dates. It looks like the Job tables can provide this information if I use them correctly. Am I on the right track?
Thanks!
Nate
EDIT: I found the ResourceTimeUsed table. Perhaps I should be referring to that instead of the job tables. I am having trouble understanding JobOpMac, and LoadDays in this table. Otherwise I think this is the thing I need.
Will the capability module give me the ability to solve the issue below?
I have an operation that uses a milling machine with a rotary table. Only 4 or our 10 milling machines have an additional rotary table that can be attached. The rotary tables are specific to each machine. So I setup a resource group for the rotary tables, and each resource is a specific table that goes to a specific machine. I also setup the milling machines resource group to include the four mills that have rotary table options.
I would like the schedule to automatically pick a rotary table resource that matches whatever milling machine it choose for the operation. For example if the schedule sees that mill #13 is open, it should also schedule the rotary table for mill #13. Currently, the schedule ignores this, and just picks the first available resource in each group as you described.
@NateS Have you found the Technical Reference for Scheduling? It’s available on EpicWeb, and it covers everything (this topic and your other question about ‘splitting’)
Resource priority is found as a column on the resource group entry screen and allows you to prioritize which resource in a group is chosen, in order. If you don’t enter a value, the priority is the order in which they were entered. (TechRef page 169, June 8th 2021 revision)
Capabilities are also covered, and may possibly work for you. But I have to ask, if Mill #13 is scheduled for an operation that does not require the Table #13, and Table #13 cannot be sued for any other Mill, then why separate them? Could you adjust the MOM/operation to require the table based on the part being made? If you use Configurator, it’s rules can apply capabilities dynamically.
These are good questions that I have also been asking around the shop. I think you are right on at the end. We need to adjust the MOM/op after the job is scheduled. The way I understand it is like this…
We have 50 jobs on the floor that all need a milling machine. In our resource group of milling machines, 10 of them are regular mills, and 4 of them are mills with a rotary table.
Our goal is to choose a resource group for the op, and have the scheduler choose the specific resource. If we let it roll without changing the MOM, all 50 jobs get assigned to mills regardless of their rotary table ability.
This is fine. But when one job comes in that needs a rotary table, the scheduler will just pick one of the mills just like it did before, regardless of the rotary table ability.
The solution seems to be, include a second resource group in each operation that needs a rotary table. The first resource group will choose the machine and the second resource group will choose the rotary table.
That advanced scheduling module seems to be the magic bullet we need. I am not sure it will solve all of the scheduling issues, but if it can at least represent our capacity and capabilities correctly, then we will be working in the right direction. I am considering requesting some paid help from the professional services team at Epicor. I have to admit I am worried they will not be worth the cost.
I agree with @MikeGross and his comment on this one. Your Mill #13 and your Rotary table #13 should be a single resource. It should be a “Mill with a rotary table”, and maybe even in its own resource group of mills with rotary tables. Then you can define a capability as “Mill with rotary table” and “mill without rotary table”. ALL the mills can be listed as resources for the cabililty of “mill without rotary table” because even the ones with the rotary table can probably do the work, by turning off the table. But if the job requires a mill with a table, then you use that capability. Again, you can prioritize within the capability which resources are chosen first so that the rotary table resources are chosen last.
OH… sorry… well, without that module, there is no way to do capability type scheduling. You are reliant on the more simple resource scheduling which does not support prioritization and substitution of a higher ability resource to do a simpler job.
additional features of the “Advanced Scheduling” includes:
you can assign more than 2 resources per operation
you can do constrained materials and finite scheduling of operations.
you get the “multi-resource scheduling board” which allows you to move operations between resources after they are scheduled.
This is not meant to Discount what our Reps do, but Account reps dont have 16+ years of direct experience IMPLEMENTING the product. That experience gives a lot more weight to what you can say.