Statusing Web Service (PSI) を介して課題のステータス情報を更新しようとしています。問題は、結果が期待どおりでないことです。私がやっていることを詳細に説明しようとします:
2 つのケース:
1) 指定されたタスクにリソースの割り当てが存在します。作業実績(更新状況)を報告したい。
2) 指定されたタスクにリソースが割り当てられていません。割り当てを作成し、作業実績を報告したいと考えています。
プロジェクトには 1 つのタスクがあります (自動スケジュール、固定作業)。すべてのリソースのリソース可用性は 100% に設定されています。すべて同じカレンダーです。
- 名前: タスク 31 - 固定作業
- 期間: 12,5 日?
- 開始: 14.03.13 木
- 終了: 火 02.04.13
- リソース名: リソース 1
- 仕事: 100 時間
最初に、次の ChangeXML で UpdateStatus を実行します
<Changes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Proj ID="a8a601ce-f3ab-4c01-97ce-fecdad2359d9">
<Assn ID="d7273a28-c038-486b-b997-cdb2450ceef5" ResID="8a164257-7960-4b76-9506-ccd0efabdb72">
<Change PID="251658250">900000</Change>
</Assn>
</Proj>
</Changes>
次に、SubmitStatusForResource を呼び出します
client.SubmitStatusForResource(new Guid("8a164257-7960-4b76-9506-ccd0efabdb72"), null, "auto submit PSIStatusingGateway");
次のエントリが承認センターにポップアップ表示されます (これは予想どおりです)。
ステータスアップデート; タスク 31; タスクの更新; リソース 1; 2012 年 3 月 20 日; 15時間; 15%; 85h
プロジェクトの更新 (まだ正常に見えます):
- タスク名: タスク 31 - 固定作業
- 期間: 12,5 日?
- 開始: 14.03.13 木
- 終了: 火 02.04.13
- リソース名: リソース 1
- 仕事: 100 時間
- 実際の作業時間: 15 時間
- 残りの作業時間: 85 時間
次に、2 番目のケースが実行されます。まず、新しい割り当てを作成します...
client.CreateNewAssignmentWithWork(
sName: Task 31 - Fixed Work,
projGuid: "a8a601ce-f3ab-4c01-97ce-fecdad2359d9",
taskGuid: "024d7b61-858b-40bb-ade3-009d7d821b3f",
assnGuid: "e3451938-36a5-4df3-87b1-0eb4b25a1dab",
sumTaskGuid: Guid.Empty,
dtStart: 14.03.2013 08:00:00,
dtFinish: 02.04.2013 15:36:00,
actWork: 900000,
fMilestone: false,
fAddToTimesheet: false,
fSubmit: false,
sComment: "auto commit...");
次に、UpdateStatus を再度呼び出します。
<Changes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Proj ID="a8a601ce-f3ab-4c01-97ce-fecdad2359d9">
<Assn ID="e3451938-36a5-4df3-87b1-0eb4b25a1dab" ResID="c59ad8e2-7533-47bd-baa5-f5b03c3c43d6">
<Change PID="251658250">900000</Change>
</Assn>
</Proj>
</Changes>
そして最後に SubmitStatusForResource が再び
client.SubmitStatusForResource(new Guid("c59ad8e2-7533-47bd-baa5-f5b03c3c43d6"), null, "auto submit PSIStatusingGateway");
これにより、承認センターに次のエントリが作成されます。
ステータスアップデート; タスク 31 - 固定作業; 新しい再割り当てリクエスト; リソース 2; 2012 年 3 月 20 日; 15時間; 100%; 0h
私はそれを受け入れ、プロジェクトを更新します:
- 名前: タスク 31 - 固定作業
- 期間: 6,76 日?
- 開始: 14.03.13 木
- 終了: 25.03.13 月
- リソース名: リソース 1;リソース 2
- 仕事: 69.05 時間
- 実際の作業時間: 30 時間
- 残りの作業時間: 39.05 時間
そして、なぜ新しい仕事が69,05時間になるのか、私には本当にわかりません。私が期待した結果は次のとおりです。
- 名前: タスク 31 - 固定作業
- 期間: 6,76 日?
- 開始: 14.03.13 木
- 終了: 25.03.13 月
- リソース名: リソース 1;リソース 2
- 仕事: 65 時間
- 実際の作業時間: 30 時間
- 残りの作業時間: 35 時間
値を更新して必要な結果を得る方法を見つけようとして、かなりの時間を費やしました。助けていただければ幸いです。これは髪を切りたくなる!
前もって感謝します
PS: 私は MS Project Server 2010 と MS Project Professional 2010 を使用していることを忘れていました。