1. 程式人生 > >5分鐘接入釘釘工作流之模板配置、釘釘介面流程發起

5分鐘接入釘釘工作流之模板配置、釘釘介面流程發起

### 一、前言 自從上次 ~~水了一篇~~ 寫了一篇5分鐘快速接入釘釘實現考勤後過了1個多月的時間,我福樂裡又和大家見面了,今天我來聊聊工作流的那些事。 ![20200922181331](https://fulu-item11-zjk.oss-cn-zhangjiakou.aliyuncs.com/images/20200922181331.png) 想必各位攻城獅都做過或者接觸過OA系統,說到OA系統肯定離不開一個技術話題,那就是工作流~實現的手段五花八門,有公司內部自己獨立研發、有結合其他三方外掛然後編寫業務程式碼實現的、也有直接採購工作流產品的。那我們今天就來聊下釘釘工作流和如何快速接入。我們分為下面幾個步驟來逐步講解。 1.為什麼選擇釘釘工作流? 2.釘釘工作流的優缺點有哪些? 3.我們如何對接進行實現? ### 二、為什麼選擇釘釘工作流 這裡就不做長篇描述了,既然你與我能夠在這裡相見,那就說明你在做技術方案的時候也進行了初步篩選,我們選釘釘的想法很簡單,有這樣一套產品,又有開放平臺文件對接,有釘釘的團隊不斷的版本升級迭代,而我們又不想重複造輪子所以就選擇了相對來說大廠的產品,公司的企業溝通也使用的是釘釘,自帶移動端優勢,所以就選擇了釘釘工作流 ### 三、釘釘工作流的優缺點有哪些? __優點:__ __1.統一使用者體驗。__ 以前:列如OA系統是有很多業務介面的,不同的流程,使用者是需要挑戰到系統的不同介面的,使用者是需要熟悉每個介面和流程的 現在:統一使用釘釘智慧工作流,審批處理流程體驗一致 ![20200922181502](https://fulu-item11-zjk.oss-cn-zhangjiakou.aliyuncs.com/images/20200922181502.png) __2.提升辦公效率__ 以前:如果企業內部有多個系統,而多個系統中都用到了工作流,則到了審批環節時,都需要審批人進入多個系統進行流程審批,操作畢竟繁瑣,且非常容易遺漏,有的系統甚至是沒有移動端的,導致審批人進行審批的難度加大 現在: 在釘釘工作臺待辦統一入口,直觀檢視所有企業待處理事項 ![20200922181523](https://fulu-item11-zjk.oss-cn-zhangjiakou.aliyuncs.com/images/20200922181523.png) __3.對於開發者價值__ 1.無需關注工作流事項內部流程狀態同步過程,只需關注產品業務場景,還可以節省企業開發成本 2.自帶移動端,讓審批人無需用電腦登入即可一秒審批 __說了這麼多優點,那沒缺點嗎?答案肯定是否定的,缺點肯定有,在我們使用的過程中總結了如下幾點__ 1.審批的流程節點比較死板,必須發起的時候就要計算全部的流程步驟,中途是不能通過介面進行改變流程的 2.表單因為是釘釘自帶,所以如果你想在釘釘上填寫表單發起流程的話難度大,因為不能資料聯動以及資料關聯,所以複雜的表單還是在自己系統發起,釘釘上只做展示 __四、我們如何對接進行實現?__ ![20200922181544](https://fulu-item11-zjk.oss-cn-zhangjiakou.aliyuncs.com/images/20200922181544.png) 首先有2兩種方式,方式一為指定審批人,方式二為複用釘釘審批後臺設定的審批流程。 這裡我講下指定審批人的方式。 __1.開啟審批管理後臺,地址:__ https://aflow.dingtalk.com/dingtalk/web/query/dashboard?dinghash=aflowSetting#/aflowSetting __2.建立流程表單:__ ![20200922181607](https://fulu-item11-zjk.oss-cn-zhangjiakou.aliyuncs.com/images/20200922181607.png) 然後填寫表單的基礎設定,這裡我直接填測試流程 ![20200922181658](https://fulu-item11-zjk.oss-cn-zhangjiakou.aliyuncs.com/images/20200922181658.png) 然後進行釘釘表單的配置,隨便配了2個文字框,如下 ![20200922181716](https://fulu-item11-zjk.oss-cn-zhangjiakou.aliyuncs.com/images/20200922181716.png) 流程設計這裡不用管,因為這裡我用的是直接指定審批人的方式(通過介面傳審批人列表) __3.第三步開始擼程式碼,先引用釘釘審批sdk,下載地址如下:__ C#:https://open-dev.dingtalk.com/download/openSDK/cshap JAVA:https://open-dev.dingtalk.com/download/openSDK/java PHP:https://open-dev.dingtalk.com/download/openSDK/php 直接上發起的示例程式碼: ``` OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest { ProcessCode = "PROC-0DAD7345-5F92-42D7-A306-D22ABC13D2DA",//剛才建立的表單模板id OriginatorUserId = "XXX",//發起人釘釘id DeptId = Convert.ToInt64("xxx"),//發起人部門id Approvers = "XXX,XX",//多個審批人用逗號分隔,按傳入的順序依次審批 CcList = "XX,XX",//抄送人列表 CcPosition = "START_FINISH",//開始和結束都提醒抄送人 }; //表單集合 List list = new List(); //表單內容 list.Add(new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain() { Name = "標題", Value = "這是一個標題"}); list.Add(new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain() { Name = "內容", Value = "這是一個內容" }); request.FormComponentValues_ = list; //呼叫釘釘介面 var _client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); var appToken = (await _dingtalkService.GetDingToken()).Access_token; var result= _client.Execute(request, appToken); ``` 好了,我們的流程就發起成功了,如下圖: ![20200922182231](https://fulu-item11-zjk.oss-cn-zhangjiakou.aliyuncs.com/images/20200922182231.png) __文章的最後,順帶分享下幾個踩坑問題__ 1.釘釘上表單配置控制元件。如果通過介面發起時沒傳 則報錯 2.表單模板id需要url上取,沒有直觀的地方展示 3.釘釘配置的表單標題名稱不能有空格,有空格則報錯 下期預告:打造釘釘分發平臺,實現審批事件回寫和通訊錄事件回寫 福祿ICH·ERP專案部 福樂裡