共用方式為


為商務程序流程撰寫指令碼

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

Microsoft Dynamics 365 (線上和內部部署) 有用戶端物件,可用來與指令碼中的商務程序流程互動。Xrm.Page.data 命名空間經過擴充,包含 Xrm.Page.data.process 下的方法。Xrm.Page.ui 命名空間經過擴充,包含 Xrm.Page.ui.process 下的方法。

本主題內容

商務程序流程的結構

可自動化的動作

商務程序流程的事件

商務程序流程的結構

商務程序流程包含一系列階段,都包含數個步驟。 只有一個階段是使用中的階段。 在每個階段的必要步驟完成時,程序才能夠繼續移至下一個階段,且成為使用中的階段。 下一個階段可以根據商務程序流程中的條件所定義,如下列圖表中所示。

商務程序流程物件

階段可以與特定相關實體關聯,因此,商務程序流程可以跨多個實體。 商務程序保持相同,並帶領使用者至預期的結果。

自 Dynamics 365 (Online 和內部部署) 的 2016 年 12 月更新 起,不同的商務程序流程定義可以與不同角色關聯,且執行個體可以對相同的實體記錄並行執行。 使用者可以在並行的商務程序執行個體之間切換,並且在程序中於目前階段恢復其工作。

其他資訊:TechNet:商務程序流程

可自動化的動作

一般而言,沿著商務程序的進度取決於使用者輸入。 身為開發人員,您可以透過程式設計方式,在表單指令碼中執行相同動作。

  • 實體有多個程序可用時,變更程序。
    使用 Xrm.Page.data.process.getEnabledProcesses 擷取有關使用者可以針對實體選取已啟用程序的資訊。 然後使用 Xrm.Page.data.process.setActiveProcess 將其中一個已啟用的程序執行個體設為使用中,或建立新的程序執行個體。

  • 變更實體記錄的程序執行個體
    使用 getProcessInstances 擷取實體記錄的所有程序執行個體的相關記錄,以及使用 setActiveProcessInstance 將程序執行個體設定為使用中執行個體。

  • 當必要步驟都已完成時,移至下一個階段,使其成為目前使用中階段。
    使用Xrm.Page.data.process.moveNext

  • 移至上一階段並讓它目前使用中的階段。
    使用Xrm.Page.data.process.movePrevious

  • 選取階段,檢視階段中步驟的狀態。
    使用 Xrm.Page.data.process.getActivePath 擷取相關資訊:已完成階段、目前使用中階段,以及從目前使用中階段的有效階段。 檢查該階段中的步驟並比較對應的表單屬性值,決定是否已完成。

  • 完成步驟
    表單中的對應資料已輸入時,步驟完成。 使用步驟 getAttribute 方法,可決定屬性。 這會傳回屬性的邏輯名稱。 然後使用 Xrm.Page.getAttributeXrm.Page.data.entity.attributes 集合擷取屬性並使用屬性 6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setValue 方法設定值。

  • 偵測步驟是不是必要
    使用步驟 isRequired 方法決定商務程序流程是否需要步驟。

  • 展開或摺疊商務程序流程控制項
    使用Xrm.Page.ui.process.setDisplayState

  • 跳到有效的已完成階段。
    使用 Xrm.Page.data.process.setActiveStage 設定目前實體的其中一個有效的已完成階段。

身為開發人員,您也可以執行使用者無法執行的一些動作。

  • 隱藏程序控制項
    使用 Xrm.Page.ui.process.setVisible,您可以控制是否顯示商務程序流程控制項。

  • 查詢程序定義,包括目前看不見的階段
    使用 Xrm.Page.data.process.getActiveProcess 查詢商務程序流程的定義,包括因為此程序的分支邏輯可能看不到的階段。

商務程序流程的事件

您可以將表單提供的所有事件與商務程序流程互動,但是下列新事件讓您根據商務程序流程控制項的事件來執行程式碼。

  • 當商務程序流程的使用中階段變更 (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange),或是階段選取時 (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected),您可以執行程式碼。

  • 您可以執行程式碼,當商務程序流程執行個體的狀態變更時 (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnProcessStatusChange)。 商務程序留程執行個體的狀態可以是下列其中一種:ActiveFinishedAborted

這兩個新事件未提供使用者介面註冊您的事件處理常式。 您必須使用提供的方法,在表單 OnLoad 事件中新增或移除這些事件的處理常式。其他資訊:f451f339-bcee-4260-9904-abc8c0efa153#BKMK_BPFControl

另請參閱

使用 Xrm.Page 物件模型
Xrm.Page.data.process (用戶端參考)
範例:Xrm.Page.data.process.getEnabledProcesses
範例:Xrm.Page.data.process.getActivePath
f451f339-bcee-4260-9904-abc8c0efa153#BKMK_BPFControl
TechNet:商務程序流程

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權