共用方式為


Microsoft.ProjectServer.Client namespace

這個命名空間中的類別定義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

Classes

  Class Description
Public class Assignment 包含草稿及發佈的工作分派的通用屬性。
Public class AssignmentCreationInformation 包含可以在建立工作分派時設定的屬性。
Public class BaseCalendarException 代表基準行事曆例外狀況的集合。
Public class Calendar 代表 Project Server 行事曆。
Public class CalendarCollection 代表行事曆物件的集合。
Public class CalendarCreationInformation 表示用來建立新的行事曆的資訊。
Public class CalendarException 表示從基準行事曆的差異 (例外狀況)。
Public class CalendarExceptionCollection 代表行事曆例外狀況的集合。
Public class CalendarExceptionCreationInformation 提供建立行事曆例外狀況的資訊。
Public class CustomField 包含屬性和方法,用於建立企業自訂欄位。
Public class CustomFieldCollection 表示CustomField物件的集合。
Public class CustomFieldCreationInformation 提供用來建立自訂欄位的資訊。
Public class DraftAssignment 可為草稿的工作分派的專案建立。
Public class DraftAssignmentCollection 表示DraftAssignment物件的集合。
Public class DraftProject 表示專案中,也就是簽出專案的草稿版本。
Public class DraftProjectResource 代表取出的專案中的企業資源。
Public class DraftProjectResourceCollection 表示DraftProjectResource物件的集合。
Public class DraftTask 代表取出的專案中的工作。
Public class DraftTaskCollection 表示DraftTask物件的集合。
Public class DraftTaskLink 建立物件,以存取草稿專案中的任務連結。
Public class DraftTaskLinkCollection 表示DraftTaskLink物件的集合。
Public class EnterpriseProjectType 建立物件,表示企業專案類型。
Public class EnterpriseProjectTypeCollection 表示EnterpriseProjectType (EPT) 物件的集合。
Public class EnterpriseProjectTypeCreationInformation 提供建立企業專案類型 (EPT) 的資訊。
Public class EnterpriseResource 代表由 Project Server 管理專案中的資源。
Public class EnterpriseResourceCollection 表示EnterpriseResource物件的集合。
Public class EnterpriseResourceCreationInformation 提供建立企業資源的資訊。
Public class EntityType 表示專案伺服器實體的型別。
Public class EntityTypes 表示透過 CSOM 公開的 Project Server 實體的型別。
Public class Event 表示及識別商業物件資料有變更時,Project Server 中發生的活動。
Public class EventCollection 表示Event物件的集合。
Public class EventHandler 代表識別與專案伺服器事件處理常式的位置。
Public class EventHandlerCollection 表示EventHandler物件的集合。
Public class EventHandlerCreationInformation 提供建立事件處理常式的資訊。
Public class LookupCost 包含型別Cost查閱資料表的資料值。
Public class LookupDate 包含型別Date查閱資料表的資料值。
Public class LookupDuration 包含型別Duration查閱資料表的資料值。
Public class LookupEntry 表示查閱表格項目。
Public class LookupEntryCollection 表示查閱表格的LookupEntry物件的集合。
Public class LookupEntryCreationInformation 提供建立查閱表格項目的資訊。
Public class LookupEntryValue 表示查閱表格項目的值。
Public class LookupMask 代表遮罩定義的層級之階層的查閱表格。
Public class LookupNumber 包含型別Number查閱資料表的資料值。
Public class LookupTable 表示查閱表格。
Public class LookupTableCollection 表示LookupTable物件的集合。
Public class LookupTableCreationInformation 提供方法和屬性設定為建立查閱資料表。
Public class LookupTables 表示查閱資料表定義。
Public class LookupText 定義型別Text查閱表格中的項目。
Public class Phase 表示群組來找出專案生命週期中的一組常見的活動的階段的集合。
Public class PhaseCollection 代表工作流程Phase物件的集合。
Public class PhaseCreationInformation 提供方法和屬性設定值,用來工作流程階段的建立。
Public class PlanAssignment 專案計劃中提供工作分派的相關資訊。
Public class PlanAssignmentCollection 代表計劃指派物件的集合。
Public class PlanAssignmentCreationInformation 提供建立PlanAssignment物件的資訊。
Public class PlanAssignmentInterval 表示專案計劃工作分派的時間間隔的集合。
Public class PlanAssignmentIntervalCollection 表示PlanAssignmentInterval物件的集合。
Public class PlanAssignmentIntervalCreationInformation 提供用於建立PlanAssignmentInterval物件的資訊。
Public class Project 包含草稿專案和已發行的專案的通用屬性。
Public class ProjectCollection 表示PublishedProject物件的集合。
Public class ProjectContext 維護與Project Web App的執行個體,開發的用戶端內容,並包含整個企業的集合在Project Web App中存在的專案伺服器物件。
Public class ProjectCreationInformation 包含可以在建立專案時設定的屬性。
Public class ProjectDetailPage 表示專案詳細資料頁 (PDP),也就是建立、 檢視或管理的Project Web App中的專案屬性的網頁組件網頁。
Public class ProjectDetailPageCollection 表示專案詳細資料] 頁面 (Pdp) 的集合。
Public class ProjectDetailPageCreationInformation 提供用於建立企業專案類型專案詳細資料頁 (PDP) 的資訊。
Public class ProjectResource 提供專案資源的相關資訊。
Public class ProjectResourceCreationInformation 提供屬性設定值和方法的專案資源實體的建立。
Public class ProjectServer 由用戶端程式碼內部使用。若要初始化開發與專案伺服器 CSOM 的用戶端內容,請使用ProjectContext
Public class ProjectServerData 表示伺服器的連線。
Public class PublishedAssignment 代表已發行的專案中的工作分派。
Public class PublishedAssignmentCollection 表示已發佈的工作分派的集合。
Public class PublishedProject 表示專案伺服器發佈的專案。
Public class PublishedProjectResource 代表在專案伺服器發行的企業資源。
Public class PublishedProjectResourceCollection 表示已發佈的專案中資源的集合。
Public class PublishedTask 代表在已發佈的專案中的工作。
Public class PublishedTaskCollection 代表在已發佈的專案中工作的集合。
Public class PublishedTaskLink 表示兩個任務的開始和完成日期之間的相依性關係。
Public class PublishedTaskLinkCollection 表示已發佈的專案中的任務連結的集合。
Public class QueueJob 佇列發佈的專案。
Public class QueueJobCollection 表示QueueJob物件的集合。
Public class ResourceCalendarException 表示資源行事曆例外狀況。
Public class ResourcePlan 表示的高階專案,可能需要何種資源。
Public class ScriptTypeFactory This class and its members are reserved for internal use and are not intended to be used in your code.
Public class ServiceStatus 提供 Project Server 服務的狀態資訊。
Public class Stage 代表專案工作流程中的階段。
Public class StageCollection 代表工作流程Stage物件的集合。
Public class StageCreationInformation 提供方法和屬性,用於建立專案的工作流程階段。
Public class StageCustomField 代表專案階段的自訂欄位。
Public class StageCustomFieldCollection 表示在工作流程階段是自訂欄位的StageCustomField物件的集合。
Public class StageCustomFieldCreationInformation 提供屬性設定和用來將自訂的欄位新增到專案階段資訊的方法。
Public class StageDetailPage 代表工作流程階段專案詳細資料頁 (PDP)。
Public class StageDetailPageCollection 表示專案詳細資料頁 (Pdp),會顯示在工作流程階段的集合。
Public class StageDetailPageCreationInformation 提供屬性設定和用來建立工作流程階段專案詳細資料頁 (PDP) 的方法。
Public class StatusAssignment 提供物件的狀態更新工作分派。
Public class StatusAssignmentCollection 表示狀態更新中的工作分派的StatusAssignment物件的集合。
Public class StatusAssignmentCreationInformation 提供屬性設定值及建立狀態指派物件的方法。
Public class StatusTask 提供物件,會持續追蹤的任務的進度。
Public class StatusTaskCreationInformation 提供屬性設定值及建立狀態工作物件的方法。
Public class Task 包含方法和屬性,可以用來存取工作的詳細資料。
Public class TaskCreationInformation 提供屬性設定和用來建立工作的方法。
Public class TaskLink 表示兩個任務的開始和完成日期之間的相依關係。
Public class TaskLinkCreationInformation 提供屬性設定和用來建立任務連結的方法。
Public class TimePhase 表示按時間分佈的工作分派進度資訊。
Public class TimeSheet 包含方法和屬性的管理時程表。
Public class TimeSheetLine 代表時程表中的資料行。
Public class TimeSheetLineCollection 表示時程表行的集合。
Public class TimeSheetLineCreationInformation 提供屬性設定值和方法,用於建立時程表的線條。
Public class TimeSheetPeriod 表示定義在時程表上的時間。
Public class TimeSheetPeriodCollection 表示TimeSheetPeriod物件的集合。
Public class TimeSheetWork 代表不同的時程表上的工作類型。
Public class TimeSheetWorkCollection 提供時程表中的實際工時項目集合。
Public class TimeSheetWorkCreationInformation 提供屬性設定和用來建立一個時程表工作物件的方法。
Public class WorkflowActivities 包含封裝 Project Server 工作流程活動的方法和方法,用於第 4 版的Windows Workflow Foundation (WF4)。
Public class WorkflowDesigner 建立可以用來設計工作流程的物件。
Public class WorkflowDesignerField 表示建立工作流程設計工具中的欄位。
Public class WorkflowDesignerFieldCollection 表示已篩選的企業專案自訂欄位可用於工作流程設計工具集合。

