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