Dynamics 365-三:工作流
參考文檔
瑞泰信息技術(shù)有限公司
流程
流程的種類
業(yè)務(wù)流程BusinessProcess:可視化的流程,創(chuàng)建流線型的業(yè)務(wù)流程讓用戶對客戶都遵循相同的步驟,告訴用戶當(dāng)前在哪一步要做什么
腳本Dialog:使用腳本可以創(chuàng)建一個向?qū)浇缑妫敢脩敉瓿煽蛻艚换ツ_本
工作流Workflow:使用工作流可以在后臺實現(xiàn)業(yè)務(wù)流程自動化,可以由事件觸發(fā),也可以按需運(yùn)行
操作Action:操作是一種能通過API/后端代碼調(diào)用的自定義代碼邏輯的流程
各流程的差異
業(yè)務(wù)流程Business Process Flow、腳本/對話Dialog、工作流Workflow都可以低代碼開發(fā),而操作Action具有一定的編程能力,需要自定義代碼邏輯。
業(yè)務(wù)流程Business Process Flow:流程指導(dǎo)是基于相同的步驟,為用戶完成工作提供指導(dǎo),例如銷售線索流程、商機(jī)流程、案例解決流程等,它可以由用戶啟動或自動啟動。
腳本/對話Dialog:流程指導(dǎo)是向?qū)浇缑娼换ィ菍崟r進(jìn)程,需要由用戶輸入才能運(yùn)行完成,它存儲正在運(yùn)行腳本所生成信息的實體是ProcessSession實體。
工作流Workflow:流程指導(dǎo)是后臺實現(xiàn)業(yè)務(wù)流程自動化,例如根據(jù)客戶門店關(guān)系更新客戶歸屬導(dǎo)購、積分賬戶變化更新會員等級。它為異步或?qū)崟r進(jìn)程,無需用戶輸入即可運(yùn)行完成。異步進(jìn)程在后臺運(yùn)行,而實時進(jìn)程立即運(yùn)行。它存儲正在運(yùn)行的異步工作流的詳細(xì)信息的實體為AsyncOperation,而Process用于實時工作流。
操作Action:流程指導(dǎo)是使用API/后端代碼調(diào)用的自定義代碼邏輯,例如訂單確認(rèn)、入庫確認(rèn)、入庫簽收等。它可以由用戶啟動或自動啟動。
業(yè)務(wù)流程
業(yè)務(wù)流程階段、步驟和類別
? 每個階段只能指定一個實體;每個階段包含一組步驟,每個步驟代表可以輸入數(shù)據(jù)的一個字段。
? 用戶可以使用下一階段按鈕前進(jìn)到下一階段;可以將某個步驟設(shè)為必需步驟,使得用戶必須為對應(yīng)的字段輸入數(shù)據(jù)后才能繼續(xù)到下一階段,這稱為“階段門限”。
? 每個實體最多有10個激活的業(yè)務(wù)流程;每個業(yè)務(wù)流程可以最多包含30個階段;每個階段最多30個步驟。
業(yè)務(wù)流程權(quán)限
編輯安全角色:選擇某個安全角色-業(yè)務(wù)流程選項卡-設(shè)置權(quán)限
創(chuàng)建:允許創(chuàng)建業(yè)務(wù)流程的實例,在創(chuàng)建新記錄的同時完成。
讀取:允許查看已創(chuàng)建記錄中的業(yè)務(wù)流程。
寫入:允許更新業(yè)務(wù)流程。 例如,更改狀態(tài)和導(dǎo)航。
刪除:允許刪除實例,如在刪除記錄時。
追加:允許從實體的跨實體導(dǎo)航。 例如,潛在顧客轉(zhuǎn)化為商機(jī)銷售流程業(yè)務(wù)流程中的潛在顧客實體。
追加到:允許到實體的跨實體導(dǎo)航。 例如,潛在顧客轉(zhuǎn)化為商機(jī)銷售流程業(yè)務(wù)流程中的商機(jī)實體。
業(yè)務(wù)流程的順序
? 多個業(yè)務(wù)流程顯示順序可通過點擊上下箭頭進(jìn)行排序,業(yè)務(wù)流程默認(rèn)顯示的是有權(quán)限看到的第一個業(yè)務(wù)流程。另外多個業(yè)務(wù)流程時可通過自動或手動方式進(jìn)行切換。
工作流
工作流的分類
后臺工作流(異步):依賴于Windows服務(wù)(Microsoft Dynamics CRM異步處理服務(wù)),是CRM服務(wù)器上運(yùn)行的服務(wù)。有可能不會立即執(zhí)行。
實時工作流(同步):立即執(zhí)行的工作流,跟插件一樣,也是用事件執(zhí)行管道執(zhí)行。如果在執(zhí)行過程中有異常發(fā)生,會取消并回滾整個操作。實時工作流里所有的活動和子流程都是一個事務(wù)。如果工作流執(zhí)行成功,就看不到執(zhí)行的log。如果執(zhí)行失敗且啟用日志,則實時工作流錯誤記錄在進(jìn)程會話(ProcessSession)實體記錄中。
工作流的運(yùn)行方式
在后臺運(yùn)行此工作流(推薦):勾選代表異步工作流,不勾選代表同步工作流
作為按需流程:手動執(zhí)行
作為子流程:由其他工作流Workflow或腳本Dialog中調(diào)用
工作流配置項
范圍:用戶/業(yè)務(wù)部門/上下級業(yè)務(wù)部門/組織。
啟動時間:創(chuàng)建記錄后-記錄狀態(tài)更改后-分派記錄后-記錄字段更改后-刪除記錄后。記錄指工作流中定義的實體。啟動時間可多個組合,兩者間是或的條件。
Workflow步驟
條件:檢查條件【推薦】判斷當(dāng)前字段是否滿足某個值;等待條件;
操作:創(chuàng)建-更新-分派-發(fā)送電子郵件-啟動子工作流-執(zhí)行操作-更改狀態(tài)-停止工作流。
自定義工作流
創(chuàng)建工作流項目
安裝工作流項目模板
打開VS安裝工具,在單組件選項中搜索windows workflow foundation安裝
創(chuàng)建工作流項目
打開VS,新建項目,選擇workflow分組下活動庫(Activiy Lbray)模板,點擊確定創(chuàng)建
刪除自動生成的.xaml文件
創(chuàng)建工作流文件
右鍵項目,選擇添加,新建項
選擇Workflow組下代碼活動文件(code activity),點擊確定創(chuàng)建
引入相關(guān)庫
Microsoft.crm.sdk
Microsoft.crmsdk.workflow
編寫代碼
using System;
using System.Activities;
using Microsoft.Xrm.Sdk.Workflow;
using Microsoft.Xrm.Sdk;
namespace T2
{
public sealed class CodeActivity1 : CodeActivity
{
// 定義一個字符串類型的活動輸入?yún)?shù)
[Input("Text")]
public InArgument<string> Text { get; set; }
// 定義一個字符串類型的活動輸出參數(shù)
[Output("OutText")]
public OutArgument<string> OutText { get; set; }
protected override void Execute(CodeActivityContext context)
{
// 獲取 Text 輸入?yún)?shù)的運(yùn)行時值
string text = context.GetValue(this.Text);
IWorkflowContext workflowContext = context.GetExtension<IWorkflowContext>();
IOrganizationServiceFactory factory = context.GetExtension<IOrganizationServiceFactory>();
IOrganizationService service = factory.CreateOrganizationService(null);
Guid id = Guid.Empty;
Entity entity = new Entity("new_customer");
entity.Attributes.Add("new_phone",Text.Get(context));
id = service.Create(entity);
OutText.Set(context,id.ToString());
}
}
}
生成,簽名
右鍵項目,屬性
簽名,勾選程序集簽名,選擇新建,取消加密,輸入簽名名稱,確定,保存
注冊工作流
打開注冊工具
添加工作流DLL
選擇DLL文件,勾選添加的工作流類文件,點擊添加,完成
使用工作流
流程中心,流程
新建流程
輸入流程名稱,類型為工作流,選擇關(guān)聯(lián)的實體,創(chuàng)建
配置工作流
勾選流程執(zhí)行時機(jī),添加步驟,添加注冊的工作流
配置屬性
若流程有輸入屬性,可設(shè)置輸入屬性關(guān)聯(lián)信息(綁定值,默認(rèn)值等)
到達(dá)勝利之前無法回頭!
總結(jié)
以上是生活随笔為你收集整理的Dynamics 365-三:工作流的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米路由器当无线网卡使用方法如何用小米路
- 下一篇: 百度乐播音乐真实地址查找api接口