Microsoft Project Server 2010を使用しており、アクティブなプロジェクトに関連付けられたプロジェクトWebサイト(PWS)の一部のSharePointリストを一括更新する必要があります。カスタムフィールドに特定の値のProject Serverプロジェクトをプログラムで取得する
プロジェクトステータスのカスタムフィールドに特定の値がある場合、プロジェクトは「アクティブ」とみなされます。次の擬似コードのような
何か:私はすでにSharePointリストを更新するためのコードを持っている
Get-AllProjectServerProjects |
Where-Object { ($_.CustomFields["Project Status"]) -eq 'active' } |
Foreach-Object {
$projectWebSite = $_.ProjectWebSiteURL
# Code here to update SharePoint list for this site
}
、私が探している「アクティブ」なプロジェクトに関連したプロジェクトのWebサイトを取得する方法です。
私が知る限り、Project Serverデータを公開するPSコマンドレットはありません。むしろ、PSI Webサービスを経由し、ReadProjectList()メソッドを使用する必要があります。
私はReadProjectList()でプロジェクトのリストを取得できましたが、それらがアクティブなプロジェクトであるかどうかわからず、プロジェクトのWebサイトへの直接リンクを見つけることができませんでした。
SharePointコマンドレットを使用してプロジェクトのすべてのWebサイトを繰り返し処理してプロジェクト名と照合することはできますが、これは最適ではないようで、どのプロジェクトが「アクティブ」であるかを知る必要があります。
プロジェクトUIDからワークスペースURLを取得する方法があります。 WssInterop WebサービスのReadWssInfoメソッドは、プロジェクトWebサイトURL(プロジェクトに存在する場合)を含むProjectWSSInfoDataSetオブジェクトを返します。私は私の質問の「アクティブな」ステータス部分を解読した後、完全な回答として投稿します。 – andyb