0

私は、地元の開発チームがプロジェクト情報 (ストーリー、リソースなど) をアジャイル管理システムから Microsoft Project 2010 にエクスポートするためのユーティリティを作成しており、これを実現するために MPXJ と C# を使用しています。サンプルを使用してコードをまとめ、MS Project に正常にインポートされる MPX または MSPDI 出力ファイルを生成するのは非常に簡単でした。ただし...私たちが望むフォーマットは、次のようにマルチレベルです。

Project -> TaskA -> TaskASubtask1
                 -> TaskASubtask2
        -> TaskB -> TaskBSubtask1
                 -> TaskBSubtask2 -> TaskBSubSubtask1

単純に子タスクをランダムな順序で追加すると (入力ストリームが適切にソートされていません)、タスクの WBS レベル値は正しく見えますが、インポート後のタスクは、生成されたファイルの直前のタスクの下に配置されます。

ファイルを適切に順序付けすることは 4.3.0 で修正されたバグであると読んだことがあるので (思い出すと)、「正しい」順序でタスクを追加する必要はないと思いました。MpxCreate.cs の例を使用して、タスクの作成を「順不同」にすると、MS Project で期待されるようにタスク階層が表示されないという同じ動作が見られることがわかりました。

この単純なコード スニペットは、MS Project で「順不同のプレゼンテーション」をもたらします (2 番目のサブ タスクは次のタスクの下にネストされます)。

Task task1 = file.AddTask();
task1.Name = "Summary Task";

Task task2 = task1.AddTask();
task2.Name = "First Sub Task";

Task task4 = file.AddTask();
task4.Name = "Next Task";

Task task3 = task1.AddTask();
task3.Name = "Second Sub Task";

これは機能するはずですか?または、各階層が一度に完全に埋められるように、タスクの作成順序を変更する必要がありますか?

私はそれで遊び続けるつもりですが、洞察を歓迎します。

ありがとう、オーウェン

4

2 に答える 2

2

私はまったく同じ問題を抱えていました。エクスポートする前に次の関数を呼び出すと、エクスポートされた XML ファイルが MS Project 2010 に正しくインポートされます。

projectFile.getTasks().synchronizeTaskIDToHierarchy();

(Jon Ilnes からの回答は良いヒントでしたがgetTasks()、途中で が抜けていたため、100% 正しいとは言えませんでした。)

于 2020-08-31T11:57:05.243 に答える