프로젝트 작업 및 자원 할당 재일정화

효율적인 프로젝트 관리는 종종 실제 상황의 변화를 반영하기 위해 일정을 조정해야 합니다. 작업이 지연되거나 마감일이 변경되거나 자원이 이용 불가해질 수 있습니다. Aspose.Tasks for .NET은 전체 프로젝트나 개별 작업을 다시 일정화할 수 있는 강력한 도구를 제공하여 프로젝트 관리자가 일정의 정확성과 최신성을 유지하도록 돕습니다.

시작일 또는 종료일 기준으로 프로젝트 재일정화

이 기능은 개발자가 새로운 시작일이나 종료일을 기준으로 프로젝트의 전체 일정을 이동할 수 있게 합니다. 예를 들어 프로젝트 시작이 연기되면 모든 작업을 손쉽게 뒤로 이동시킬 수 있습니다. 마찬가지로 마감일이 조정되면 종료일을 기준으로 다시 계산하여 모든 종속 작업이 올바르게 정렬되도록 할 수 있습니다.

프로젝트 종료일을 설정한 다음 호출하여 종료일로부터 날짜를 다시 계산할 수 있습니다. Project.Recalculate().

프로그래밍 샘플: 종료일 기준으로 프로젝트 재일정화

다음 코드 줄은 C#을 사용하여 이를 수행하는 방법을 보여줍니다.

1Project project = new Project("New Project.mpp");
2project.Set(Prj.ScheduleFromStart, false);
3project.Set(Prj.FinishDate, new DateTime(2020, 1, 1));
4
5// Now all tasks dates (Start, Finish, EarlyStart, EarlyFinish, LateStart, LateFinish) are calculated. To get the critical path we need to calculate slacks (can be invoked in separate thread, but only after calculation of all early/late dates)
6project.Recalculate();
7TaskCollection criticalPath = project.CriticalPath;

프로그래밍 샘플: 시작일 기준으로 프로젝트 재일정화

다음 코드 줄은 C#을 사용하여 이를 수행하는 방법을 보여줍니다.

1Project project = new Project("New Project.mpp");
2project.Set(Prj.ScheduleFromStart, true);
3project.Set(Prj.StartDate, new DateTime(2014, 1, 1));
4
5// Now all tasks dates (Start, Finish, EarlyStart, EarlyFinish, LateStart, LateFinish) are calculated. To get the critical path we need to calculate slacks (can be invoked in separate thread, but only after calculation of all early/late dates)
6project.Recalculate();
7TaskCollection criticalPath = project.CriticalPath;

프로젝트 업데이트 및 미완료 작업 재일정화

Microsoft Project는 지정된 날짜를 기준으로 작업을 업데이트하고 재일정화하는 기능을 제공합니다. 이는 지정된 날짜까지 완료된 작업을 식별하고 지정된 날짜 이후의 미완료 작업을 재일정화하는 데 도움이 됩니다. Aspose.Tasks의 Project API는 다음을 노출하여 동일한 기능을 제공합니다: UpdateProjectWorkAsCompleteRescheduleUncompletedWorkToStartAfter 메서드. 이 주제에서는 이 두 메서드를 하나의 사용 사례로 보여주는 동작 예제를 제공합니다.

프로젝트 파일 업데이트

아래 예제는 지정된 날짜까지 프로젝트를 업데이트하는 방법을 보여줍니다. UpdateProjectWorkAsComplete 메서드는 전체 프로젝트에 대해 지정된 날짜까지의 모든 작업을 완료된 것으로 업데이트합니다.

  1. Boolean 입력 매개변수가 true로 설정되면, 메서드는 지정된 완료 기준 날짜보다 이전에 종료일이 있는 작업만 100% 완료로 업데이트합니다.
  2. Boolean 입력 매개변수가 false로 설정되면, 메서드는 일정 상태와 완료 기준 날짜를 기반으로 완료 비율을 계산합니다.
  3. 작업 목록이 지정되면, 메서드는 해당 작업 목록에 대해 지정된 날짜까지의 모든 작업을 완료로 업데이트합니다.

