日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Workflow Core + asp.net core 5.0 实现简单审批工作流

發(fā)布時間:2023/12/4 asp.net 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Workflow Core + asp.net core 5.0 实现简单审批工作流 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們知道企業(yè)業(yè)務(wù)系統(tǒng)到處都可以審批工作流的,但也很少有像OA系統(tǒng)一樣復(fù)雜多級多條件的審批工作流需要設(shè)計,所以我們需要一個輕量級的容易上手的workflow框架,通過GitHub,我發(fā)現(xiàn)danielgerlag/workflow-core?就非常合適,我下面我通過自己的一個開源項目利用Workflow core開發(fā)了一個文檔審批工作流的原型,也算是我開源項目中的一個重要模塊

什么是Workflow Core

Workflow Core is a light weight embeddable workflow engine targeting .NET Standard. Think: long running processes with multiple tasks that need to track state. It supports pluggable persistence and concurrency providers to allow for multi-node clusters.
這里我簡單的說一下我對工作流的理解,一開始對工作流的映像就是審批工作流,一級批完二級,三級流轉(zhuǎn)的審批,中間還有一些判斷,比如金額>多少給什么批,而這些金額,判斷邏輯最好是可配置化的,配置最好是圖形化的,想怎么配都可以。但實際情況似乎并不能用簡單的方式實現(xiàn)上述的功能,當(dāng)然有類似的成熟的工作流引擎可以做到比如國內(nèi)的泛微OA,還有一個開源的Elsa,而我想要的還是最簡單的最快速,能滿足一些簡單的業(yè)務(wù)場景就可以了。讓我們開始吧。

新建一個審批工作流

業(yè)務(wù)場景:

A用戶(neozhu@126.com)上傳附件,發(fā)起一個新的workflow給B用戶(new163@163.com)審批,如果5分鐘內(nèi)沒有審批則系統(tǒng)自動取消該審批請求。
這里發(fā)起新的請求需要觸發(fā)發(fā)郵件通知B用戶有新的審批請求,B審批完成,需要發(fā)郵件通知A審批結(jié)果。

定義一個Workflow

參考上面的業(yè)務(wù)場景用代碼來定義一個workflow的框架

分5個步驟

  • InitialStep 初始化 發(fā)郵件通知審批人有新的請求

  • UserTask 等待接收審批結(jié)果

  • ApprovedStep 審批通過 發(fā)郵件通知申請人審批通過

  • RejectedStep 被拒絕 發(fā)郵件通知申請人已被拒絕

  • CancelStep 審批超時 發(fā)郵件通知申請超時被取消

  • InitialStep 定義

    重點:initialStep 發(fā)郵件的內(nèi)容是從外部輸入的,因此這里的Input方法就是說明step是怎么接收輸入?yún)?shù)的,Output表示輸出把這個step執(zhí)行的結(jié)果輸出到外部
    每一個Step就相當(dāng)于是一個獨立的執(zhí)行單元,參數(shù)和結(jié)果的輸入/輸出,全靠input/output兩個方法。

    UserTask / WithOption 這是 HumanWorkflow 擴展的方法用戶接收外部事件,這里就是人工提交審批結(jié)果

    ApprovedStep 發(fā)郵件通知申請人

    RejectedStep / CancelStep 功能和ApprovedStep 一致

    運行看一下效果

    當(dāng)用戶上傳新的文件,就會開啟一個新workflow,審批人會收到郵件通知.

    因為超時流程已經(jīng)結(jié)束

    OK,一個簡單的workflow就完成。

    最后

    如果你有什么問題可以留言告訴我
    源代碼庫和測試環(huán)境
    關(guān)于這個項目詳細(xì)介紹一個遵循CleanArchitecture原則的Asp.net core輕量級開源項目)
    RazorPageCleanArchitecture?:https://github.com/neozhu/RazorPageCleanArchitecture

    Demo
    喜歡這個開源項目請給的星星,謝謝

    總結(jié)

    以上是生活随笔為你收集整理的Workflow Core + asp.net core 5.0 实现简单审批工作流的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。