none
Implement more rows for working time RRS feed

  • Question

  • Hey!

    I want to know if you have any clue how i can implement more rows to type in the working time. I want to have one calender for all shifts. I already filled in the 5 rows in the mask for the working time. 

    00:00-00:45

    01:00-04:00

    04:15-08:30

    8:45-12:00

    12:30-16:45

    I need 2 more rows for the following breaks. The next 2 rows should be:

    17:00 till 20:00

    20:15 till 00:00

    Does anyone have a workaround or a clue how i can implement this?

    I am implementing the times with vba. I thought i can use the following code with the line for shift 6 i get errors.

        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift1.Start = "00:00"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift1.Finish = "00:45"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift2.Start = "01:00"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift2.Finish = "04:00"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift3.Start = "04:15"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift3.Finish = "08:30"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift4.Start = "08:45"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift4.Finish = "12:00"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift5.Start = "12:30"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift5.Finish = "16:45"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift6.Start = "17:00"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift6.Finish = "20:00"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift7.Start = "20:15"
        ActiveProject.BaseCalendars("Standard").WeekDays(3).Shift7.Finish = "00:00"

    Thank you and greetings

    Jonas


    • Edited by Jonas_Ber Wednesday, May 20, 2020 8:42 AM Mistake in Code
    Wednesday, May 20, 2020 8:42 AM

Answers

  • Jonas,

    I saw your question but didn't fully understand what you are asking/saying. However, after looking in detail I think I understand the issue. First of all, yes, you can assign resources with multiple shifts to a task. In the screen shot below I show a 5 day task. The Project calendar is the 24 hour calendar. Resource "Joe" works first shit, 7:00AM to 3:00PM. Resource "Bill" works second shift, 3:30PM to 11:30PM. In this case there is a half hour "dead time" between shifts. Both resources are assigned to work the task. When resources are initially assigned (via Assign Resources), Project splits the total task work equally between the two resources, hence each has 20 hours of work spread during their shift work times. Note the hand-off of work between the two shifts with no work during 3rd shift since there isn't a 3rd shift in this "factory".

    Now to the second part of your question. Project has three task types, fixed duration, fixed work and fixed units. By default, tasks are fixed work type and by definition, a fixed work task is effort driven, it cannot be set to non-effort driven. Effort driven means that if you assign more resources to a task, the duration will decrease (i.e. with more effort, the task gets done quicker). Fixed units and fixed duration type tasks can be either effort driven or non-effort driven. In the following example, both resources are assigned to a task with an estimated duration of 0.5day. Note that even though the task potentially could be completed by the 1st shift resource, Project spreads the total work equally between the two resources (i.e. 2 hours each) and since the resources are on different shifts, the task is extended over 2 shifts.

    Since that is likely not the desired scheduling, there are a couple of ways to change it. One is to manually increase the 1st shift resource work to the full 4 hours and zero out the 2nd shift resource work. The question is, why were two resources on different shifts assigned to the task in the first place. Of course, if the task start time was unknown (i.e. driven by a predecessor task) or likely to start 2 hours before 1st shift end, then the assignment would play out correctly.

    The second method of dealing with this task scenario is to make the task of fixed duration type. Now when the two resources on different shifts are assigned, the duration is "fixed" at 0.5 day and since it starts at the beginning of first shift, work is scheduled for the 1st shift resource only.

    An important thing to understand about Project is that Project has no intelligence, it does not have "soft logic" built in that will, for example, optimize resource utilization (e.g. resource skill level, work priorities, etc.).

    Hopefully I've clarified a few things and if so, please consider marking one of my responses as the answer.

    I'm curious, your initial post was about implementing work shifts using VBA, something that's normally, and probably more easily, done manually. Why the focus on VBA?

    John
    • Edited by John - Project Wednesday, May 27, 2020 5:00 PM missing screen shot
    • Marked as answer by Jonas_Ber Thursday, May 28, 2020 12:37 PM
    Wednesday, May 27, 2020 4:53 PM

