CSOM 的用途和不做
CSOM) (客戶端物件模型是一組適用於 Project Server 2013 的 API,專為針對電腦、行動裝置和平板電腦開發的應用程式中的在線和內部部署使用而設計。 本文包含一些使用 CSOM 的典型案例,也會列出 CSOM 的限制。
CSOM 可讓您開發 Project Server 2013 的應用程式,以及將 Project Server 與其他應用程式整合。 您可以開發應用程式以在計算機上執行、行動裝置,例如 Windows Phone 7.5、平板電腦,例如 Windows 8 裝置,以及 iOS 和 Android 裝置。 CSOM 提供涵蓋 Project Server 中十二個最常用 PSI 服務功能的 API。 CSOM API 的組織方式不同,而且比 ASMX 型和 WCF 型 PSI 服務更容易使用。 CSOM 不會使用 ADO.NET 數據集,而且可透過 OData 通訊協定存取。 您可以使用 .NET Framework 4 連結庫、JavaScript 或具表示狀態傳輸, (REST) 查詢來使用 CSOM 進行開發。
如需 CSOM 的概觀,以及說明如何搭配 CSOM 使用 JavaScript 和 .NET Framework 4 的文章,請參閱 Project Server 的客戶端物件模型 (CSOM) 。 如需 CSOM 元件、類別和成員的詳細資訊,請參閱 Microsoft.ProjectServer.Client 命名空間參考。
CSOM 的使用案例
以下是 CSOM 支援的一些應用程式類型範例。 CSOM 可用於許多案例,而不是 PSI:
開發可擴充 Project Server 的應用程式 CSOM 的主要用途是 Project Server 2013 的應用程式開發,您可以針對包括計算機、行動裝置和平板電腦的各種裝置建立應用程式。 應用程式可以在私人應用程式目錄或公用 Office 市集中散發。
在 Project Server 中自動建立或管理實體 CSOM 可以針對專案、工作、指派、企業資源、自定義欄位、查閱表格、時程表、事件處理程式,以及工作流程階段和階段等實體執行 CRUD 作業。 通常,自定義應用程式可以使用大量或重複的工作來節省時間。
在 Project 資料庫的已發行數據表中取得數據 由於不支援對草稿、已發行和封存數據表的直接數據庫存取,因此您可以使用 CSOM 來讀取報表數據表或檢視表中無法使用的資料。 例如,取得工作流程階段、階段和活動的相關信息。 若要讀取報表數據表中的數據,您可以使用 OData 查詢。
驗證狀態和時程表數據在將資料儲存在 Project Web App 之前,使用本機事件處理程式或遠端事件接收器中的 CSOM 來驗證使用者輸入的指派狀態或時程表數據。
建立財務專案 透過時程表建立時間擷取專案,以與財務系統整合。 建立財務代碼的階層,以反映財務系統的成本明細結構。 財務專案不需要排程或狀態更新。
與會計系統整合 擷取與專案相關聯的資源成本和費用,以摘要財務和計費系統,並供預算比較之用。 同步處理系統之間的工作、資源和指派。 擷取一個系統中的時程表數據,以饋送另一個 (使用的時程表取決於組織或個別專案) 的需求。
從小組成員自動更新 對於未主動管理的專案,請使用進度和專案小組成員的其他變更,自動更新伺服器上的專案。 專案可以更新和重新發佈,而不需要專案經理檢閱結果或調整計劃。
注意事項
CSOM 支援提交狀態更新,但目前不支持狀態核准。
評估遠端事件接收器中的 Project Server 數據ProjectCreating 前事件的遠端事件接收器可以使用來自 CSOM 的 Project Server 數據,協助判斷是否要取消事件。 例如,在建立專案之前,請比較專案提案與現有的專案。
支援宣告式 Project Server 工作流程CSOM 會啟用在 SharePoint Designer 2013 中建立的 Project Server 工作流程。 CSOM 支援使用 Windows Workflow Foundation 第 4 版 (WF4) 的工作流程定義。 (PSI 不支援 WF4 workflows.)
建立複雜的 Project Server 工作流程 當您使用 Visual Studio 2012 開發工作流程時,您可以使用 CSOM 來執行工作流程階段內的複雜動作,或建立自定義工作流程動作。
CSOM 未執行的動作
CSOM 不是 PSI 的完整取代專案。 因為 CSOM 在內部使用 PSI 服務,所以 CSOM 有許多與 PSI 相同的功能限制。 除了 PSI 的限制,例如無法存取本機專案中的數據 (.mpp 檔案) ,CSOM 不包含 Project Web App 通常會處理的系統管理功能。 例如,您可以在 [網站設定 - 許可權] 頁面中處理建立自定義安全組 Project Web App。
如需 PSI 或 CSOM 處理的動作清單,請參閱 PSI 的用途 和不執行的動作一節。
CSOM 未涵蓋的 PSI 服務
CSOM 不包含下列 PSI 服務的功能:
管理員 服務 若要管理 Project Server 和相關專案網站中的系統管理設定和作業,例如建立會計期間和進行時程表設定,請使用 WebSvcAdmin.管理員 類別中的 PSI 方法。 Project Web App 本身會在許多連結至 [伺服器設定] 頁面的頁面中使用 管理員 方法, (https:// ServerName / ProjectServerName /_layouts/15/pwa/管理員/管理員.aspx) 。
封存服務 若要儲存和管理封存數據表中的專案、資源和自定義欄位等實體,請使用 封存 類別中的 PSI 方法。
CubeAdmin 服務若要建立和管理內部部署安裝的 OLAP Cube,請使用 WebSvcCubeAdmin.CubeAdmin 類別中的 PSI 方法,或使用 Project Web App 中 ServerNameProjectServerName / /_layouts/15/pwa/CubeAdmin/CubeAnalysisAdmin.aspx) 的 [OLAP 資料庫管理] (https:// 頁面。
注意事項
Project Online 不支援OLAP Cube。
驅動程式服務 若要建立和管理項目組合分析的商務驅動程式,請使用 WebSvcDriver.Driver 類別中的 PSI 方法。
LoginForms 服務和 LoginWindows 服務CSOM 中的驗證會在 ProjectContext 物件初始化期間完成,並使用 OAuth 或 Windows 驗證。 若要建立多重驗證的應用程式,其中本機完全信任應用程式可以同時使用 Forms 驗證和 Windows 驗證,請使用 WebSvcLoginForms.LoginForms 類別和 WebSvcLoginWindows.LoginWindows 類別中的 PSI 方法。
通知服務 若要建立和管理警示和提醒,請使用 WebSvcNotifications.Notifications 類別中的 PSI 方法。
ObjectLinkProvider 服務 若要建立和管理 Web 物件以及檔和 SharePoint 清單專案的連結,請使用 WebSvcObjectLinkProvider.ObjectLinkProvider 類別中的 PSI 方法。
PortfolioAnalyses 服務 若要建立和管理項目組合分析,包括規劃工具解決方案和優化工具解決方案,請使用 WebSvcPortfolioAnalyses.PortfolioAnalyses 類別中的 PSI 方法。
QueueSystem 服務 CSOM 可以取得 Project Server 佇列作業的基本資訊,並包含 ProjectContext.WaitForQueue 方法。 若要更廣泛地管理 Project Server 佇列系統,請使用 WebSvcQueueSystem.QueueSystem 類別中的 PSI 方法。
安全性服務 若要建立和管理 Project Server 安全組、範本和類別,以及檢查目前用戶的許可權,請使用 WebSvcSecurity.Security 類別中的 PSI 方法。
WssInterop 服務 若要取得有關和管理專案網站的資訊,請使用 WebSvcWssInterop.WssInterop 類別中的 PSI 方法。
注意事項
您可以在 SharePoint Server 2013 中使用 CSOM。 項目網站是 SharePoint 網站。
CSOM 不會啟用像是 PSI 可以擁有的擴充功能。 例如,如果您建立 PSI 擴充功能以供本機使用,則無法修改 CSOM 以使用 PSI 擴充功能。 您可以使用其他方式來實作擴充功能案例:
在本機組件或在 Microsoft Azure 上執行的元件內匯總 CSOM 呼叫。
使用報表數據的 OData 查詢,而不是直接存取 Project Server 資料庫中的報告數據表。
透過 OAuth 驗證,從 Project Online 或伺服器端元件整合 CSOM 呼叫與第三方應用程式,以供內部部署使用。
使用 CSOM 的應用程式也可以使用內部部署或具有 SQL Azure 的自訂資料庫。
CSOM的要求限制
Project Server 2013 中的 CSOM 是以 SharePoint Server 2013 中的 CSOM 實作為基礎,並繼承要求大小上限的限制。 SharePoint 有 2 MB 的作業要求限制,以及所提交二進位物件大小的 50 MB 限制。 要求大小受限於保護伺服器免於作業佇列過長,以及處理大型二進位對象的延遲。
例如,如果您使用 CSOM 建立專案,然後編輯專案以新增資訊量下限的 252 個工作,例如簡短名稱、工作 GUID 和持續時間 1d,DraftProject.Update 要求中的數據總量會小於 2 MB。 但是,如果您嘗試將 253 個這類工作新增至空白專案,則超過 2 MB 的限制,而且您會收到下列例外狀況: Microsoft.SharePoint.Client.ServerException:要求使用太多資源
若要透過 HTTP 或 HTTPS 擷取 CSOM 要求中的數據,您可以使用 Web 偵錯工具,例如 Fiddler (https://www.fiddler2.com) 。 如需實作要求大小測試的程式代碼範例,並包含將大型要求分成較小群組的解決方案,請參閱 DraftProject.Update。