PSI のすること、しないこと
Project Server インターフェイス (PSI) は、Project Server 2013 のオンプレミス インストールで多くのサーバー側プロセスを自動化するのに役立ちます。 ただし、いくつかの関数では、Microsoft Project Professional 2013を使用する必要があります。
PSI は、すべてのProject Professional機能にサーバー ベースの代替手段を提供するのではなく、Project Professional 2013 の機能を補完するように設計されています。 サード パーティの開発者は、PSI を使用して、Project Web Appとプロジェクト ワークスペースのオンプレミス インストール用の Web パーツの作成、オンプレミスの Project Server データと対話するカスタム Windows アプリケーションと Web アプリケーションの作成、プロジェクト ポートフォリオ管理のワークフロー ロジックの開発、ローカルの完全信頼イベント ハンドラーの開発、Project Server と他のアプリケーションの統合を支援できます。 PSI は、Office ストア、モバイル デバイス、またはタブレット用のアプリの開発には使用できません。そのため、クライアント側オブジェクト モデル (CSOM) を使用できます。
注:
PSI は、CSOM が提供するよりも、Project Server 2013 のより包括的なプログラム インターフェイスを提供します。 ただし、CSOM に必要な機能がない場合を除き、新規アプリケーションの開発には CSOM を使用することをお勧めします。 詳細については、「What the CSOM does and does not do」を参照してください。
PSI の使用シナリオ
以下に、PSI がサーバー側のプロジェクトおよび計算のためにサポートするアプリケーションの例をいくつか示します。
Project Server でのエンティティの作成または管理を自動化するProject Professional 2013 年とProject Web Appは、プロジェクト、エンタープライズ リソース、カスタム フィールドなどのエンティティの管理と作成を処理するように設計されていますが、多くの場合、カスタム アプリケーションで一括または繰り返しジョブを使用して時間を節約できます。 PSI は、OLAP キューブ、プロジェクト ポートフォリオ分析、ビジネス ドライバー、通知、オブジェクト リンク プロバイダー、セキュリティ、SharePoint との相互運用性など、CSOM では不可能な、いくつかの種類のジョブの自動化を行うことができます。
Project データベースのパブリッシュ済みテーブルまたはアーカイブ テーブル内のデータを取得する 下書きテーブル、発行テーブル、アーカイブ テーブルへの直接データベース アクセスはサポートされていないため、PSI を使用して、レポート テーブルまたはビューで使用できないデータを読み取ることができます。 たとえば、アーカイブ テーブルに格納されているプロジェクトのバージョン、日付、変更に関する情報を取得し、Web パーツの JS Grid コントロールに情報を設定します。
状態とタイムシートのデータを検証するローカル のイベント前ハンドラーで PSI を使用して、ユーザーが入力した割り当て状態またはタイムシート データを検証してから、データをProject Web Appに保存します。
保守プロジェクト リソース計画と共に使用するプレースホルダー プロジェクトを作成します。 リソースに対する保守作業または基本業務用の時間を確保または予約します。 通常、保守プロジェクトはタスクを持っていません。
財務プロジェクトの作成 財務システムとの統合用にタイムシートを使用して、時間取得のためのプロジェクトを作成します。 財務システムのコスト ブレークダウン ストラクチャを反映した、財務コードの階層を作成します。 財務プロジェクトには、スケジュールや実績の更新は必要ありません。
会計システムとの統合 財務システムと課金システムに入力し、予算を比較する目的のために、プロジェクトに関連するリソース コストと経費を取得します。 システム間のタスク、リソース、割り当てを同期します。 あるシステムのタイムシート データを取得して、他のタイムシート データに入力します (使用するタイムシートは、組織または個別のプロジェクトのニーズによって決まります)。
チーム メンバーの更新の自動化 アクティブに管理されていないプロジェクトについて、プロジェクト チーム メンバーからの進捗およびその他の変更に関してサーバー上で自動的にプロジェクトが更新されるようにします。 プロジェクト管理者が結果を見直したり、計画を調整したりしなくても、プロジェクトを更新したり、再発行したりできます。
ローカルの完全信頼イベント ハンドラーで Project Server データを評価するProjectCreating 事前イベントのローカル イベント ハンドラーは、PSI の Project Server データを使用して、イベントを取り消すかどうかを判断するのに役立ちます。 たとえば、プロジェクトを作成する前に、既存のプロジェクトとプロジェクトの提案を比較することができます。
需要管理用のカスタム ワークフロー アクティビティを作成する ローカルの完全信頼ワークフロー アクティビティの PSI を使用して、エンタープライズ プロジェクト テンプレートに基づいてプロジェクト提案を変更および更新します。 プロジェクト ユーザー設定フィールドを使用して開始および承認プロセスに必要な情報でプロジェクトにタグを付けます。 主要なマイルストーンまたは成果物のプロジェクト フェーズを識別するタスクを追加します。 承認された提案は、ワークフローによって Project Professional で管理される完全なプロジェクトに変更することができます。
PSI 拡張機能を作成 する (非推奨。 拡張機能は Project Server 2013 では非推奨となり、今後のリリースではサポートされません)。PSI は、Windows Communication Foundation (WCF) インターフェイスを使用して、カスタム サービスで拡張できます。 PSI 拡張機能は Project Server コンピューターで実行でき、組み込みの PSI サービスで使用するのと同じセキュリティ インフラストラクチャを使用できます。 拡張機能では、レポート テーブルのクエリ、別のデータベース テーブルの使用、帯域幅を節約するための PSI 呼び出しの統合、サードパーティ アプリケーションやその他のサーバー側コンポーネントとの統合を行うことができます。 詳細については、「PSI 拡張機能の開発」を参照してください。
ローカルの完全信頼アプリケーションで偽装を使用する PSI の WCF インターフェイスの呼び出しを偽装して、偽装されたユーザーのセキュリティ アクセス許可をアプリケーションが想定できるようにすることができます。 偽装は限定的かつ慎重に使用する必要があります。 他のユーザーの状態情報の読み取りと更新には、偽装は必要ありません。 偽装を必要とする新しいアプリケーションでは、PSI ではなく CSOM および OAuth プロトコルを使用する必要があります。 PSI での偽装の詳細については、「 WCF で偽装を使用する」を参照してください。
注:
場合によっては、CSOM とProject Onlineを使用するクライアント アプリケーションで PSI を使用できます。 ASMX ベースの PSI Web サービスを使用する場合、アプリケーションには、CSOM で Microsoft.ProjectServer.Client.ProjectContext オブジェクトを認証するメソッドと 、System.Web.Services.Protocols.SoapHttpClientProtocol クライアント オブジェクトを認証するメソッドを含める必要があります。 SharePoint CSOM で Web サービスを使用する例については、「クレーム ベース認証を使用した SharePoint Online でのリモート認証」を参照してください。 > 制限付きアプリ レベルのアクセス許可のため、PSI は、パブリック Office ストアでの配布用に設計されたアプリでは使用できません。 その場合は、CSOM のみ使用できます。
PSI が行わないこと
PSI が行えることはたくさんありますが、PSI が行えないこともあります。 以下に、PSI では行えず、CSOM では行えることを 2 つ示します。
Project Onlineおよびリモート イベント レシーバー
PSI の主な制限事項は、Project Onlineです。 PSI を使用するアプリケーションには、Project Server の社内インストールに対する完全信頼アクセス権が必要です。 たとえば、PSI は、イベント レシーバーが Microsoft Azure 上のサービスとしてインストールされているリモート イベント レシーバーでは使用できません。
ワークフローおよびクレーム認証
Windows Workflow Foundation バージョン 4 (WF4) を使用するワークフロー定義では、PSI が直接サポートしていない要求認証が必要です。 つまり、PSI を使用して、エンタープライズ プロジェクトの種類 (EPT) と WF4 ワークフロー定義を持つプロジェクトを Project Server 2013 で作成することはできません。
PSI を使用して、ワークフローを持たない EPT を含むプロジェクトを作成したり、従来の WF3.5 定義 (Project Server 2010 のワークフロー バージョン) を使用したりできます。 WF4 定義を持つ EPT でプロジェクトを作成するには、CSOM を使用します。
Project Professional を必要とするアクション:
次のリストは、PSI と CSOM のどちらでも行うことのできない処理を示しています。
ローカル データ
ローカル プロジェクト (.mpp ファイル) でのデータの操作。 たとえば、コスト単価表またはローカル リソースの利用可能時間の定義。
ローカル基本カレンダーまたはリソース カレンダー (カレンダーの例外を含む) の定義または編集。
ローカル ユーザー設定フィールドの定義。 (PSI では、タスク、リソース、割り当てのローカル ユーザー設定フィールド値の編集がサポートされています)。
エンタープライズ データ
エンタープライズ グローバル テンプレートのチェック アウトまたは編集。 Project Server 2013 のエンタープライズ グローバル データは、Office Project Server 2007 以前のバージョンのようにプロジェクト テンプレートではなく、Project データベース内のバイナリ データ テーブルのセットです。
エンタープライズ カレンダーの定義または編集。 Calendar メソッドは、予定表の例外のみを管理します。
マスター プロジェクトおよびプロジェクト間のリンク
マスター プロジェクトの作成とサブプロジェクトの挿入。
マスター プロジェクト全体にわたるクリティカル パスのスケジューリング。
プロジェクト間のリンクの作成。
リソース
リソースの平準化の要求または実行。
割り当てのリソースを変更する。 (PSI を使用して割り当てを削除し、新しい割り当てを作成できます)。
認められた実際の作業 (実績) を持つリソースの削除または置換。
時間単価型、数量単価型、およびコスト型の間でのリソースの種類の変更。
リソース カレンダーの作成または編集。
タスクにリソースを追加する場合、PSI は Project Professional のように作業を自動的に再配布しません。 割り当てで作業の配布を選択して明示的に設定するのは、開発者の役割です。
Cost resources
作業配分
タイムスケール データの編集。
注:
Statusing Web サービスの UpdateStatus メソッドは、プロジェクト マネージャーが割り当てデータを更新して発行した後、割り当てのタイムスケールされた実績を編集できます。
割り当ての配分型 (均等型、増加型、減少型など) の設定または変更。
基準計画および達成額
基準計画の保存または基準計画データの編集。
進捗日の設定。
差異および達成額の計算。
対話型スケジューリング
対話型スケジューリングのサポート。 (Project Server は対話を非同期的に処理するため、対話型スケジューリングはProject Professionalで行う必要があります)。
注:
プログラムによる動作の変更を回避するために、Project Server 2010 から転送される PSI メソッドは、Project Server 2013 でも同じように動作します。 たとえば、 QueueUpdateProject には引き続き同じ制限があり、古いサーバー側スケジューリング エンジンが使用されます。 新しい QueueUpdateProject2 メソッドは、これらの制限の多くを削除し、新しい Project Server 2013 サーバー側スケジューリング エンジンを使用します。これは、Project Professional 2013 と同じスケジューリング エンジンです。
WBS
- Work Breakdown Structure (WBS) コード マスクの定義。
タスク
タスクの種類 (作業時間固定、期間固定、または単位数固定) の変更。
タスクが残存作業優先であるかどうかの変更。
タスクの固定コスト計上の時期の変更。
TASK_NOTES フィールドの内容を変更する。 PSI は、.rtf バイナリ データであるタスク メモのテキスト部分のみを読み取ることができます。 ただし、テキスト データである割り当てノート ( ASSN_NOTES ) を編集できます。 レポート データベースは、タスク メモまたは割り当てメモを含みません。
定期タスクの作成または編集。
既存のタスクでのタスク カレンダーの割り当てまたは変更。
タスク カレンダーを使用した新しいタスクの作成。
TASK_IGNORES_RES_CAL フィールドの値を変更します (タスクはリソースカレンダーを無視します)。
同じ呼び出しで追加の変更が行われた場合は、 QueueUpdateProject を使用してタスクのアクティブな状態を変更します。 詳細については、「Project Server プログラミング」の「サーバーでのプロジェクト スケジュール」セクションを参照してください。
サマリー タスク
サマリー タスクでの割り当ての作成または変更。
注:
Project Professional またはその他の方法を使用してサマリー タスク上で割り当てを作成しないことをお勧めします。 詳細については、「Project Server プログラミング」の「サーバーでのプロジェクト スケジュール」セクションを参照してください。
通常サブタスクから重ね合わされるサマリー タスク フィールドの編集。 サーバー側プロジェクトは、サマリー タスクに情報を設定してサブタスクにプッシュする代わりに、常にサマリー情報を重ね合わせます。 サマリー タスクでは、以下のフィールドのみを編集できます。
タスクの依存関係
式ではないユーザー設定フィールド
TASK_FIXED_COST_ACCRUAL (タスクの作成時にのみ値を設定します)
プロジェクトの概要タスクの PSI の制限事項は、Project Professionalの場合と同じです。 PSI では、コスト予算を含む予算の割り当てを編集できます。
プロジェクト レベルの計算オプション
プロジェクトの種類を[開始からスケジュール](SFS)と[終了日からスケジュール](SFF)の間で変更します。 (PSI は SFS または SFF としてプロジェクトを作成できますが、作成後はProject Professionalでのみ変更できます)。
プロジェクトの作成後にプロジェクトの基本カレンダー (CAL_UID ) を変更する。
計算のオプションを変更する。 PSI を使用すると、プロジェクトの作成時に次の計算オプションを設定できますが、オプションを変更するにはProject Professionalが必要です。 (Backstage ビューで、[オプション] を選択し、[プロジェクト オプション] ダイアログ ボックスの [スケジュール] タブを選択します)。