이를 통해 실제 진행 상황을 계획된 일정과 빠르게 일치시키고 프로젝트 논리를 해치지 않으면서 미완료 작업을 앞으로 이동시킬 수 있습니다.

 1// Create a new project and set start date
 2Project project = new Project();
 3project.Set(Prj.StartDate, new DateTime(2014, 1, 27, 8, 0, 0));
 4
 5// Add new tasks
 6Task task1 = project.RootTask.Children.Add("Task 1");
 7Task task2 = project.RootTask.Children.Add("Task 2");
 8task2.Set(Tsk.Duration, task2.ParentProject.GetDuration(16, TimeUnitType.Hour));
 9Task task3 = project.RootTask.Children.Add("Task 3");
10task3.Set(Tsk.Duration, task2.ParentProject.GetDuration(24, TimeUnitType.Hour));
11Task task4 = project.RootTask.Children.Add("Task 4");
12task4.Set(Tsk.Duration, task2.ParentProject.GetDuration(16, TimeUnitType.Hour));
13Task task5 = project.RootTask.Children.Add("Task 5");
14task5.Set(Tsk.Duration, task2.ParentProject.GetDuration(16, TimeUnitType.Hour));
15
16// Add links between tasks
17TaskLink link12 = project.TaskLinks.Add(task1, task2, TaskLinkType.FinishToStart);
18TaskLink link23 = project.TaskLinks.Add(task2, task3, TaskLinkType.FinishToStart);
19// One day lag
20link23.LinkLag = 4800; 
21TaskLink link34 = project.TaskLinks.Add(task3, task4, TaskLinkType.FinishToStart);
22TaskLink link45 = project.TaskLinks.Add(task4, task5, TaskLinkType.FinishToStart);
23
24// Add new tasks
25Task task6 = project.RootTask.Children.Add("Task 6");
26Task task7 = project.RootTask.Children.Add("Task 7");
27task7.Set(Tsk.Duration, task7.ParentProject.GetDuration(24, TimeUnitType.Hour));
28Task task8 = project.RootTask.Children.Add("Task 8");
29task8.Set(Tsk.Duration, task2.ParentProject.GetDuration(16, TimeUnitType.Hour));
30Task task9 = project.RootTask.Children.Add("Task 9");
31task9.Set(Tsk.Duration, task2.ParentProject.GetDuration(16, TimeUnitType.Hour));
32Task task10 = project.RootTask.Children.Add("Task 10");
33
34// Add links between tasks
35TaskLink link67 = project.TaskLinks.Add(task6, task7, TaskLinkType.FinishToStart);
36TaskLink link78 = project.TaskLinks.Add(task7, task8, TaskLinkType.FinishToStart);
37TaskLink link89 = project.TaskLinks.Add(task8, task9, TaskLinkType.FinishToStart);
38TaskLink link910 = project.TaskLinks.Add(task9, task10, TaskLinkType.FinishToStart);
39task6.Set(Tsk.IsManual, true);
40task7.Set(Tsk.IsManual, true);
41task8.Set(Tsk.IsManual, true);
42task9.Set(Tsk.IsManual, true);
43task10.Set(Tsk.IsManual, true);
44
45// Save project before and after updating work as completed 
46project.Save("RescheduleUncompletedWork_not updated_out.xml", SaveFileFormat.XML);
47project.UpdateProjectWorkAsComplete(new DateTime(2014, 1, 28, 17, 0, 0), false);
48project.Save("RescheduleUncompletedWork_updated_out.xml", SaveFileFormat.XML);
49
50// Save project after rescheduling uncompleted work
51project.RescheduleUncompletedWorkToStartAfter(new DateTime(2014, 2, 7, 8, 0, 0));
52project.Save("RescheduleUncompletedWork_rescheduled_out.xml", SaveFileFormat.XML);

재일정화는 프로젝트 관리에서 중요한 부분으로, 상황이 변할 때 계획이 현실적으로 유지되도록 합니다. Aspose.Tasks for .NET을 사용하면 프로젝트 시작일이나 종료일을 원활하게 조정하고, 특정 시점까지의 진행 상황을 업데이트하며, 미완료 작업을 앞으로 이동시킬 수 있습니다. 이러한 기능은 정확한 일정을 유지하고 자원 계획을 개선하며 이해관계자들에게 프로젝트의 실제 상태를 알리는 데 도움이 됩니다.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.