Microsoft.ProjectServer.Client 命名空間
這個命名空間中的類別定義Microsoft Project Server 2013的用戶端物件模型 (CSOM)。
CSOM 是從兩個Project Online和透過Microsoft.Project.Server.Client命名空間上場所 Project Server 安裝可存取。專案伺服器 CSOM 被設計為相當容易使用的 API,直接使用或提供名稱,而非傳遞資料集或使用changeXml參數的資料。CSOM 實作的主要功能的專案伺服器介面 (PSI) 的主要的實體,例如Project、 Task、 EnterpriseResource和Assignment。它包含額外的實體,例如CustomField、 LookupTable、 WorkflowActivities、 EventHandler和QueueJob,它支援其他通用專案伺服器功能。
CSOM 是建置於 PSI ; API它不會取代 PSI 或實作的所有 PSI 功能。CSOM 可以存取下列方式:
為組件使用 Microsoft.NET Framework 4.0: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.ProjectServer.Client.dll
Microsoft.ProjectServer.Client中的命名空間的類別庫和 Web 服務參考 > 一節Project 2013 SDK 文件的一般程式開發的 managed 程式碼。以網路為基礎的 CSOM 應用程式。
為組件来用於開發與Silverlight: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\ClientBin\Microsoft.ProjectServer.Client.Silverlight.dll
為使用 Microsoft Windows Phone 8 的程式開發的應用程式組件: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\ClientBin\Microsoft.ProjectServer.Client.Phone.dll
為使用於開發的 web 應用程式的JavaScript檔案: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\PS.js或PS.debug.js
CSOM 的JavaScript參考,請參閱JavaScript API reference for Project Server 2013。
Web 應用程式也可以透過其他存取 CSOM。例如,您可以使用下列查詢來取得所有的專案,在Project Web App執行個體中的資料:
https://ServerName/ProjectServerName/_api/ProjectServer/Projects
如需詳細資訊,請參閱Client-side object model (CSOM) for Project Server和程式設計使用 SharePoint 2013 其他服務。
Project 2013 SDK 下載也包含組件和JavaScript檔案的專案伺服器 CSOM。如果您更新 Project Server 的 service pack 時,您應該將更新的組件和JavaScript檔案複製到開發電腦。
在主要的 Project Server 實體通常中被由 CSOM 六個類別,例如:
基底類別,例如Assignment,包含草稿實體和已發行的實體的通用屬性。
建立資訊的類別,例如AssignmentCreationInformation,包含用來建立實體的屬性。
草稿類別,例如DraftAssignment,包含代表編輯實體的讀取/寫入屬性。
已發行的類別,例如PublishedAssignment,包含代表已發行的實體的唯讀屬性。
草稿的集合類別,例如DraftAssignmentCollection,包含要加入集合中, GetById方法,以取得特定的實體進行編輯,而要刪除實體的Remove方法的草稿實體的Add方法。
已發佈的集合類別,例如PublishedAssignmentCollection,通常會包含GetById方法,以取得特定實體讀取或編輯簽出。
ProjectContext類別和ProjectServer類別每維護應用程式開發的用戶端內容,並包含可全域存取Project Web App執行個體,如Projects、 EnterpriseResources、 EnterpriseProjectTypes、 CustomFields、 LookupTables和Events中的實體集合。ProjectServer類別由用戶端物件供內部使用,因為應用程式應該使用ProjectContext類別中,使用Project Web App路徑來初始化。
CSOM 使用程式設計的簡單範例,請參閱範例區段稍後在此頁面。如需有關使用 CSOM 開發的詳細資訊,請參閱Client-side object model (CSOM) for Project Server。Managed 程式碼中的參考Project 2013 SDK 提供基本的說明和註解的實體,也說明了在 PSI 中的命名空間的類別中的屬性。如需有關實體的屬性的詳細資訊,請參閱可用的欄位參考。
內建的Project Server 2013 CSOM SharePoint Foundation 2013的 CSOM 上。如需詳細資訊,請參閱選擇權限的 API 集在 SharePoint 2013。
類別
類別 | 描述 | |
---|---|---|
![]() |
Assignment | 包含草稿及發佈的工作分派的一般的屬性。 |
![]() |
AssignmentCreationInformation | 包含可在建立工作分派時設定的屬性。 |
![]() |
BaseCalendarException | 代表 [基準行事曆例外的集合。 |
![]() |
Calendar | 代表 Project Server 行事曆。 |
![]() |
CalendarCollection | 代表 [行事曆物件的集合。 |
![]() |
CalendarCreationInformation | 代表用來建立新的行事曆的資訊。 |
![]() |
CalendarException | 代表 [基準行事曆差異 (例外狀況)。 |
![]() |
CalendarExceptionCollection | 代表 [行事曆例外的集合。 |
![]() |
CalendarExceptionCreationInformation | 提供在建立的行事曆例外狀況的資訊。 |
![]() |
CustomField | 包含的屬性和方法,可用來建立企業自訂欄位。 |
![]() |
CustomFieldCollection | 代表CustomField物件的集合。 |
![]() |
CustomFieldCreationInformation | 提供用於建立自訂欄位的資訊。 |
![]() |
DraftAssignment | 可讓草稿工作分派的專案的建立。 |
![]() |
DraftAssignmentCollection | 代表DraftAssignment物件的集合。 |
![]() |
DraftProject | 代表專案,這是專案已取出的草稿版本。 |
![]() |
DraftProjectResource | 代表 [企業資源取出專案中。 |
![]() |
DraftProjectResourceCollection | 代表DraftProjectResource物件的集合。 |
![]() |
DraftTask | 代表取出專案中的工作。 |
![]() |
DraftTaskCollection | 代表DraftTask物件的集合。 |
![]() |
DraftTaskLink | 會建立物件,以存取草稿專案中的任務連結。 |
![]() |
DraftTaskLinkCollection | 代表DraftTaskLink物件的集合。 |
![]() |
EnterpriseProjectType | 建立物件,代表 [企業專案類型。 |
![]() |
EnterpriseProjectTypeCollection | 代表EnterpriseProjectType (EPT) 物件的集合。 |
![]() |
EnterpriseProjectTypeCreationInformation | 提供在建立的企業專案類型 (EPT) 的資訊。 |
![]() |
EnterpriseResource | 代表 [資源所管理專案中的 Project Server。 |
![]() |
EnterpriseResourceCollection | 代表EnterpriseResource物件的集合。 |
![]() |
EnterpriseResourceCreationInformation | 提供在建立的企業資源的資訊。 |
![]() |
EntityType | 代表 Project Server 實體類型。 |
![]() |
EntityTypes | 代表 Project Server CSOM 透過公開的實體類型。 |
![]() |
Event | 代表及識別商務物件資料中的變更時,會發生在 Project Server 的活動。 |
![]() |
EventCollection | 代表Event物件的集合。 |
![]() |
EventHandler | 代表識別和 Project Server 事件處理常式的位置。 |
![]() |
EventHandlerCollection | 代表EventHandler物件的集合。 |
![]() |
EventHandlerCreationInformation | 提供在建立事件處理常式的資訊。 |
![]() |
LookupCost | 包含的類型Cost查閱表格的資料值。 |
![]() |
LookupDate | 包含的類型Date查閱表格的資料值。 |
![]() |
LookupDuration | 包含的類型Duration查閱表格的資料值。 |
![]() |
LookupEntry | 代表查閱表格項目。 |
![]() |
LookupEntryCollection | 代表一群LookupEntry物件的查閱表格。 |
![]() |
LookupEntryCreationInformation | 提供建立查閱表格項目的資訊。 |
![]() |
LookupEntryValue | 代表查閱表格項目的值。 |
![]() |
LookupMask | 代表遮罩定義的層級的階層式查閱表格。 |
![]() |
LookupNumber | 包含的類型Number查閱表格的資料值。 |
![]() |
LookupTable | 代表查閱表格。 |
![]() |
LookupTableCollection | 代表LookupTable物件的集合。 |
![]() |
LookupTableCreationInformation | 提供方法及屬性設定為查閱資料表的建立。 |
![]() |
LookupTables | 代表查閱表格定義。 |
![]() |
LookupText | 定義類型Text查閱表格中的項目。 |
![]() |
Phase | 代表一群分組識別專案生命週期中的一組通用的活動的階段。 |
![]() |
PhaseCollection | 代表 [工作流程Phase物件的集合。 |
![]() |
PhaseCreationInformation | 提供方法及屬性設定在建立的工作流程階段中所用的。 |
![]() |
PlanAssignment | 在專案計劃中提供指派的相關資訊。 |
![]() |
PlanAssignmentCollection | 代表一群計劃 assignment 物件。 |
![]() |
PlanAssignmentCreationInformation | 提供的PlanAssignment物件建立的資訊。 |
![]() |
PlanAssignmentInterval | 代表的專案計劃工作分派的時間間隔的集合。 |
![]() |
PlanAssignmentIntervalCollection | 代表PlanAssignmentInterval物件的集合。 |
![]() |
PlanAssignmentIntervalCreationInformation | 提供用於建立PlanAssignmentInterval物件的資訊。 |
![]() |
Project | 包含草稿專案和已發佈的專案的一般的屬性。 |
![]() |
ProjectCollection | 代表PublishedProject物件的集合。 |
![]() |
ProjectContext | 維護Project Web App執行個體,請使用開發用戶端的內容,並包含Project Web App中存在的 Project Server 物件的整個企業的集合。 |
![]() |
ProjectCreationInformation | 包含您可以將建立專案時的屬性。 |
![]() |
ProjectDetailPage | 代表 [專案詳細資料頁面 (PDP),這是網頁組件] 頁面上,建立、 檢視,或是管理Project Web App中專案的屬性。 |
![]() |
ProjectDetailPageCollection | 代表一群專案詳細資料頁面 (Pdp)。 |
![]() |
ProjectDetailPageCreationInformation | 提供用來建立企業專案類型的專案詳細資料頁面 (PDP) 的資訊。 |
![]() |
ProjectResource | 提供專案資源的相關資訊。 |
![]() |
ProjectResourceCreationInformation | 提供屬性設定及建立專案資源實體的方法。 |
![]() |
ProjectServer | 供內部用戶端程式碼。若要初始化的 Project Server CSOM 開發的用戶端內容,請使用ProjectContext。 |
![]() |
ProjectServerData | 代表伺服器的連線。 |
![]() |
PublishedAssignment | 代表已發佈專案中的工作分派。 |
![]() |
PublishedAssignmentCollection | 代表一群已發佈的工作分派。 |
![]() |
PublishedProject | 表示 Project Server 發佈的專案。 |
![]() |
PublishedProjectResource | 代表 [企業資源的 Project Server 上發佈。 |
![]() |
PublishedProjectResourceCollection | 代表一群已發佈專案中的資源。 |
![]() |
PublishedTask | 代表已發佈專案中的工作。 |
![]() |
PublishedTaskCollection | 代表一群的已發佈專案中的工作。 |
![]() |
PublishedTaskLink | 代表兩個任務的開始和完成日期之間的相依性關係。 |
![]() |
PublishedTaskLinkCollection | 代表一群已發佈專案中的任務連結。 |
![]() |
QueueJob | 佇列發佈的專案。 |
![]() |
QueueJobCollection | 代表QueueJob物件的集合。 |
![]() |
ResourceCalendarException | 代表 [資源行事曆例外狀況。 |
![]() |
ResourcePlan | 代表高層級查看哪些資源可能需要的專案。 |
![]() |
ScriptTypeFactory | 此類別和其成員是保留給內部使用,而不是用來在您的程式碼中使用。 |
![]() |
ServiceStatus | 提供的 Project Server 服務的狀態資訊。 |
![]() |
Stage | 代表工作階段中的專案工作流程。 |
![]() |
StageCollection | 代表 [工作流程Stage物件的集合。 |
![]() |
StageCreationInformation | 提供方法及屬性,來建立專案工作流程階段。 |
![]() |
StageCustomField | 代表專案階段的自訂欄位。 |
![]() |
StageCustomFieldCollection | 代表一群StageCustomField物件,位於工作流程階段的自訂欄位。 |
![]() |
StageCustomFieldCreationInformation | 提供屬性設定和用以將自訂欄位新增至專案階段資訊的方法。 |
![]() |
StageDetailPage | 代表 [專案詳細資料頁面 (PDP) 的工作流程階段。 |
![]() |
StageDetailPageCollection | 代表一群可見的工作流程階段中的專案詳細資料頁面 (Pdp)。 |
![]() |
StageDetailPageCreationInformation | 提供屬性設定和用以建立專案詳細資料頁面 (PDP) 的工作流程階段的方法。 |
![]() |
StatusAssignment | 提供為工作分派的狀態更新中的物件。 |
![]() |
StatusAssignmentCollection | 代表一群StatusAssignment物件,亦即中的狀態更新工作分派。 |
![]() |
StatusAssignmentCreationInformation | 提供屬性設定及建立狀態 assignment 物件的方法。 |
![]() |
StatusTask | 提供持續追蹤的任務的進度的物件。 |
![]() |
StatusTaskCreationInformation | 提供屬性設定及建立狀態 task 物件的方法。 |
![]() |
Task | 包含方法和屬性,可以用來存取工作的詳細資料。 |
![]() |
TaskCreationInformation | 提供屬性設定和用以建立工作的方法。 |
![]() |
TaskLink | 代表兩個任務的開始和完成日期之間的相依關係。 |
![]() |
TaskLinkCreationInformation | 提供屬性設定和方法,可用來建立的任務連結。 |
![]() |
TimePhase | 代表一段時間的工作分派進度資訊。 |
![]() |
TimeSheet | 包含的方法和屬性,來管理時程表。 |
![]() |
TimeSheetLine | 代表 [時程表中的資料行。 |
![]() |
TimeSheetLineCollection | 代表一群時程表列。 |
![]() |
TimeSheetLineCreationInformation | 提供屬性設定和用以建立時程表列的方法。 |
![]() |
TimeSheetPeriod | 代表已定義的時間,在時程表期間。 |
![]() |
TimeSheetPeriodCollection | 代表TimeSheetPeriod物件的集合。 |
![]() |
TimeSheetWork | 代表不同類型的時程表上的工作。 |
![]() |
TimeSheetWorkCollection | 提供時程表實際工時] 項目集合。 |
![]() |
TimeSheetWorkCreationInformation | 提供屬性設定和用以建立時程表工作物件的方法。 |
![]() |
WorkflowActivities | 包含封裝 Project Server 工作流程活動的方法和方法,為Windows Workflow Foundation (WF4) 第 4 版搭配使用。 |
![]() |
WorkflowDesigner | 會建立可以用來設計工作流程的物件。 |
![]() |
WorkflowDesignerField | 代表建立工作流程設計工具中的欄位。 |
![]() |
WorkflowDesignerFieldCollection | 代表 [企業專案自訂欄位的可用工作流程設計工具中,篩選過的集合。 |
列舉
列舉 | 描述 | |
---|---|---|
![]() |
AccrueAt | 成本累算模式指定如何及何時資源成本分配給之任務的成本。 |
![]() |
BookingType | 指定如何預訂工作分派的資源。 |
![]() |
CalendarRecurrenceDays | 代表週期性行事曆例外的星期。 |
![]() |
CalendarRecurrenceType | 指定的行事曆例外循環類型。 |
![]() |
CalendarRecurrenceWeek | 會指定用來設定排程的月份一週。 |
![]() |
CommittedDecisionResult | 會指定是否在最佳化工具使用函數或專案產品組合分析的規劃函數中包含項目。 |
![]() |
ConstraintType | 會指定任務的限制式類型。 |
![]() |
CurrencySymbolPosition | 會指定在貨幣符號的位置。 |
![]() |
CustomFieldRollupType | 會指定自訂欄位的摘要彙總類型。 |
![]() |
CustomFieldType | 指定企業自訂欄位的類型。 |
![]() |
DependencyType | 指定建立兩個任務之間的相依性的類型。 |
![]() |
EnterpriseResourceType | 代表 [企業資源的不同類型。 |
![]() |
FixedCostAccrual | 指定如何及何時內之任務的成本來固定的成本。 |
![]() |
JobState | Project Server 佇列工作狀態指定佇列工作的狀態。 |
![]() |
LookupTableConstants | 指定的最大值與查閱表格實體的最小值。 |
![]() |
LookupTableMaskSequence | 會指定遮罩順序,這是查閱表格的資料類型。 |
![]() |
LookupTableSortOrder | 會指定查閱表格的排序順序。 |
![]() |
OvertimeRateFormat | 會指定資源加班工資率 ; 的時間單位亦即,每時間單位,例如美元每小時工資率。 |
![]() |
ProjectDetailPageType | 指定專案詳細資料頁面 (PDP) 的類型。 |
![]() |
ProjectType | 會指定專案類型。 |
![]() |
QueueMsgType | 指定佇列訊息類型] 中,將工作傳送至 Project Server 佇列系統。 |
![]() |
ReadyToLeaveProjectStageValue | 指定 Project Server 工作流程,以協助您判斷是否已準備好離開階段工作流程專案階段需求。 |
![]() |
ResourceType | 會指定類型的資源。 |
![]() |
StandardRateFormat | 會指定資源率 ; 的時間單位亦即,每時間單位,例如美元每小時工資率。 |
![]() |
StrategicImpactBehavior | 會指定如何策略影響值中的 Project Server 工作流程階段行為。 |
![]() |
TaskType | 會指定是否在專案中的任務類型固定單位,固定工時,或固定工期。 |
![]() |
TimeScale | 會指定時段式資料的縮放比例。 |
![]() |
TimeSheetEntryMode | 包含時程表項目模式。 |
![]() |
TimeSheetLineClass | 代表定義時程表列不同用途的分類。 |
![]() |
TimeSheetLineStatus | 代表可以套用至時程表列的狀態設定。 |
![]() |
TimeSheetStatus | 代表可以套用至時程表的狀態設定。 |
![]() |
TimeSheetValidationType | 指定的時程表列的驗證類型。 |
![]() |
TrackingMode | 會指定用於追蹤任務進度模式。 |
![]() |
UpdateProjectStageStatusFieldValue | 在 Project Server 工作流程中指定專案階段的狀態。 |
![]() |
UtilizationType | 會指定用於目前的資源計劃的資源類型。 |
![]() |
WorkFormat | 會包含一個值,代表工時格式。 |
範例
以下是建立一個名為ReadProjectList的Microsoft.ProjectServer.Client命名空間中使用類別來讀取的已發佈的專案集合的簡單的主控台應用程式的步驟。
如果您正在開發遠端電腦上,下列組件從Project 2013 SDK 下載或複製在 Project Server 電腦上的%ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI在開發電腦上最方便的資料夾:
Microsoft.ProjectServer.Client.dll
Microsoft.SharePoint.Client.dll
Microsoft.SharePoint.Client.Runtime.dll
在Visual Studio 2012,建立主控台應用程式。這個範例中,命名應用程式ReadProjectList。在 [新增專案] 對話方塊中,設定目標架構為**.NET Framework 4.5**。您也可以使用Visual Studio 2010與**.NET Framework 4** (不要使用**.NET Framework 4 用戶端設定檔**)。
設定的步驟 1 中指定的組件參考。
Program.cs 檔案中的程式碼取代下列程式碼。
注意事項
使用ProjectContext物件,而不是使用ProjectServer物件,您應該設定 CSOM 內容。
請按F5執行應用程式。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.ProjectServer.Client;
namespace ReadProjectList
{
class Program
{
private const string pwaPath = "https://ServerName/PwaName/"; // Change the path for Project Web App.
// Set the context for the Project Server CSOM.
private static ProjectContext projContext;
static void Main(string[] args)
{
projContext = new ProjectContext(pwaPath);
// Get the list of published projects in Project Web App.
projContext.Load(projContext.Projects);
projContext.ExecuteQuery();
Console.WriteLine("\nProject ID : Project name : Created date");
foreach (PublishedProject pubProj in projContext.Projects)
{
Console.WriteLine("\n\t{0}\n\t{1} : {2}", pubProj.Id.ToString(), pubProj.Name,
pubProj.CreatedDate.ToString());
}
Console.Write("\nPress any key to exit: ");
Console.ReadKey(false);
}
}
}