Gantt LWC - Project Scheduling Direction

    The Gantt Lightning Web Component (LWC) supports both forward and backward scheduling. The scheduling direction determines how the scheduling engine plots project tasks.

     

    To enable Scheduling Direction in Inspire Planner, please see Admin Guide - Gantt LWC - Scheduling Direction.

     

    Please note the following:

    • The following features are only supported in the Gantt Lightning Web Component (Gantt LWC) and is not available in Gantt Visualforce:
      • Scheduling Direction
      • Project Start Date (sysProjectStart) Setting
      • Project End Date (sysProjectEnd) Setting
      • Project Border Violation Setting
         
    • Scheduling Direction Switching Caution: Scheduling Direction in Gantt LWC is introduced with the Jun 2024 - Major Release. Gantt Visualforce Projects that are converted to Gantt LWC will have Scheduling Direction set to NULL. Gantt LWC will then assume a forward-scheduled project. You should not switch the scheduling direction for projects in-flight as this will have a major impact on how tasks are scheduled and how constraints are set. If you would like backward-scheduled projects, you should create new projects and set the Scheduling Direction to "Backward".

     

    When you create a new waterfall project, the default scheduling direction is "Forward". You can choose the scheduling direction for the project - choose between Forward and Backward. If there is no value in Scheduling Direction, it will assume a forward scheduling direction.

     

     

     

    Forward Scheduled Project

    In a forward scheduled project (default scheduling direction), tasks are scheduled as soon as possible (ASAP) from the project start date. This scheduling direction is ideal for projects where the project finish date is determined by when the project starts.

     

    When you create task dependencies, the successor (dependent) tasks plot as soon as possible following its predecessor(s). 

     

    Project Start Date

    When you create a new waterfall project and create tasks in the project, the earliest task start date becomes the default Project Start Date. This is referred to as the project border and is the earliest date that tasks can start. 

     

    All tasks without predecessors will have a task start date that defaults to the project start date. When you adjust a task's duration, the task finish date will automatically adjust according to the duration from the task start date.

     

    Let's say we create a new waterfall project and set the scheduling direction to "Forward". As we create tasks, the task duration will default to 1 day and the task start date will default to the current date. Notice that the Project Start Date defaults to a blank value.



     

    You can adjust the task duration and also adjust the task start and/or finish dates. When you save the project, Inspire Planner looks for the earliest task start date and this becomes the Project Start Date.

     

    Please Note:

    To see the value in Project Start Date, you will need to refresh the project.

     

    Notice in the example below that the earliest task start date is June 10, 2024. This is now the value you see in the Project Start Date setting on top of the Gantt.

     

     

    For every new task that is added to this project or for any task that does not have a predecessor, the task start date will default to project start date which is June 10, 2024.

     

    In the example below, if we add a new parent task and subtasks, they all default to the same date as the project start date. This is because the project start date means that this is the earliest date the tasks can begin.

     

     

    Adjusting the Project Start Date

    As previously mentioned, the earliest task start date determines the default Project Start Date. However, you can define the Project Start Date and all tasks in the project that do not have a predecessor are automatically rescheduled to start on the same date as the project start date.

     

    To change the Project Start Date, click on the calendar icon and select a date from the calendar.

     


     

    You will notice that all tasks without predecessors are automatically rescheduled according to the new project start date. You will need to save the project to save the new project start date, as well as the updates made to the task start dates. If you leave the project without saving it, the project start date will revert to its previous value.

     

    Please note the following:

    • The Project Start Date Setting populates a field on the Project Object called "sysProjectStart". If this field is on your project page layout and/or project Lightning record page, you may also set the Project Start Date by populating this field. You will also need to set "sysRecalcStartDate" to TRUE so that all tasks without predecessors are updated according to the date in sysStartDate.
       
    • You may also create a flow in Salesforce that will automatically set/populate the value in "sysProjectStart" and set "sysRecalcStartDate" to TRUE so that all tasks without predecessors are updated according to the date in sysStartDate.
       
    • If a task has a predecessor(s), it will always plot as soon as possible (ASAP) following its predecessor(s).

     

     

    Rescheduling a Task to Start Earlier than Project Start Date

    As previously mentioned, the Project Start Date is deemed as the project border. All tasks without predecessors will have a task start date that defaults to the project start date since this is the earliest date a task can begin.

     

    What happens when you adjust a task to start earlier than the project start date depends on the "Project Border Violation" setting. This can be found in the Project Settings Dialogue.

     

    In a Project, click on the Project Settings Icon.
     


     

    In the Project Settings dialogue, you will find a setting called "Project Border Violation".
     

     

     

    Project Border Violation Settings Explained

    The Project Border Violation Setting contains the following options:

     

    • Conflict: This is the default setting. When you adjust a task to start earlier than the Project Start Date, a constraint violation dialogue is displayed onscreen.


       
    • Ignore: Will allow you to adjust a task to start earlier than the Project Start Date and no constraint violation will be displayed.
       
    • Honor: Will enforce the project start date. This means that if you try to reschedule a task to start earlier than the project start date, it will always set the task to start on the same date as the project start date. 
       
    • Null: If there is no value selected in the Project Border Violation Setting, it will behave the same as "Conflict".

     

     

    If the Project Border Violation Setting is set to NULL or "Conflict", when you adjust a task to start earlier than the Project Start Date, a constraint violation dialogue is displayed onscreen.

     

    • Ignore the project border and proceed with the change
      This will allow you to proceed with your change. If you then save the project, this new earliest task start date will now become the project start date and all tasks without predecessors will be re-scheduled to this new project start date.

      For example, if I reschedule a task to start on June 3, 2024 which is earlier than the project start date of June 10, 2024 and I save this change, when I refresh the project, the project start date will now be June 3, 2024. All tasks without predecessors will re-schedule according to this new project start date.

      Please Note:
      You will need to manually refresh the project to see the update to the project start date setting and the task recalculation.

      All the tasks whose start date has been rescheduled according to the new project start date will display a red change indicator. You will then need to save the project.



       
    • Adjust the task to honor the project border
      This will set the task start date to the same date as the project start date.
       
    • Cancel the change and do nothing
      This will cancel your change.

     

    If a task has a predecessor(s), it will always plot as soon as possible (ASAP) following its predecessor(s).

     

    Rescheduling a Task to Start Later than the Project Start Date

    The project start date is the earliest date that tasks without predecessors can start. However, you can manually reschedule a task to start later. When you reschedule a task to start later than the project start date, Inspire Planner will automatically populate a start-no-earlier-than (SNET) constraint.

     

    For example, if the Project Start Date is set to June 3, 2024 and we reschedule a task to start on June 10, 2024, it will automatically populate a start-no-earlier-than constraint and the constraint date is the same date as the task start date. This prevents the scheduling engine from rescheduling the task start date according to the project start date.

     

     

    If you remove the start-no-earlier-than (SNET) constraint, the scheduling engine will reschedule the task as soon as possible based on project start date. This means it will reschedule the task to start on the same date as the project start date.

     

    Notice in the example below that if we remove the constraint, the task start date is rescheduled to the same date as the project start date of June 3, 2024.

     

     

    If a task has a predecessor(s), it will always plot as soon as possible (ASAP) following its predecessor(s).

     

    Backward Scheduled Project

    In a backward scheduled project, tasks are scheduled as late as possible (ALAP) from the project end date. Tasks are scheduled according to when the project needs to finish. The project finish date determines when tasks in the project should finish.

     

    All tasks without predecessors will have a task finish date that defaults to the project end date and the project start date is the earliest task start date. Based on the task duration and/or dependencies, the task start date will adjust according to the task finish date.

     

    This is ideal for projects where there is a pre-determined project finish date. For example, you may be planning an event where the event date is already pre-determined and cannot be moved. The activities leading up to the event are scheduled according to when the event is set to occur. 

     

    Project End Date

    When you create a new waterfall project and create tasks in the project, the latest task start date becomes the default Project End Date. This is referred to as the project border and is the latest date that tasks can finish. 

     

    All tasks without predecessors will have a task finish date that defaults to the project end date. When you adjust a task's duration, the task start date will automatically adjust according to the duration from the task finish date.

     

    Let's say we have created a new waterfall project and set the scheduling direction to "Backward". As we create tasks in this new project, the task duration will default to 1 day and the task finish date will default to the current date. Notice that the Project End Date defaults to a blank value.



     

    When you adjust the task duration, you will notice that the task finish date does not move. Instead, it will adjust the task start date according to the duration from the task finish date. When you save the project, it then populates the Project End Date setting on top of the Gantt.

     

    Please Note:

    To see the value in Project End Date, you will need to refresh the project.

     

    Notice in the example below that task finish date for all tasks defaults to the current date which is June 10, 2024. This is now the value you see in the Project End Date setting on top of the Gantt.

     


     

    For every new task that is added to this project or for any task that does not have a predecessor, the task finish date will default to project end date which is June 10, 2024.

     

    In the example below, if we add a new parent task and subtasks, they all default to the same finish date as the project end date. This is because in a backward-scheduled project, tasks are scheduled as late as possible from the project end date.

     

     

    Adjusting the Project End Date

    Although the Project End Date setting defaults to the finish date of the first task you create in the project, you can define the Project End Date and all tasks in the project that do not have a predecessor are automatically rescheduled to finish on the same date as the project end date.

     

    To change the Project End Date, click on the calendar icon and select a date from the calendar.

     


     

    You will notice that all tasks without predecessors are automatically rescheduled according to the new project end date. You will need to save the project to save the new project end date, as well as the updates made to the task finish dates. If you leave the project without saving it, the project end date will revert to its previous value.

     

    Please note the following:

    • The Project End Date Setting populates a field on the Project Object called "sysProjectEnd". If this field is on your project page layout and/or project Lightning record page, you may also set the Project End Date by populating this field. You will also need to set "sysRecalcStartDate" to TRUE so that all tasks without predecessors are updated according to the date in sysProjectEnd.
       
    • You may also create a flow in Salesforce that will automatically set/populate the value in "sysProjectEnd and set "sysRecalcStartDate" to TRUE so that all tasks without predecessors are updated according to the date in sysProjectEnd.
       
    • If a task has a predecessor(s), it will always plot as late as possible (ALAP) following its predecessor(s).

     

     

    Rescheduling a Task to Finish Later than Project End Date

    As previously mentioned, the Project End Date is deemed as the project border. All tasks without predecessors will have a task finish date that defaults to the project end date since this is the latest date a task can finish.

     

    What happens when you adjust a task to finish later than the project end date depends on the "Project Border Violation" setting. This can be found in the Project Settings Dialogue.

     

    In a Project, click on the Project Settings Icon.
     


     

    In the Project Settings dialogue, you will find a setting called "Project Bor Violation".
     

     

     

    Project Border Violation Settings Explained

    The Project Border Violation Setting contains the following options:

     

    • Conflict: This is the default setting. When you adjust a task to finish later than the Project End Date, a constraint violation dialogue is displayed onscreen.


       
    • Ignore: Will allow you to adjust a task to finish later than the Project End Date and no constraint violation will be displayed.
       
    • Honor: Will enforce the project end date. This means that if you try to reschedule a task to finish later than the project end date, it will always set the task to finish on the same date as the project end date. 
       
    • Null: If there is no value selected in the Project Border Violation Setting, it will behave the same as "Conflict".

     

     

    If the Project Border Violation Setting is set to NULL or "Conflict", when you adjust a task to finish later than the Project End Date, a constraint violation dialogue is displayed onscreen.

     

    • Ignore the project border and proceed with the change
      This will allow you to proceed with your change. If you then save the project, this new latest task finish date will now become the project end date and all tasks without predecessors will be re-scheduled to this new project finish date.

      For example, if I reschedule a task to start on June 18, 2024 which is later than the project end date of June 12, 2024 and I save this change, when I refresh the project, the project finish date will now be June 18, 2024. All tasks without predecessors will be re-scheduled according to this new project end date.

      Please Note:
      You will need to manually refresh the project to see the update to the project end date setting and the task recalculation.

      All the tasks whose finish date has been rescheduled according to the new project end date will display a red change indicator. You will then need to save the project.



       
    • Adjust the task to honor the project border
      This will set the task finish date to the same date as the project end date.
       
    • Cancel the change and do nothing
      This will cancel your change.

     

    If a task has a predecessor(s), it will always plot as late as possible (ALAP) following its predecessor(s).

     

    Rescheduling a Task to Finish Earlier than the Project End Date

    The project end date is the latest date that tasks without predecessors can finish. However, you can manually reschedule a task to finish earlier. When you reschedule a task to start earlier and it causes the task to finish earlier than the project end date, it will automatically populate a start-no-later-than constraint for the task. 

     

    When you reschedule a task to finish earlier (where you are adjusting the task finish date instead of the task start date), it will automatically populate a finish-no-later-than (FNLT) constraint for the task. 

     

    For example, let's say we have a project with a Project End Date that is set to June 18, 2024.

     

    If we reschedule Task A to start on June 10, 2024 and it has a duration of 2 days, the scheduling engine will set the task finish date to Jun 11, 2024 which is now earlier than the project end date. You will notice that it is setting a start-no-later-than constraint with a constraint date equivalent to the task start date. 

     

     

    If we reschedule Task B to finish on June 13, 2024 and set task duration to 2 days, the scheduling engine will adjust the task start date to reflect the task duration of 2 days from June 13, 2024. You will also notice that it is setting a finish-no-later-than constraint with a constraint date equivalent to the task finish date. 

     

     

    In both use cases above, if you remove either the start-no-later-than (SNLT) or finish-no-later-than (FNLT) constraint, the scheduling engine will reschedule the tasks to finish on the same date as the project finish date.

     

    Notice in the example below that if we remove the start-no-later-than (SNLT) constraint for Task A and also remove the finish-no-later-than (FNLT) constraint for Task B, the task finish date for both tasks is rescheduled to the same date as the project end date of June 18, 2024.

     

     

    If a task has a predecessor(s), it will always plot as late as possible (ALAP) following its predecessor(s). When you create task dependencies (predecessors), the scheduling engine automatically plots the tasks backwards, as-late-as-possible from the project end date.

     


    Tags

    Getting Started - Gantt LWC

    « Previous ArticleNext Article »