前言:会签和加签是常见审批流程模式,在引擎中,对这两种流程模式做了分别定义和实现,其中也用到了Workflow Pattern的Multiple Instance(多实例) . 1. 会签和加签的定义 会签即当前运行节点有多人进行办理,或者可以说当前节点存在多个办理任务.这些任务可以分为两种情况来运行:一种是按顺序进行办理,即串行会签:一种是同时进行办理,即并行会签. 串行会签和并行会签都可以进行通过率的设置,串行会签和并行会签中通过率是按照通过人数或者百分比进行设置,达到通过人数(或者百分比)…
集成流程引擎的必要性 业务过程的变化是在BPM系统中常见的现象,企业管理层需要不断优化组织架构,改造业务流程,不可避免地带来了业务流程的变化,企业信息系统就会随之面临重构的可能性.一种直接的方式是改造业务代码,适应业务过程的变化,这将会面临不断改写代码的需求:还有一种方式是使用流程引擎控制业务过程的变化,将改写业务代码的操作交由流程引擎,通过流程引擎解析业务规则,驱动业务过程流转,从而将改写业务代码的可能性降到最低. 显而易见,流程引擎带来的好处是为了更好解决业务过程变化后带来的重构风险,信息系…
集成流程引擎的必要性 业务过程的变化是在BPM系统中常见的现象,企业管理层需要不断优化组织架构,改造业务流程,不可避免地带来了业务流程的变化,企业信息系统就会随之面临重构的可能性.一种直接的方式是改造业务代码,适应业务过程的变化,这将会面临不断改写代码的需求:还有一种方式是使用流程引擎控制业务过程的变化,将改写业务代码的操作交由流程引擎,通过流程引擎解析业务规则,驱动业务过程流转,从而将改写业务代码的可能性降到最低. 显而易见,流程引擎带来的好处是为了更好解决业务过程变化后带来的重构风险,信息系…
前言:并行审批是比较常见的流程模式,在工作流模式介绍中,通常是多个分支通过网关(Gateway)来控制实现.默认的分支类型是静态定义好的.本文扩展了并行网关的控制方式,实现了动态多实例的并行分支网关,便于用户业务流程的审批过程实现.  1. 业务过程描述 并行评审需求是在多个部门同时发生,此时会有多个并行分支的实例[员工填表->组长审批].各个分支序列独立执行,直到所有并行分支序列全部执行完毕后才达到汇合条件.然后流程经过汇合网关继续向下执行流程. 并行评审的实例数据: A部门:员工填表-->…
前言:在集成Slickflow.NET 引擎组件过程中,引擎组件需要将用户,角色等资源数据读取进来,供引擎内部调用:而企业客户都是有自己的组织架构模型,在引入模块化架构设计后,引擎组件的集成性更加友好便捷. 1. 未采用模块化设计之前的项目结构 在引擎内部,创建了Resource的目录,用于组织机构模型数据的处理,而且仅作了用户和角色相关的数据读取,未涉及到组织机构模型:比如部门和员工等信息.这样当用户集成自己的组织架构模型时候,就要扩展此部分代码,对引擎内部的统一性造成一定影响,不便于用户的后…
1. 工作流术语图示                                              图1 流程图形的BPMN图形元素表示 1) 流程模型定义说明流程(Process):是企业组织对业务过程的工作流语言描述.一个完整的流程包括开始节点,中间节点和结束节点. 活动(Activity):对每一个工作项节点上的内容定义,也包括网关,事件等节点. 转移(Transition):表示起始节点和到达节点之间的状态转移. 执行者(Performer):每一个节点定义的角色和用户,作为…
前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台..Net Core也是微软在一开始发展时就开源的软件平台,其开发目标是跨平台的 .NET 平台. .NET Core 平台的开发优势 : 支持或可以移转 (port) 到更多的操作系统平台与芯片架构 (也就是未来项目会跨出 x86 平…
前言:审批流程中常见的都是人工类型任务,但是也会有一些自动化的任务需要定时触发.因此,引擎框架中需要解决掉两个问题:选择合适的任务调度框架,集成新的任务调度模块. 1. 任务调度框架选择 Hangfire 是一个开源的.NET任务调度框架,目前1.6+版本已支持.NET Core. 基于队列的任务处理(Fire-and-forget jobs)延迟任务执行(Delayed jobs)定时任务执行(Recurring jobs)延续性任务执行(Continuations) Hangfire用的是开…
前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台..Net Core也是微软在一开始发展时就开源的软件平台,其开发目标是跨平台的 .NET 平台. .NET Core 平台的开发优势 : 支持或可以移转 (port) 到更多的操作系统平台与芯片架构 (也就是未来项目会跨出 x86 平…
前言:引擎作为中间件集成到用户的项目里面去,针对用户的数据库类型,需要作出SQL部分的分别实现.引擎默认数据库为MS SQLSERVER,同时也支持ORACLE, MYSQL, KINGBASE等不同类型的数据库. 1. Dapper对于多数据库实现的支持--SqlDialect 下图给出了Dapper项目中ISqlDialect接口的具体实现类. 2. Slickflow.NET 针对不同数据库的特性实现 在各个数据库特性SQL的写法上,比如SQLSERVER中的TOP语句,对应到其它数据库就…