Understanding Project Task Scheduling
To manage a project successfully over a period of time, the project manager must be able to create a project schedule that accurately reflects the time that is required to purchase and manufacture products that are needed to complete the project. Effective time and resource management is a high priority in today's business environment. Accordingly, JD Edwards EnterpriseOne Engineer to Order enables you to:
Schedule projects using standard project constraints, such as task dependencies, fixed tasks, and resource availability.
Import or export to Microsoft Project.
As you add tasks to the WBS for the project, you must indicate how much time is required to complete each task. For summary tasks, you must enter durations manually. For work orders, the system retrieves the duration from the level lead time that is defined for the item in the Item Branch program (P41026). It calculates the start and end dates for the task by using the duration and the system's scheduling function.
You use task dependencies to specify the sequence in which the project tasks must be performed. The types of available task dependencies enable you to schedule overlapping tasks; that is, the earlier task (predecessor) can still be incomplete when the next task (successor) starts. You can use lag time in addition to the dependencies to structure the sequence of tasks. These four types of task dependencies are available:
Finish to Start (FS). The predecessor task must be finished before the successor task can start.
Finish to Finish (FF). The predecessor task must be finished before the successor task can be finished.
Start to Start (SS). The predecessor task must start before the successor task can start.
Start to Finish (SF). The predecessor task must start before the successor task can be finished.
When defining task dependencies in JD Edwards EnterpriseOne Engineer to Order, you must observe these rules:
You can establish dependency links between parent tasks, but not between parent and related child tasks.
You can create a dependency between a parent task and a child task that is not related to the parent task.
You cannot create a reverse link between tasks that are already linked. This rule helps you avoid creating a circular relationship.
You define task dependencies for subtasks that are on the same level. In this case, the planned start and end dates depend completely on the defined task dependencies.
The system enables you to modify the predecessor and successor in task dependencies, as well as enter and revise other fields relating to the task dependencies. Task dependencies are accessible in the Edit Task Dependency region of the Edit Tasks and Edit And Lock All Tasks forms in Project Workbench.
When you select a task in the project, it then appears as the successor task in the Edit Task Dependencies region. You define predecessors for the chosen task either by typing in the predecessor task number or by using a search button.
The system validates dependencies during entry to check for invalid dependencies. This functionality is similar to the functionality of MS-Project. Validation occurs when you press Tab to move out of the dependency line that you created. The system issues an error message for invalid dependencies. This table lists the dependency types that are validated:
Dependency Type |
Definition |
---|---|
Indirect circular dependency |
Indirect circular dependencies are created when a circular dependency exists across the level. Indirect circular dependencies occur:
Any dependency between two tasks that results in a circular dependency is an invalid dependency. |
Direct circular dependency |
Direct circular dependency occurs only while you are creating the dependencies for the tasks in the Edit Task Dependencies region of the Edit Tasks and Edit And Lock All Tasks forms in the Project Workbench. A direct circular dependency is created when a circular dependency is on the same level or irrespective of the levels. This works for the first level but not the other levels. Direct circular dependency can occur when two child tasks of two different tasks have dependency defined twice. That is, one dependency is defined as Predecessor-Successor and another is defined as Successor-Predecessor. Another example of a direct circular dependency is the dependency that is defined between task A to B, B to C, C to D, and D to A. |
Parent-Child dependency |
An explicit dependency exists between a parent task and its child task. Explicit dependencies between parent and child occur:
Consider that two parent tasks are in a project. One of the child tasks has an explicit dependency with the other parent. If the child task is moved in to the task that has an explicit dependency, then it creates an implicit dependency between the tasks that leads to a parent child dependency error. Both an implicit and explicit dependency cannot exist between two tasks. The system issues an error message to the user that an error occurred while the user was creating the task dependency that is parent/child. |
Duplicate dependency |
Two dependencies cannot be identical. |
Self dependency |
The predecessor and successor task cannot be the same. |
Project Workbench enables you to define the type of tasks that pertain to scheduling. You can mark individual tasks as fixed or non-fixed to lock down an individual task. Fixed tasks have to be scheduled in the time window that is assigned and cannot be manipulated outside this boundary. Forward and backward scheduling respect the constraints that are related to task types as well as honoring dates and duration when scheduling the project.
This table lists the task types:
Task Type |
Definition |
---|---|
Non-fixed Task |
This task's position in time has not been set. Its dates can be changed either by the user or moved by the system when scheduling the project. |
Fixed Task |
Only the individual task is fixed. It is permanently set at a particular instance in time. The task cannot be automatically moved by the scheduling algorithm, and can be changed only by the user making manual modifications to the start and end dates of the task. A fixed task behaves differently at different levels. For a task which is at the lowest level, a fixed task means that both the start and end dates are set. However, for a task which is at a higher level and has at least one child, a fixed task means that only the task start date (in case of forward scheduling) or task end date (in case of backward scheduling) is set. The other date has to be calculated based on scheduling dependencies and the requirement that the parent task has to span the combined duration of all its children. Designating a task as a Fixed Task only causes no restrictions on the movement of its child tasks as long as they remain within the span of the parent task. |
Forward scheduling enables the project manager to schedule tasks from a given start date. With forward scheduling, tasks are scheduled according to their duration and dependencies so that each task begins on its earliest possible start date.
JD Edwards EnterpriseOne Requirements Planning, which generates messages that recommend work order start dates based on backward scheduling, usually agrees with dates that are created by the backward-scheduling function of the Project Workbench program. With backward scheduling, a project manager can enter an absolute date by which the project must finish and schedule backward to determine the start date on which it must begin.
For both forward and backward scheduling, the Project Workbench program uses the task dependencies that you establish for each task to suggest correct start and end dates.
You can use the options on the Edit And Lock All Tasks form for forward and backward scheduling. If you change the dates or duration of a task, the system reschedules all tasks that depend on this task.
When you designate task types and perform scheduling, rules are in place to avoid infeasible schedules. This table lists the rules:
Task Level |
Task Type |
Rules |
---|---|---|
Parent Task |
Fixed Task |
|
Child Task |
Fixed Task |
|
When you move tasks within a WBS and perform scheduling, rules are in place to avoid infeasible schedules. This table lists the rules:
Move Task |
Rules |
---|---|
Move existing Fixed Task to make it a parent task. |
|
Move existing Fixed Task to make it a child task. |
|
You can forward and backward schedule a project with fixed tasks. These rules apply to both forward and backward scheduling:
Scheduling includes a new return status to indicate the presence of infeasible schedules.
Scheduling does not modify both the start and end date of a fixed task that is at the lowest level and does not have any children.
Relationships between two fixed tasks are not honored, as the relationships has no meaning.
For forward scheduling:
Scheduling should not modify the start date of a fixed task that has children underneath it. However, the system can manipulate the task end date to honor the requirement that the date span of the parent must span the combined date span of its children.
The project start date could be affected due to the presence of fixed tasks.
When you are backward scheduling, these rules apply:
Scheduling should not modify the end date of a fixed task that has children underneath it. However, it can manipulate the task start date to honor the requirement that the span of the parent must span the combined span of its children.
The project end date could be affected due to the presence of fixed tasks.
The scheduling that is set up for fixed task scheduling must be validated. You can analyze the setup by clicking the Check for Conflicts button on Edit Tasks and Edit And Lock All Tasks. If you do not analyze the setup, the system performs the analysis when you save the schedule or perform scheduling.
The system determines whether the start and end dates of each task violate any explicit or implicit dependencies with another task on which the current task depends. The system also determines whether the task violates any time span rules resulting from fixed tasks. If the system finds a violation, the violating task is moved so that it no longer violates the dependency. However, if the system does not find any feasible direction to move without violating at least one of the dependencies, an infeasible schedule status is returned.
You run the scheduling algorithm by clicking the Schedule button on the Edit And Lock All Tasks form. If an infeasible schedule condition is met at any time during the scheduling process, the process stops and an error message appears. When the scheduling algorithm runs, it changes dates and durations of tasks, but only in cache, not to tables. If an error is found, the dates and durations that were changed in cache are changed back to their original values and are not saved to tables. The Scheduling Error Report displays the changed dates and durations so that you can compare them against the original values to get an idea of what caused the error. This is accomplished by saving the dates and durations that were changed into the Scheduling Error Report (F31PUI01) table before changing the values in cache back to their original values. The Scheduling Error Report runs over this table and deletes the contents for the user and project when the UBE has finished. The use of the Scheduling Error Report is controlled with a processing option in the Project Workbench (P31P001) program under the Scheduling tab.
After you set up project information in the Project Workbench program (P31P001), you can export the WBS to a third-party software program, such as Microsoft Project. You can use Microsoft Project to work with task durations and dependencies. You can then import task revisions back into the Project Workbench program. If you add or delete tasks in Microsoft Project, you cannot import these changes into the Project Workbench program.