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

.NETのAspose.tasksは、Microsoft Project(MPP)ファイルにメタデータを書き込む機能を提供します。これには、カレンダー、タスク、タスクリンク、リソース、リソースの割り当てに関連するプロパティが含まれます。このようなメタデータは、統合、検証、またはプロジェクト追跡ワークフローに不可欠です。

この例は、Asops.tasks APIを使用して、さまざまなタイプのメタデータをMPPファイルに書き込む方法を示しています。タスクの連絡先情報、リソース割り当ての詳細、カレンダー設定、カスタム属性などの一般的なフィールドをカバーしています。

例で使用されているメタデータ

次のメタデータフィールドが適用されます。

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

MPPファイルにメタデータを書き込む方法を示すために、サンプルコードで次の手順に従います。

  1. 新しい空白のMPPファイルを開きます。
  2. プロジェクトカレンダーの月曜日に労働時間を追加し、プロジェクトカレンダー名を変更します。
  3. タスクリンクとラグを備えた3つのタスクを追加します。
  4. 2つのリソース、1つの予算作業、1つの予算コストリソース(合計4つ)を追加します。
  5. プロジェクトルートタスク(プロジェクトの要約タスク)に予算リソースを割り当てます。
  6. 別の2つのリソースを最初と2番目のタスクに割り当てます。
  7. プロジェクトのベースラインを設定します。
  8. 新しいタスク拡張属性を追加します。
  9. 変更をMPPファイルとして保存します。
 1Project project = new Project("New Project.mpp");
 2
 3// Add working times to project calendar
 4WorkingTime wt = new WorkingTime();
 5wt.FromTime = new DateTime(2010, 1, 1, 19, 0, 0);
 6wt.ToTime = new DateTime(2010, 1, 1, 20, 0, 0);
 7WeekDay day = project.Get(Prj.Calendar).WeekDays.ToList()[1];
 8day.WorkingTimes.Add(wt);
 9
10// Change calendar name
11project.Get(Prj.Calendar).Name = "CHANGED NAME!";
12
13// Add tasks and set task meta data
14Task task = project.RootTask.Children.Add("Task 1");
15task.Set(Tsk.DurationFormat, TimeUnitType.Day);
16task.Set(Tsk.Duration, project.GetDuration(3));
17task.Set(Tsk.Contact, "Rsc 1");
18task.Set(Tsk.IsMarked, true);
19task.Set(Tsk.IgnoreWarnings, true);
20Task task2 = project.RootTask.Children.Add("Task 2");
21task2.Set(Tsk.DurationFormat, TimeUnitType.Day);
22task2.Set(Tsk.Contact, "Rsc 2");
23
24// Link tasks
25project.TaskLinks.Add(task, task2, TaskLinkType.FinishToStart, project.GetDuration(-1, TimeUnitType.Day));
26
27// Set project start date
28project.Set(Prj.StartDate, new DateTime(2013, 8, 13, 9, 0, 0));
29
30// Add resource and set resource meta data
31Resource resource = project.Resources.Add("Rsc 1");
32resource.Set(Rsc.Type, ResourceType.Work);
33resource.Set(Rsc.Initials, "WR");
34resource.Set(Rsc.AccrueAt, CostAccrualType.Prorated);
35resource.Set(Rsc.MaxUnits, 1);
36resource.Set(Rsc.Code, "Code 1");
37resource.Set(Rsc.Group, "Workers");
38resource.Set(Rsc.EMailAddress, "1@gmail.com");
39resource.Set(Rsc.WindowsUserAccount, "user_acc1");
40resource.Set(Rsc.IsGeneric, new NullableBool(true));
41resource.Set(Rsc.AccrueAt, CostAccrualType.End);
42resource.Set(Rsc.StandardRate, 10);
43resource.Set(Rsc.StandardRateFormat, RateFormatType.Day);
44resource.Set(Rsc.OvertimeRate, 15);
45resource.Set(Rsc.OvertimeRateFormat, RateFormatType.Hour);
46resource.Set(Rsc.IsTeamAssignmentPool, true);
47resource.Set(Rsc.CostCenter, "Cost Center 1");
48
49// Create resource assignment and set resource assignment meta data
50ResourceAssignment assignment = project.ResourceAssignments.Add(task, resource);
51assignment.Set(Asn.Uid, 1);
52assignment.Set(Asn.Work, task.Get(Tsk.Duration));
53assignment.Set(Asn.RemainingWork, assignment.Get(Asn.Work));
54assignment.Set(Asn.RegularWork, assignment.Get(Asn.Work));
55task.Set(Tsk.Work, assignment.Get(Asn.Work));
56
57resource.Set(Rsc.Work, task.Get(Tsk.Work));
58assignment.Set(Asn.Start, task.Get(Tsk.Start));
59assignment.Set(Asn.Finish, task.Get(Tsk.Finish));
60
61// Add extended attribute for project and task
62ExtendedAttributeDefinition attr = ExtendedAttributeDefinition.CreateTaskDefinition(CustomFieldType.Flag, ExtendedAttributeTask.Flag1,  "My Flag Field");
63project.ExtendedAttributes.Add(attr);
64
65ExtendedAttribute taskAttr = attr.CreateExtendedAttribute();
66taskAttr.FlagValue = true;
67task2.ExtendedAttributes.Add(taskAttr);
68
69project.Save("WriteMetaData_out.mpp", SaveFileFormat.MPP);

概要

MPP ファイルにメタデータを書き込むには、さまざまなプロジェクト要素に対して構造化されたフィールドを設定する必要があります。Aspose.Tasks for .NET を使用すると、オブジェクトモデルを通じてこれらのフィールドに直接アクセスできます。このアプローチにより、他のシステムとの統合が可能となり、MPP ファイルを詳細なレポート作成や検証のために準備できます。

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.