MPP에 메타 데이터 작성
Contents
[
Hide
Show
]ASPOSE.TASK의 Java는 캘린더, 작업, 작업 링크, 리소스 및 리소스 할당을 위해 MPP 파일에 메타 데이터를 작성할 수있는 시설을 제공합니다.
Microsoft 프로젝트 파일에 메타 데이터 작성
이 예에서는 다음 메타 데이터가 사용됩니다.
- 달력
- CalendarName
- 일
- Contact
- IsMarked
- IgnoreWarnings
- 작업 링크
- LagFormat
- LinkLag
- 의지
- Type
- 머리 글자
- MaxUnits
- Code
- Group
- EmailAddress
- NTAccount
- IsGeneric
- AccrueAt
- TeamAssignmentPool
- CostCenter
- 리소스 서명
- Uid
- Work
- RemainingWork
- RegularWork
- Start
- Finish
여기에 표시되고 무시 된 Warnings는 작업을위한 새로 추가 된 필드입니다. 마찬가지로 리소스의 경우 TeamAssignmentpool 및 CostCenter 속성이 제공됩니다.
다음 단계는 MPPS에 메타 데이터를 작성하는 방법을 보여주기 위해 샘플 코드에서 다음 단계를 따릅니다.
- 새롭고 빈 MPP 파일을 엽니 다.
- 프로젝트 캘린더의 월요일에 작업 시간을 추가하고 프로젝트 캘린더 이름을 변경하십시오.
- 작업 링크 및 지연으로 세 가지 작업을 추가하십시오.
- 예산 작업 1 개와 예산 비용 자원 1 개 (총 4 개)를 추가하십시오.
- 프로젝트 루트 작업 (프로젝트 요약 작업)에 예산 리소스를 할당하십시오.
- 첫 번째 및 두 번째 작업에 다른 두 리소스를 할당하십시오.
- 프로젝트 기준선을 설정하십시오.
- 새 작업 확장 속성을 추가하십시오.
- 변경 사항을 MPP 파일로 저장하십시오.
메타 데이터 작성
1// The path to the documents directory.
2String dataDir = Utils.getDataDir(WriteMetadata.class);
3
4long OneSec = 10000000;
5long OneMin = 60 * OneSec;
6long OneHour = 60 * OneMin;
7long OneDayEightHour = 8 * OneHour;
8long OneDayTwentyFourHour = 24 * OneHour;
9
10Project project = new Project(dataDir + "New project 2010.mpp");
11java.util.Calendar calendar = java.util.Calendar.getInstance(TimeZone.getTimeZone("GMT"));
12calendar.set(2012, java.util.Calendar.DECEMBER, 7, 0, 0, 0);
13Date startDate = calendar.getTime();
14calendar.set(2013, java.util.Calendar.DECEMBER, 7, 0, 0, 0);
15Date toDate = calendar.getTime();
16
17WorkingTime wt = new WorkingTime();
18wt.setFromTime(startDate);
19wt.setToTime(toDate);
20
21WeekDay day = project.get(Prj.CALENDAR).getWeekDays().toList().get(1);
22day.getWorkingTimes().add(wt);
23
24project.get(Prj.CALENDAR).setName("CHANGED NAME!");
25
26Task task = project.getRootTask().getChildren().add("Task 1");
27task.set(Tsk.DURATION_FORMAT, TimeUnitType.Day);
28task.set(Tsk.DURATION, project.getDuration(3));
29task.set(Tsk.CONTACT, "Rsc 1");
30// new fields
31task.set(Tsk.IS_MARKED, true);
32task.set(Tsk.IGNORE_WARNINGS, true);
33
34Task task2 = project.getRootTask().getChildren().add("Task 2");
35task2.set(Tsk.DURATION_FORMAT, TimeUnitType.Day);
36task2.set(Tsk.CONTACT, "Rsc 2");
37
38project.getTaskLinks().add(task, task2, TaskLinkType.FinishToStart, project.getDuration(-1, TimeUnitType.Day));
39
40calendar.set(2013, java.util.Calendar.DECEMBER, 13, 9, 0, 0);
41startDate = calendar.getTime();
42project.set(Prj.START_DATE, startDate);
43
44Resource rsc = project.getResources().add("Rsc 1");
45rsc.set(Rsc.TYPE, ResourceType.Work);
46rsc.set(Rsc.INITIALS, "WR");
47rsc.set(Rsc.ACCRUE_AT, CostAccrualType.Prorated);
48rsc.set(Rsc.MAX_UNITS, 1d);
49rsc.set(Rsc.CODE, "Code 1");
50rsc.set(Rsc.GROUP, "Workers");
51rsc.set(Rsc.E_MAIL_ADDRESS, "1@gmail.com");
52rsc.set(Rsc.WINDOWS_USER_ACCOUNT, "user_acc1");
53rsc.set(Rsc.IS_GENERIC, new NullableBool(true));
54rsc.set(Rsc.ACCRUE_AT, CostAccrualType.End);
55rsc.set(Rsc.STANDARD_RATE, BigDecimal.valueOf(10));
56rsc.set(Rsc.STANDARD_RATE_FORMAT, RateFormatType.Day);
57rsc.set(Rsc.OVERTIME_RATE, BigDecimal.valueOf(15));
58rsc.set(Rsc.OVERTIME_RATE_FORMAT, RateFormatType.Hour);
59
60rsc.set(Rsc.IS_TEAM_ASSIGNMENT_POOL, true);
61rsc.set(Rsc.COST_CENTER, "Cost Center 1");
62
63ResourceAssignment assn = project.getResourceAssignments().add(task, rsc);
64assn.set(Asn.UID, 1);
65assn.set(Asn.WORK, task.get(Tsk.DURATION));
66assn.set(Asn.REMAINING_WORK, assn.get(Asn.WORK));
67assn.set(Asn.REGULAR_WORK, assn.get(Asn.WORK));
68task.set(Tsk.WORK, assn.get(Asn.WORK));
69
70rsc.set(Rsc.WORK, task.get(Tsk.WORK));
71assn.set(Asn.START, task.get(Tsk.START));
72assn.set(Asn.FINISH, task.get(Tsk.FINISH));
73
74// Add extended attribute for project and task
75ExtendedAttributeDefinition attr = ExtendedAttributeDefinition.createTaskDefinition(CustomFieldType.Flag,
76 ExtendedAttributeTask.Flag1, "My Flag Field");
77project.getExtendedAttributes().add(attr);
78
79ExtendedAttribute taskAttr = attr.createExtendedAttribute();
80taskAttr.setFlagValue(true);
81task2.getExtendedAttributes().add(taskAttr);
82
83project.save(dataDir + "updated.mpp", SaveFileFormat.MPP);