Enumerations

  Enumeration Description
Public enumeration AccrueAt 成本累算] 模式指定如何及何時資源成本分配給任務的成本。
Public enumeration BookingType 指定如何預訂工作分派的資源。
Public enumeration CalendarRecurrenceDays 表示星期幾的週期性行事曆例外狀況。
Public enumeration CalendarRecurrenceType 指定循環型別為行事曆的例外狀況。
Public enumeration CalendarRecurrenceWeek 指定用來設定排程一個月的一週。
Public enumeration CommittedDecisionResult 指定是否要將項目包含在最佳化器函式或專案公事包分析計劃的函式。
Public enumeration ConstraintType 指定任務的限制式類型。
Public enumeration CurrencySymbolPosition 指定貨幣符號的位置。
Public enumeration CustomFieldRollupType 指定自訂欄位的摘要彙總類型。
Public enumeration CustomFieldType 指定企業自訂欄位的型別。
Public enumeration DependencyType 指定建立兩個任務之間的相依性類型。
Public enumeration EnterpriseResourceType 代表不同類型的企業資源。
Public enumeration FixedCostAccrual 指定如何及何時分配給任務成本的固定的成本。
Public enumeration JobState Project Server 佇列工作狀態指定佇列工作的狀態。
Public enumeration LookupTableConstants 指定的最大值和查閱資料表實體的最小值。
Public enumeration LookupTableMaskSequence 指定的遮罩順序,請查閱資料表的資料的型別。
Public enumeration LookupTableSortOrder 指定查閱資料表的排序順序。
Public enumeration OvertimeRateFormat 指定的時間單位的資源加班工資率。也就是說,每個時間單位,例如每小時多少元速率。
Public enumeration ProjectDetailPageType 指定專案詳細資料頁 (PDP) 型別。
Public enumeration ProjectType 指定專案的類型。
Public enumeration QueueMsgType 指定佇列的訊息型別,將工作傳送至專案伺服器佇列系統。
Public enumeration ReadyToLeaveProjectStageValue 在 Project Server 工作流程,以協助您判斷是否準備好離開階段工作流程中指定的專案階段需求。
Public enumeration ResourceType 指定資源的類型。
Public enumeration StandardRateFormat 指定的時間單位的資源比率。也就是說,每個時間單位,例如每小時多少元速率。
Public enumeration StrategicImpactBehavior 指定如何策略在 Project Server 工作流程階段中的值行為的影響。
Public enumeration TaskType 指定是否在專案中的任務類型固定的固定工時,或固定工期的單位。
Public enumeration TimeScale 指定的時段式資料的比例。
Public enumeration TimeSheetEntryMode 包含的時程表項目模式。
Public enumeration TimeSheetLineClass 表示定義時程表列的不同用途的分類。
Public enumeration TimeSheetLineStatus 表示可以套用至時程表線條的狀態設定值。
Public enumeration TimeSheetStatus 表示可以套用至時程表的狀態設定。
Public enumeration TimeSheetValidationType 指定的時程表線條的驗證型別集合。
Public enumeration TrackingMode 指定追蹤任務進度的模式。
Public enumeration UpdateProjectStageStatusFieldValue 在 Project Server 工作流程中指定的專案階段的狀態。
Public enumeration UtilizationType 指定目前的資源計劃的資源使用的型別。
Public enumeration WorkFormat 包含值,表示工作格式。

Examples

以下是建立一個名為ReadProjectList的Microsoft.ProjectServer.Client命名空間中使用類別來讀取的已發佈的專案集合的簡單的主控台應用程式的步驟。

  1. 如果您正在開發遠端電腦上,下列組件從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

  2. 在Visual Studio 2012,建立主控台應用程式。這個範例中,命名應用程式ReadProjectList。在 [新增專案] 對話方塊中,設定目標架構為**.NET Framework 4.5**。您也可以使用Visual Studio 2010與**.NET Framework 4** (不要使用**.NET Framework 4 用戶端設定檔**)。

  3. 設定的步驟 1 中指定的組件參考。

  4. Program.cs 檔案中的程式碼取代下列程式碼。

    注意事項注意事項

    使用ProjectContext物件,而不是使用ProjectServer物件,您應該設定 CSOM 內容。

  5. 請按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);
        }
    }
}

請參閱

參照

其他資源

Client-side object model (CSOM) for Project Server

JavaScript API reference