Javaの最新のAspose.Tasksに移行します
Java 8.1.0のAspose.Tasksは、使用状況の観点からかなりの変更を含むAPIの改良版です。両方の実装の重要な違いは次のとおりです。
レガシーAPIは、プロジェクト、タスク、リソースなどのさまざまなプロジェクトデータクラスのパブリックフィールドを設定することを許可しました。
リソース割り当てなどの特定の操作の後、レガシーAPIのユーザーによって手動で呼び出される必要があるメソッドを再計算します。 Java APIの新しいAspose.Tasksは、ユーザー介入を必要とせずにそのような計算のほとんどを自動的に実行します。
新しいAPIは、Microsoft Project(MSP)と同様のマニュアルおよび自動再計算モードを提供します。手動モードは必要なフィールドのみを計算しますが、自動モードはすべてを再計算します。 これにより、再計算方法を手動で呼び出す必要がなくなり、API全体の使用が改善されます。
この新しいAPIはレガシーAPIと互換性があり、この記事の目的は、コードを新しいAPIに移行できるようにすることです。 この記事は、レガシーと新しいAPI実装の比較コードサンプルを示しています。
デフォルトのプロジェクトプロパティの設定
Aspose.TasksのレガシーAPIにより、プロジェクトクラスのパブリック属性を直接設定することにより、プロジェクトのデフォルトプロパティを設定できました。ただし、新しいAPI実装では、セットを公開し、同じことを達成するためのメソッドを取得します。
レガシーAPIコードサンプル
1//プロジェクトインスタンスを作成します
2
3Project PRJ = new Project();
4
5//プロパティのデフォルトを設定します
6
7prj.setschedulefromstart(true);
8
9prj.setStartDate(prj.getStartDate());
10
11prj.setDefaultStartTime(prj.getStartDate());
12
13prj.setDefaultTaskType(taskType.fixedduration);
14
15prj.setDefaultStandardRate(15);
16
17prj.setDefaultOverTimerate(12);
18
19prj.setDefaultTasKevMethod(hearnedValueEmethodType.PercentComplete);
20
21prj.setDefaultFixedCostaccrual(costaccrualType.prorated);
22
23//プロジェクトをXML形式に保存します
24
25prj.save( "project4.xml"、savefileformat.xml);
Java 8.xアプローチの新しいAspose.Tasks
1Project Project = new Project();
2
3//デフォルトのプロパティを設定します
4
5project.set(prj.schedule_from_start、new nullablebool(true));
6
7project.set(prj.default_start_time、project.get(prj.start_date));
8
9project.set(prj.default_task_type、tasktype.fixedduration);
10
11project.set(prj.default_standard_rate、15d);
12
13project.set(prj.default_overtime_rate、12d);
14
15project.set(prj.default_task_ev_method、hearnedvaluemethodtype.percentcomplete);
16
17project.set(prj.default_fixed_cost_accrual、costaccrualtype.prorated);
18
19project.save( "projectdefaultprops.xml"、savefileformat.xml);
プロジェクトへのカレンダーの作成と追加
プロジェクトに追加されたカレンダーアイテムの適切な機能のために、カレンダーUIDを再計算するために必要なレガシーAPI。ただし、新しいAPIでは、UIDSの再計算が自動的に処理され、計算を手動で呼び出す必要はありません。
レガシーAPIコードサンプル
1//プロジェクトインスタンスを作成します
2
3Project PRJ = new Project();
4
5//カレンダーを定義します
6
7カレンダーCal1 = new Calendar();
8
9cal1.setname( "no info");
10
11カレンダーCAL2 =新しいカレンダー(1);
12
13cal2.setname( "no name");
14
15カレンダーCal3 = new Calendar( "Cal3");
16
17prj.getCalendars()。add(cal1);
18
19prj.getCalendars()。add(cal2);
20
21prj.getCalendars()。add(cal3);
22
23prj.calccalendaruids();
24prj.save( "project.xml"、savefileformat.xml);
Java 8.xアプローチの新しいAspose.Tasks
1Project PRJ = new Project();
2
3カレンダーCAL1 = PRJ.GETCALENDARS()。追加( "情報なし");
4
5カレンダーCAL2 = PRJ.GETCALENDARS()。追加( "NO NAME");
6
7カレンダーCAL3 = prj.getCalendars()。追加( "Cal3");
8
9prj.save( "project.xml"、savefileformat.xml);
標準カレンダーの作成
再計算カレンダーUIDは、レガシーAPIと比較して、新しいAspose.TasksのAPIではこれ以上必要ありません。
レガシーAPIコードサンプル
1Project PRJ = new Project();
2
3//カレンダーを定義し、標準にします
4
5カレンダーCAL1 =新しいカレンダー( "My Cal");
6
7calendar.makestandardcalendar(cal1);
8
9prj.getCalendars()。add(cal1);
10
11prj.calccalendaruids();
12
13prj.save( "project.xml"、savefileformat.xml);
Java 8.xアプローチの新しいAspose.Tasks
1//プロジェクトインスタンスを作成します
2
3Project Project = new Project();
4
5//カレンダーを定義し、標準にします
6
7カレンダーCal1 = project.getCalendars()。追加( "my cal");
8
9calendar.makestandardcalendar(cal1);
10
11project.save( "project.xml"、savefileformat.xml);
プロジェクトにタスクを作成して追加
レガシーAPIで新しいタスクを作成すると、ルートタスクを定義し、プロジェクトにルートタスクとして追加してから、このルートタスクに子供として新しいタスクを追加する必要がありました。ただし、新しいAPIは、ルートタスクを定義する必要はなく、プロジェクトに最初のタスクを追加しながら自動的に処理します。
レガシーAPIコードサンプル
1Project Project = new Project();
2
3task roottask = new Task();
4
5タスクtskgen = new Task( "task1");
6
7tskgen.setid(1);
8
9tskgen.setuid(1);
10
11java.util.calendar cal = java.util.calendar.getInstance();
12
13Cal.set(2014、04、23、0、0、0);
14
15tskgen.setstart(cal.gettime());
16
17Cal.set(2014、04、25、0、0、0);
18
19tskgen.setfinish(cal.gettime());
20
21project.setroottask(Roottask);
22
23project.getroottask()。getChildren()。add(tskgen);
24
25project.save( "project.xml"、savefileformat.xml);
Java 8.xアプローチの新しいAspose.Tasks
1Project Project = new Project();
2
3タスクタスク= project.getroottask()。getChildren()。追加( "タスク1");
4
5java.util.calendar cal = java.util.calendar.getInstance();
6
7Cal.set(2014,3,4,0,0,0);
8
9task.set(tsk.start、cal.gettime());
10
11//タスクの開始日を設定します
12
13project.save( "createtasks.xml"、savefileformat.xml);
プロジェクトにリソースを作成して追加
- set *および * get *メソッドは、プロジェクトのリソースに関連する属性を操作するためのAPIのリソースクラスに追加されています。
レガシーAPIコードサンプル
1Project Project = new Project();
2
3リソースres = new Resource( "Res1");
4
5Res.SetID(1);
6
7res.setuid(1);
8
9java.util.calendar cal = java.util.calendar.getInstance();
10
11Cal.set(2014、04、23、0、0、0);
12
13res.setstart(cal.gettime());
14
15Cal.set(2014、04、25、0、0、0);
16
17res.setfinish(cal.gettime());
18
19project.getResources()。add(res);
20
21project.save( "project.xml"、savefileformat.xml);
Java 8.xアプローチの新しいAspose.Tasks
1Project Project = new Project();
2
3リソースrsc = project.getResources()。add( "r1");
4
5java.util.calendar cal = java.util.calendar.getInstance();
6
7Cal.set(2014,3,4,0,0,0);
8
9rsc.set(rsc.start、cal.gettime());
10
11Cal.set(2014,3,10,0,0,0);
12
13rsc.set(rsc.finish、cal.gettime());
14
15project.save( "createresource.xml"、savefileformat.xml);
プロジェクトへのリソース割り当てを作成して追加
- ResourceAsSignment *クラスは、タスク、リソース、タスクリンクなど、APIの他のデータコレクションと同様の *セット *および *取得 *メソッドを導入します。
レガシーAPIコードサンプル
1Project Project = new Project();
2
3タスクtskroot = new Task();
4
5タスクタスク=新しいタスク( "タスク");
6
7リソースrsc = new Resource();
8
9rsc.setStandardrate(bigdecimal.valueof(10));
10
11rsc.setovertimerate(bigdecimal.valueof(15));
12
13ResourceAsSignment Assignment = new ResourceasSignment(Task、RSC);
14
15assignment.setuid(1);
16
17java.util.calendar cal = java.util.calendar.getInstance();
18
19Cal.set(2009、8、18、0、0、0);
20
21assignment.setstart(cal.gettime());
22
23Cal.set(2009,8,20,0,0,0);
24
25assignment.setfinish(cal.gettime());
26
27project.setroottask(tskroot);
28
29project.getroottask()。getChildren()。add(task);
30
31project.getResources()。add(rsc);
32
33project.getResourceasSignments()。add(assignment);
34
35project.save( "project.xml"、savefileformat.xml);
Java 8.xアプローチの新しいAspose.Tasks
1Project Project = new Project();
2
3タスクタスク= project.getroottask()。getChildren()。add( "task");
4
5リソースrsc = project.getResources()。add( "rsc");
6
7rsc.set(rsc.standard_rate、bigdecimal.valueof(10));
8
9rsc.set(rsc.overtime_rate、bigdecimal.valueof(15));
10
11resourceassignment assignment = project.getResourceasSignments()。add(task、rsc);
12
13java.util.calendar cal = java.util.calendar.getInstance();
14
15Cal.set(2014,3,4,0,0,0);
16
17assignment.set(asn.start、cal.gettime());
18
19Cal.set(2014,3,4,0,0,0);
20
21assignment.set(asn.finish、cal.gettime());
22
23project.save( "resourceassignments.xml"、savefileformat.xml);