All replies

  • Jonas_Ber,

    The clue is, you're trying to do too much at once. You really can't get there from here.

    If you have multiple shifts such that individual resources work on specific shifts, then you need individual shift calendars for each shift resource and you may or may not need/want to apply a particular shift or multi-shift calendar to individual tasks. For example, if you have 3 shifts, create individual 1st, 2nd, and 3rd shift calendars. Use those as the Base Calendar for your resources. If a particular task is only worked on 1st and 2nd, 3rd and 1st, or 2nd and 3rd, then create individual custom calendars for those groupings and set the Task Calendar appropriately. The Project calendar should be the built-in 24 hour calendar, or perhaps customized if you only work 3 shifts 5 or 6 days a week.

    That's your "workaround", hope this helps.

    Just for reference, you have some very "interesting" shifts. I plotted the work times out and made a guess as to which shift was which. None of the shift durations are the same and there is an interesting 45 minute dead time at midnight.

    John


    • Edited by John - Project Thursday, May 21, 2020 2:07 AM picture worth 1K words
    Wednesday, May 20, 2020 5:16 PM
  • Hey John

    i cannot split the shifts in different calenders. I need to have them all together in one. I am planning our production and due to this i need all breaks in one calender.

    But i will try something else if there is no possibility how to get more shift times in the calender.

    Just for your information:

    Shift 1: 6:30 - 14:45

    Shift 2: 14:45 - 22:30

    Shift 3: 22:30 - 6:30

    Now it should make sense ;)

    The 45 minute dead time is my first time corridor in the question.

    Monday, May 25, 2020 5:57 AM
  • Jonas_Ber,

    Again, I think you are trying to do to much (i.e. too fine a detail). The shifts you note are interesting. First shift is 8h 15 min, second shift is 7h 45 min, and third shift is 8h. There must be something else going on that I'm missing. Nonetheless, if you need all three shifts in one calendar, why not simply use the built-in 24h calendar?

    What is your goal? Why do you feel you need to show all three shift separately but in one calendar? I can't think of a scheduling instance where that makes sense or would be of any benefit. I would be very interested to hear an example.

    Let me ask you a question about wanting to show individual breaks in each shift. Do your workers clock out and clock back in for each 15 minute break? If not, and I suspect not, then why do you need to show breaks in the calendar?

    I'd love to help you out, but honestly, I think you're headed down the wrong path. I'd like to understand your end goal such that I, or others, can offer suggestions to help you get there more efficiently.

    John


    Monday, May 25, 2020 11:39 PM
  • Hey John,

    first of all: thanks for trying to help me!

    I want to build up a process plan for our manufacturing. I want to have the task scheduled with regarding the breaks. For example Step 1 will start at 8 AM and need 1 hour duration.

    Now i use Project to schedule this task so that project tells me that step 1 will be finished at 9:15 AM because there is a break at 8:30 AM.

    I have one ressource to schedule this. This ressource has my default calender which i set through VBA. I think there is no chance to do this with more ressources because the task would not be finished till all ressources have done 1 second of work. Maybe i can change this

    If this is not possible in Project i will merge the breaks together but i will be missing some details on the plan then.

    Jonas

    Tuesday, May 26, 2020 5:39 AM
  • Jonas_Bar,

    In your example you say a task will start at 8:00AM and needs 1 hour to complete. How do you know it will take exactly one hour? One worker may be able to complete the task in 50 minutes. Another worker may take 1 hour and 10 minutes while yet another worker will finish the task in exactly 1 hour. Unless your factory is doing work that has very exact and repeatable activities (e.g. precisely timed machine operation), task durations are always estimates, and when human resources are involved, worker skill and experience play an critical part at the detail level.

    A normal work day is 8 hours although it may vary by company or region. During those 8 hours labor resources do not work at 100% efficiency (i.e. bathroom breaks, lunch, chit-chat with other employees, etc.). As I recall, the estimated efficiency of human labor resources is in the range of 70% to 90%, meaning, that in that 8 hour day, labor resources are actually only working [on task] 5.6 to 7.2 hours. Attempting to create a plan with that level of detail will result in something that is overly complex and unmanageable.

    Here is what I suggest. In a factory environment that has 3 shifts, use the built-in 24 hour calendar as the Project calendar. If labor resources work on specific shifts, create three shift calendars with the shift work times, including lunch break, if desired, (normally 30 minutes) as non-working time. Use the appropriate shift calendar as the Base Calendar for each labor resource. Machine resources, which are labor type resources, should use the 24 hour calendar as the Base Calendar unless that machine is down (e.g. maintenance) for a whole or partial shift. If tasks are to be worked on any shift then the Task calendar should be "none", meaning the task follows the Project calendar. If a task is only worked during a certain shift or perhaps two specific shifts, then create a custom double shift calendar and assign that as the Task Calendar.

    This approach gives more than enough detail for adequate management of virtually any kind of plan. If you still feel you need to take your plan to another level of detail, then Project is not the application for you, you need to look for scheduling software specifically designed for a manufacturing environment (e.g. MRP software).

    Hope this helps.

    John

    • Marked as answer by Jonas_Ber Wednesday, May 27, 2020 7:04 AM
    • Unmarked as answer by Jonas_Ber Wednesday, May 27, 2020 7:08 AM
    Tuesday, May 26, 2020 3:25 PM
  • Hey John,

    thanks for your detailled answer! I know that the plan will not be very precised but i hope it will be good enough for us.

    Do you have an answer for my question in the last reply?

    Is there a chance to assign more ressources with different shifts to one the task? I tried it and the task would not be finished till all ressources have done 1 second of work. Is there a configuration to change this?

    Thanks a lot for your time! You are very helpfull!

    Jonas

    Wednesday, May 27, 2020 7:12 AM
  • Jonas,

    I saw your question but didn't fully understand what you are asking/saying. However, after looking in detail I think I understand the issue. First of all, yes, you can assign resources with multiple shifts to a task. In the screen shot below I show a 5 day task. The Project calendar is the 24 hour calendar. Resource "Joe" works first shit, 7:00AM to 3:00PM. Resource "Bill" works second shift, 3:30PM to 11:30PM. In this case there is a half hour "dead time" between shifts. Both resources are assigned to work the task. When resources are initially assigned (via Assign Resources), Project splits the total task work equally between the two resources, hence each has 20 hours of work spread during their shift work times. Note the hand-off of work between the two shifts with no work during 3rd shift since there isn't a 3rd shift in this "factory".

    Now to the second part of your question. Project has three task types, fixed duration, fixed work and fixed units. By default, tasks are fixed work type and by definition, a fixed work task is effort driven, it cannot be set to non-effort driven. Effort driven means that if you assign more resources to a task, the duration will decrease (i.e. with more effort, the task gets done quicker). Fixed units and fixed duration type tasks can be either effort driven or non-effort driven. In the following example, both resources are assigned to a task with an estimated duration of 0.5day. Note that even though the task potentially could be completed by the 1st shift resource, Project spreads the total work equally between the two resources (i.e. 2 hours each) and since the resources are on different shifts, the task is extended over 2 shifts.

    Since that is likely not the desired scheduling, there are a couple of ways to change it. One is to manually increase the 1st shift resource work to the full 4 hours and zero out the 2nd shift resource work. The question is, why were two resources on different shifts assigned to the task in the first place. Of course, if the task start time was unknown (i.e. driven by a predecessor task) or likely to start 2 hours before 1st shift end, then the assignment would play out correctly.

    The second method of dealing with this task scenario is to make the task of fixed duration type. Now when the two resources on different shifts are assigned, the duration is "fixed" at 0.5 day and since it starts at the beginning of first shift, work is scheduled for the 1st shift resource only.

    An important thing to understand about Project is that Project has no intelligence, it does not have "soft logic" built in that will, for example, optimize resource utilization (e.g. resource skill level, work priorities, etc.).

    Hopefully I've clarified a few things and if so, please consider marking one of my responses as the answer.

    I'm curious, your initial post was about implementing work shifts using VBA, something that's normally, and probably more easily, done manually. Why the focus on VBA?

    John
    • Edited by John - Project Wednesday, May 27, 2020 5:00 PM missing screen shot
    • Marked as answer by Jonas_Ber Thursday, May 28, 2020 12:37 PM
    Wednesday, May 27, 2020 4:53 PM