公司做网站怎么收费,郑州做公司网站的,wordpress注册新用户,在线智能识图我们知道企业业务系统到处都可以审批工作流的#xff0c;但也很少有像OA系统一样复杂多级多条件的审批工作流需要设计#xff0c;所以我们需要一个轻量级的容易上手的workflow框架#xff0c;通过GitHub,我发现danielgerlag/workflow-core 就非常合适#xff0c;我下面我通… 我们知道企业业务系统到处都可以审批工作流的但也很少有像OA系统一样复杂多级多条件的审批工作流需要设计所以我们需要一个轻量级的容易上手的workflow框架通过GitHub,我发现danielgerlag/workflow-core 就非常合适我下面我通过自己的一个开源项目利用Workflow core开发了一个文档审批工作流的原型也算是我开源项目中的一个重要模块什么是Workflow CoreWorkflow 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.这里我简单的说一下我对工作流的理解一开始对工作流的映像就是审批工作流,一级批完二级三级流转的审批中间还有一些判断比如金额多少给什么批而这些金额判断逻辑最好是可配置化的配置最好是图形化的想怎么配都可以。但实际情况似乎并不能用简单的方式实现上述的功能,当然有类似的成熟的工作流引擎可以做到比如国内的泛微OA还有一个开源的Elsa而我想要的还是最简单的最快速能满足一些简单的业务场景就可以了。让我们开始吧。新建一个审批工作流业务场景:A用户(neozhu126.com)上传附件发起一个新的workflow给B用户(new163163.com)审批如果5分钟内没有审批则系统自动取消该审批请求。这里发起新的请求需要触发发邮件通知B用户有新的审批请求B审批完成需要发邮件通知A审批结果。定义一个Workflow参考上面的业务场景用代码来定义一个workflow的框架分5个步骤InitialStep 初始化 发邮件通知审批人有新的请求UserTask 等待接收审批结果ApprovedStep 审批通过 发邮件通知申请人审批通过RejectedStep 被拒绝 发邮件通知申请人已被拒绝CancelStep 审批超时 发邮件通知申请超时被取消InitialStep 定义重点initialStep 发邮件的内容是从外部输入的因此这里的Input方法就是说明step是怎么接收输入参数的Output表示输出把这个step执行的结果输出到外部每一个Step就相当于是一个独立的执行单元参数和结果的输入/输出,全靠input/output两个方法。UserTask / WithOption 这是 HumanWorkflow 扩展的方法用户接收外部事件这里就是人工提交审批结果ApprovedStep 发邮件通知申请人RejectedStep / CancelStep 功能和ApprovedStep 一致运行看一下效果当用户上传新的文件就会开启一个新workflow,审批人会收到邮件通知.因为超时流程已经结束OK一个简单的workflow就完成。最后如果你有什么问题可以留言告诉我源代码库和测试环境关于这个项目详细介绍一个遵循CleanArchitecture原则的Asp.net core轻量级开源项目RazorPageCleanArchitecture :https://github.com/neozhu/RazorPageCleanArchitectureDemo喜欢这个开源项目请给的星星谢谢