MPPにメタデータを書きます

JavaのAspose.Tasksは、カレンダー、タスク、タスクリンク、リソース、リソースの割り当て用のMPPファイルにメタデータを書き込む機能を提供します。

メタデータをMicrosoftプロジェクトファイルに書き込む

この例では、次のメタデータが使用されています。

ここではマークされており、無知なワーニングはタスクのために新しく追加されたフィールドです。同様に、リソースについては、TeamAssignmentPoolとCostCenterプロパティが提供されます。

サンプルコードで次の手順に従って、MPPSにメタデータを書き込む方法を示します。

  1. 新しい空白のMPPファイルを開きます。
  2. プロジェクトカレンダーの月曜日に労働時間を追加し、プロジェクトカレンダー名を変更します。
  3. タスクリンクとラグを備えた3つのタスクを追加します。
  4. 2つのリソース、1つの予算作業、1つの予算コストリソース(合計4つ)を追加します。
  5. プロジェクトルートタスク(プロジェクトの要約タスク)に予算リソースを割り当てます。
  6. 別の2つのリソースを最初と2番目のタスクに割り当てます。
  7. プロジェクトのベースラインを設定します。
  8. 新しいタスク拡張属性を追加します。
  9. 変更を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);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.