1.Resource efficiency percentage
What is it used for?
The efficiency percentage is a field that is found in all MRP/ ERP systems. It has the obvious purpose to take into account the real world. If I work 8 hours a day according to my contract, the scheduling system cannot assume that I am indeed going to be available 8 hours to do work. The natural down time has to be taken into account. An efficiency of 85% is considered realistic for human workers. For machines one would leave it at 100%. When machines are down for maintenance or repair reasons, we do not use the efficiency % but actually adjust the calendar to zero hours for the duration of the maintenance.
The system uses this efficiency % to reduce the day length. EXAMPLE: If your calendar indicates 8 hours per working day, and your efficiency is 80%, the system will assume you only have 6.4 hours per day to do work. See screens below.
In the standard definition, this is a field that has values below 100. But there is no problem entering values > 100 and this turned out to be very useful.
NOTE: In Resource groups in AX 2012, the efficiency percentage can no longer be changed.
Use Efficiency% > 100%
Many manufacturing companies have a dilemma in the set up of resources as follows: Let’s say we have a department where 5 employees work full time. I do not want to manage them each as a separate resource. I want my scheduling to be on the level of the team. How to represent their capacity?
If we don’t know about the trick with the efficiency % > 100%, we would have to create them each as a resource, link them to a resource group which is the team and we would get available capacity of 200 hours a week as we wanted. If we use operation scheduling only, the system would schedule on the resource group level and it would work fine. If we want to use job scheduling, we are in trouble. The system will want to pick one of the five resources and if running “infinite” capacity, it will always be the first one (with the lowest id). This clearly will not work.
We would do this instead: define the team of 5 as one resource with efficiency 500%. This will give us 200 hours per week for scheduling and the system assumes we can do 5 jobs in parallel without really scheduling any of that detail.
2. How to define shifts?
This has been discussed very often, because DAX does not use the concept “shift” in scheduling functionality. The main question is how granular we want to manage capacity. If we want the system to know exactly who works when, we’ll have to set up calendars that define the work hours of each shift exactly and link them to the resource. But if we are not managing our capacity “to the person” this does not make much sense. If we have a 2 shift operation, DAX only needs to know the total of work hours of the 2 shifts together. This is defined in the calendar and this will define capacity accurately enough for scheduling.
NOTE: In Manufacturing execution, the shift is typically defined in the profile. It is critical here as payment is different for different shifts. This profile field has nothing to do with scheduling.
3. Secondary operations
This feature is designed to address the ‘man/machine’ problem where we have operators and machines working as resources in the same routing step. One of the two has to be primary for scheduling and typically this would be the machine.
Note: in early AX 2012 kernel versions it is not possible to use the same operation code for primary and secondary routing operation as shown in the screen above. Above screen was created in 6.2.1000.4051. In that case a different operation code has to be used and the times of the secondary operation will not display (but are used)
The operator is added to the routing with the same operation number but with priority ‘secondary 1’. What is the functionality of a secondary operation? Such an operation does not allow any updates to the times. The times of the primary operation are used. We can use separate rates and of course a separate resource group or resource or resource requirement. For scheduling, the secondary operation is 100% parallel.
There are up to 5 secondary operations possible but I have never seen them used. Secondary 2 could be used for Tooling. (when tools are defined as resources).
But what if we have an operator that is handling multiple machines, so he/she is only “part time” working on the machine resource?
4.Use the Load field to handle one operator handling multiple machines.
Often one operator handles more machines. How to set this up correctly?
– For scheduling and for costing we want to reflect that our operator is ‘part time’ for this machine.
– This is done by using the little known field on the Resource Requirement tab ‘Load’
With a percentage < 100 we can indicate that our operator is part time attending to this machine.
This will reduce the hours of the secondary operation so it will also reduce the cost.
Of course the system will not be able to send a warning when our total % for a human resource is higher then 100%. NOTE: This field value will only take effect after a Re-Estimate!! In the update tab of the routing operation you will see the total hours go down, and in the Price calculation you will see the impact of this on the estimated labor cost.
The scheduled dates of the operation are NOT changing. The system changes the estimated hours but the lead time is not changed.
5. Number of resources
There is another interesting feature on this tab. The field “number of resources“. If I have scheduled my routing operation on a resource GROUP, but I want to indicate that this routing operation is typically run on more than 1 machine at a time, I can put a number in that field. Let ‘s say I put a “2” in there. The system will then send me the following message immediately:
I will say “yes” when my two resources are working I parallel and my process time is actually cut in half. My total time has not changed, so my estimated labor cost is also unchanged. But for scheduling, this makes a difference. The system will now schedule only 12 hours in the calendar. I will say “no” when my two resources are not working in parallel and are both needed to get the work done. Then my new estimate will be double hours, do double the cost. My scheduled dates for the operation will not change.
– Operation scheduling. I simply see my lead time being cut in half or I will see it unchanged. (depending on “yes” or “no” answer to the run time question) The routing operation remains scheduled on the Resource Group. NOTE: A peculiar detail is the following: the system will give a scheduling error (you know that error, that always helps us so much “not enough capacity can be found”) when we don’t really have two resources defined in our group! We ‘d better have them defined. Even though operation scheduling does not use these resources in any way, they have to be there.
– Job scheduling. In this case these two resources are actually getting a job, each gets half of the work if I said ‘yes’ to the question, or they each get a job for the entire processing time in the operation if I say ‘no’ to the question. Two jobs are created for two different resources. These would be the first to resources in th resource group, alphabetical order. If we don’t use any finite functionality (and we don’t) , the system as no criteria to choose a resource and will simply go in sequence. This is excellent functionality and I have had customers ask for this feature many times in the last 10 years.