工作流
文章平均质量分 71
LikeLaura
这个作者很懒,什么都没留下…
展开
-
工作流系统之轨迹备注
最近在很多B2C的网站采购的时候,对每张订单,都多了一个订单跟踪 这样的功能,点击打开,是轨迹的文字描述和简单的图例显示,使对订单的跟踪一目了然: 这个文字描述的轨迹备注很人性化,呵呵,因此考虑在工作流系统中增加文字描述的轨迹跟踪记录。工作流系统的每个流程实例在运行的时候,流程引擎都会为其记录运行的轨迹过程。引擎的api函数中,通常会提供获取流程轨迹的api函数转载 2016-10-14 19:57:30 · 812 阅读 · 0 评论 -
工作流系统之三十五 自由流的实现
工作流系统在给业务流程建模的时候,按照流程引擎的设计,将业务流程定义出来。这个业务流程的每个流程实例,就按照流程建模时定义好的线路流转。自由流是指流程实例在运行时,不按照预先定义好的线路流转,而是自由的跳转,由流程实例的操作人员来选择下一个到达的节点。通常这种都是不正常的流转,和回退流一样,破坏了流程的正常定义。但是自由流又很有“特色”,符合一定的业务需求。例如,当一份申请单提交审核后,需转载 2016-10-14 19:40:00 · 1831 阅读 · 0 评论 -
工作流系统之三十四 集成用户系统
工作流引擎或工作流系统,应该致力于工作流引擎模型的设计,业务流程的抽象,以及业务流程的流转,这些是工作流系统的重要部分,把这些设计好了,一套工作流系统也就具备雏形了。 但是业务流程的流转往往是需要有特定的人,特定的角色等的参与的。在业务流程建模,流程实例的流转,都是离不开应用系统中的用户系统。可以说用户系统是工作流系统的不可缺少的部分,因此工作流系统也必需要涉及到用户系统的设计与实转载 2016-10-14 19:39:17 · 673 阅读 · 0 评论 -
工作流系统之三十三 撤回的实现
工作流系统的回退流,是指流程实例运行到一定阶段后,可以主动的选择回退到曾经运行过的任意轨迹上。回退流的发起方是当前步骤的任务执行人,选择主动的回退,上面有一篇 回退流的实现,主要说明了回退流的实现过程。工作流系统的撤回,是指流程实例运行了一定的轨迹后,上一步的任务执行人,选择撤回刚刚提交的任务,使得流程再次流转到此步骤。撤回的发起方是当前步骤的上一步任务的执行人,选择主动撤回。转载 2016-10-14 19:38:37 · 2850 阅读 · 0 评论 -
工作流系统之三十二 设计模式在工作流系统开发中的运用
GoF四人组一共介绍了23种面向对象的设置模式,为每一种特定的实现取了一个名字,根据模式的应用目的不同,将他们分为3类,创建型、结构性和行为型。面向对象设计三原则:优先使用组合针对接口编程为变化而设计设计模式不是万能的,熟悉了这些模式,灵活运用它,并且不局限于设计模式,构架出适合自己的设计才是最重要的。在工作流系统的开发中,后台的类是纯面向对象的方式实现的,因此少不转载 2016-10-14 19:37:50 · 1812 阅读 · 0 评论 -
工作流系统之三十一 回退流的实现
在流程建模的时候,定义好了返回的线路,这种严格来说,不是回退流。例如,审核不通过,则返回重新填写,这种只是条件路由。工作流的回退流,是流程实例在流转的过程中,可以回退到运行轨迹的任意步骤,同时还可以辅助一些业务补偿方法,使得回退时候的环境和原来执行时候的环境一样。所以回退流,和流程引擎支持的正常的路由方式是不一样的,甚至是反流程建模的方式,流程建模就是把业务流程的各业务处理过程按一定的转载 2016-10-14 19:37:12 · 1997 阅读 · 0 评论 -
工作流系统之三十 流程的静态分支与动态分支
业务流程的流转过程中,经常会有需要并发处理的过程,即流程流转到下一步,同时产生多个当前需要处理的过程,这些过程不分先后处理顺序,只要都处理完成了,最后汇聚到一起,再接着主流程运行,就可以了。例如:一份报销单,填写完成后,同时启动财务部门审核和本部门的审核,这两部分的审核不分先后顺序,只要都完成后,再将结果返回给报销单填写人,继续下面的流转。这种的并行处理的过程,就需要流程引擎支持分支和聚合。转载 2016-10-14 19:36:18 · 2148 阅读 · 1 评论 -
工作流系统之二十九 详解工作流实例的一次流转
通常在利用流程设计器给业务流程建模之后,会生成一个流程描述的xml文件,业务流程的每个环节步骤,需要执行的操作,自动的,手动的等等信息,都被描述在这个流程建模的xml文件中。xml文件的内容,是一些规则的预先定义的抽象的节点信息,流程引擎负责这些节点的定义,创建,解释,定位等等,业务流程利用这些节点建模。建模完成的业务流程,挂接上业务表单后,就可以直接运行业务流程了。业务流程的运行,从启动转载 2016-10-14 19:35:15 · 3172 阅读 · 0 评论 -
工作流系统之二十八 工作流系统实例演练
工作流系统实例演练有了工作流引擎,工作流设计器,工作流管理平台,自定义表单,然后业务流程确定之后,就可以快速的做好能运行的流程了。首先业务要确定,包括业务细节部分。以一个 问题跟踪流程为例,实战演练一下,如何快速的搭建一个可以运行的业务流程。业务需求:用户在使用 我们公司的产品时,经常会遇到一些问题,有的是不会使用的问题,有的是误解,有的是bug,也有的是对产品的建议等等。转载 2016-10-14 19:34:06 · 548 阅读 · 0 评论 -
工作流系统之二十七 .net工作流系统集成自定义表单
.net工作流系统集成自定义表单工作流系统一般都包含工作流引擎,工作流引擎是对业务流程的抽象,是实现流程自动化的微内核,利用工作流引擎的基本元素能搭建出各种各样的流程,但仅限于流程,不涉及到业务实现。流程的每个节点上可以挂接需要处理的业务模块,例如一个简单的报销流程,如下图:在填写报销单的流程节点上,就可以挂接上 填写报销单 这样一个业务模块;到审批的节点上,挂接 审批报销单模块。转载 2016-10-14 19:33:12 · 1353 阅读 · 0 评论 -
工作流系统之三十六 工作流软件中的那些人
如果我们把预定义的流程比喻成一条从起点到终点的公交线路,那么流程定义中的步骤,就表示车站。汽车到站后人员有上车下车等行为,这就可以认为是流程中的动作。流程定义完后,就按照预定义好的线路往下走,当然业务流程的规则是比公交线路更复杂。 业务流程的流转离不开人员的参与,工作流软件的定义就是:自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传转载 2016-10-14 19:40:42 · 487 阅读 · 0 评论 -
工作流系统之三十七 自由流的实现(续)
工作流系统的自由流实现了不按照流程预定义的轨迹流转,即需要在节点之间任意的跳转。上一篇自由流的实现主要说明了跳转规律,如果是单节点间的跳转,只要有当前的节点,以及跳转到的节点,就ok了。但是当当前节点和任意跳转到的节点之间有分支并发线路后,就不是简单的跳转了,当分支套分支,分支主干等之间的跳转就更复杂了。如果是这种串行路由,就很简单了。但是这样的多路分支,分支嵌套分支的转载 2016-10-14 19:41:25 · 853 阅读 · 0 评论 -
工作流软件中的那些事
对接口编程,为变化而设计,是面向对象编程的基本原则。工作流软件产品中的流程引擎的实现,主要是采用面向对象的设计原理。工作流引擎负责对业务流程的抽象,对业务流程建模,以及业务流程的流转。在流程引擎中会设计一些基本的赋予一定意义的节点,组合这些节点给业务流程建模。流程引擎负责解释这些节点,并通过面向对象的编程方式,每个节点对应一个类,节点的属性和方法均在类里面有所体现,表现为类的属性和转载 2016-10-14 19:55:56 · 960 阅读 · 0 评论 -
表单中权限设置 VS 流程节点中权限设置
权限设置通常分为模块级别的权限设置,原子操作的权限设置,记录级别的权限设置。模块级别的权限设置很简单,某个人或某个角色对没个模块有操作权限,要么就没有操作权限;原子操作的权限设置,是指对页面的控件的操作权限,某个用户或某个角色对某个控件有操作权限,或没有操作权限。记录级别的权限设置,通常也指数据的权限控制,某人或某角色对某些记录有查看权限,或对某个字段没有查看更新等操作权限。转载 2016-10-14 19:54:56 · 2723 阅读 · 0 评论 -
业务表单中通用选择功能的实现归纳与总结
程序员,在实现业务模块时,都离不开要做一些弹出选择页。简单的如,部门列表页,从弹出的部门列表页中选择具体的部门;复杂的如,从弹出的产品列表页中选择多个产品,还需要把产品的规格,型号,单价等等信息一并返回。通常我们在实现这样的弹出选择页时,都需要针对每个弹出页,写上一序列的代码,主要实现这样几方面的功能:从主页传递一些参数到弹出页弹出页功能的实现 模糊查找条件 列表显示列转载 2016-10-14 19:53:41 · 1289 阅读 · 0 评论 -
工作流集成表单的过程
工作流引擎实现抽象流程的流转,业务的实现在表单模块中完成。如报销流程,填写报销单,审核报销单,都对应一个业务模块,在业务模块中实现将数据保存到数据库表中,实现业务数据的持久化。工作流引擎负责将这些业务模块串起来,实现业务流的流转。 曾经的业务系统,业务流的流转通常是采用对状态字段的控制来实现的。当报销单填写完成后,单据状态为1,经理审核的时候,就查询出单据状态为1的记录,做审核,审核转载 2016-10-14 19:52:36 · 5317 阅读 · 1 评论 -
如何用流程的功能模块来展现业务流程
还记得多年前在做工作流管理中心的流程演示时,很迷茫如何用流程的功能模块来展现业务流程。业务流程的展现,传统的做法是按业务单据建立好业务表,再增加一些状态字段来控制单据的流转,达到完成业务流程。例如一个采购申请流程:按采购单建立好表结构字段;做好制定采购单的模块;买方制定好的单据接下来会在卖方的各个部门之间流转,就通过增加的状态字段来控制:1 申请状态;2 发送状态;转载 2016-10-14 19:50:13 · 3964 阅读 · 0 评论 -
工作流系统之四十三 集成应用系统
工作流软件系统做为一个开发组件,只实现了工作流引擎,工作流的建模,流程实例的创建,流转等等。不包含整体的业务系统,当集成到用户的应用系统时候,需要作为组件的方式集成。集成的方式有多种,一般来说,用户系统是首先要集成的,应用系统的一般都会有自己的用户系统,包含,用户,角色,权限等。这些不包含在工作流软件系统中,但是在工作流软件系统中又一定会用到,流程节点的执行权限等,都离开用户角色权限等的设转载 2016-10-14 19:48:13 · 1345 阅读 · 0 评论 -
工作流系统之四十一 流程的单起点和多起点
工作流软件产品在建模的时候,通常都是从开始节点开始,经过一序列的节点,最后到结束。因为有些业务的特殊性,可能会需要有多个起点,也可能会在流程的某个节点就结束了,这里就涉及到流程的多起点,和多结束点的问题。通常工作流引擎都需要支持流程的多起点。多结束点倒是很简单,可以通过条件跳转等等来达到流程的某个节点就转向结束。流程的多起点表现方式有很多种,例如有的需要定时启动一个流程实例;同样一个业务流转载 2016-10-14 19:44:18 · 3276 阅读 · 0 评论 -
工作流系统之四十 抄送功能的实现
在OA审批流中,任务信息,经常需要抄送给相关人员。被抄送的人能查看到任务信息,但是不参与执行任务。在工作流软件产品中,产生一条任务信息,任务有参与人,执行人,任务完成后,还有任务的完成人,这些是任务的基本信息。当任务需要抄送给相关人员时候,还需要给任务设置抄送人。被抄送的人,能全程关注任务的执行与完成情况,即使是完成了的任务,被抄送的人也可以查看。当然,任务的抄送人仅仅能查看到任务信息,不转载 2016-10-14 19:43:44 · 6689 阅读 · 1 评论 -
工作流系统之三十八 工作流软件中的定时器处理
工作流软件中的定时器处理,一般分为两种:应用服务启动就启动的定时器这种类型和通常的web系统中的定时器处理一样。应用服务器启动后,定时器就启动了,然后按照定制的时间段轮询处理。当应用服务器关闭的时候,这种定时器才会关闭。这种定时器通常是对所有需要定时处理的记录来做的,在工作流软件中,就对应到所有的业务流程,所有的流程实例。这种类型的定时器,在报表软件,报表产品中经常有用到,转载 2016-10-14 19:42:22 · 675 阅读 · 0 评论 -
工作流系统之二十六 .net工作流系统之扩展性
.net工作流系统之扩展性最近为用户做工作流实施时,都无一例外的提出工作流系统的扩展性问题。事件一:eworkflow工作流系统预置了一些系统的条件,前置后置函数等。如果这些不能满足业务需要,用户需要定制自己的业务规则,业务过程,该如何做?解决方案:eworkflow系统预置了很多系统的条件类,前置后置函数类。简单一些的业务规则,可以直接用自定义脚本,写个表达式的方式来转载 2016-10-14 19:31:32 · 1463 阅读 · 0 评论 -
工作流系统之二十五 .net工作流系统开发体会
.net工作流系统开发体会公司的eworkflow自定义工作流系统,最初是开发了java版的。待java版的功能稳定后,就开始开发.net版的。java版的eworkflow工作流系统,我们没有依赖于任何框架,如struts,spring等,也没有用hibernate,ibatis等orm映射工具。在支持web方面也有一套自己的mvc框架,都是纯java的代码。因为工作流系统,比较注重转载 2016-10-14 19:30:24 · 3285 阅读 · 0 评论 -
工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件
以前写过一篇 表单权限与流程的权限控制;文章,没有具体的去实现,实践证明,同一张表单在多流程节点中流转,是工作流和电子表单必须要处理的问题。 工作流系统和电子表单相结合,达到同一张表单在流程的各个节点中的权限不同。 例如一张表单包含,录入部分信息,审核部分信息; 当表单在录入的时候,需要将审核部分信息全部屏蔽;当上级审核时,录入部分的信息需转载 2016-10-14 19:08:37 · 1191 阅读 · 0 评论 -
工作流管理系统开发之十一 流程数据与业务数据的交互
通常工作流系统在设计之初,都会明确的区分流程数据和业务数据。工作流引擎只关心流程数据,为实现工作流的流转,会为工作流引擎设计一套工作流的表结构,来辅助流程引擎的实现。业务数据是千变万化的,为实现各自的业务,会设计一系列业务表。业务表,工作流系统是不关心的。但是工作流数据和业务数据又是交互的关联的。 1. 流程和业务数据的基本关联:为了将业务数据和流程转载 2016-10-14 19:07:29 · 1894 阅读 · 0 评论 -
工作流管理系统开发之十 数据库连接及事务设定
为了方便设置数据库连接和事务的一致,将所有数据库连接信息统一设置在fcconfig.xml文件中; fcconfig.xml的内容: type="jdbc" jdbcDriver="com.newatlanta.jturbo.driver.Driver" jdbcUrl="jdbc:JTurbo://localhost/eformtest/charset=转载 2016-10-14 19:06:23 · 1109 阅读 · 0 评论 -
工作流管理系统开发之八 开源osworkflow之任务管理
前言:osworkflow的任务管理很简单,没有专门的任务表,也没有待办,已办,发出,处理任务等等。只有很简单的查询用户可处理的动作和已经处理过的历史步骤。(注意这里只是可处理的动作和已经处理过的历史步骤,都不是任务)这显然距任务管理差很多很多。改造方案: 增加任务表,记录任务的相关属性,可执行人,任务处理人,任务发出时间,完成时间等。 流程定义转载 2016-10-14 19:04:45 · 1107 阅读 · 0 评论 -
工作流管理系统开发之六 表单权限与流程的权限控制
在设计工作流系统的时候,常常会碰到这样的情况: 同一张表单需要在流程的多个环节中处理,且各环节的处理情况不一致,有的节点可写,有的节点之可读。 例如,同一张报销单:员工填写报销单时,只能填写报销单主体信息和明细部分,其它信息不可见; 经理审批时,只能填写审核结果和审核意见,报销单主体和明细部分只能查看; 财务审批时转载 2016-10-14 19:01:01 · 3800 阅读 · 0 评论 -
工作流管理系统开发之五 开源osworkflow之用户系统改造
前言: osworkflow是个开源的工作流引擎,采用的是有限状态机的模型。内置有osuser这个用户系统,来处理用户权限相关的部分。但是功能很弱,只有用户表,用户组表,即简单的将用户划分给用户组。在定义流程的时候,可以将权限处理给一个具体的用户,也可以给一个用户组。 缺点:功能太过简单,不利于扩展,也不利于和用户系统集成,还没有开源的源代码。 改造方转载 2016-10-14 18:57:54 · 998 阅读 · 0 评论 -
工作流管理系统开发之四 自定义表单
在开发工作流管理系统时,很多人只重视流程引擎,流程模型的建立,而忽略了自定义表单工具。自定义表单工具是实现独立业务模块的可视化编辑工具,业务模块可以通过这种工具编辑生成。如果单纯从流程实现来说,确实自定义表单不是重点,流程实现了,可以挂接上表单就可以了。至于表单业务模块,可以是表单工具生成的,也可以是代码编写的表单,总之能用代码来实现的是最灵活的。 但实际上流程的每一个步骤的业务数转载 2016-10-14 18:12:33 · 5489 阅读 · 0 评论 -
工作流管理系统开发之三 可视化流程设计器
在工作流管理系统中,引擎的所有的活动,驱动,和流转,都是以流程定义为基础而展开的。流程定义文件是流程能运行的先决条件,同时流程定义文件又是工作流引擎的设计基础,引擎必须要能生成,解释和获取到任意流程定义节点的信息。业务流程建模就是将一个具体的业务流程系统用流程定义文件来描述。而生成这个流程定义文件的可视化编辑工具就是流程设计器。 一般来说,只要是足够熟悉流程定义的各个步骤和节点的转载 2016-10-14 18:05:10 · 4010 阅读 · 0 评论 -
工作流管理系统开发之一 工作流概念
工作流软件,顾名思义,就是业务信息数据在多个环节模块之间的流转。按照工作流管理联盟的定义,工作流指的是“业务过程的部分或全部在计算机应用环境下的自动化”。在实际应用过程中,为了实现对业务过程的工作流管理,需要对业务流程及其各个步骤之间业务规则的抽象,概括,做成一个统一通用的流程管理软件系统,这种软件系统就是工作流管理系统。 工作流管理系统的主要功能是通过计算机技术转载 2016-10-14 17:19:29 · 1660 阅读 · 0 评论 -
工作流管理系统开发之十三 流程与电子表单集成之事件实现篇
一般工作流管理系统分为,流程引擎,电子表单系统(自定义表单),流程设计器,流程管理监控平台等主要模块。流程引擎和电子表单系统应该是弱耦合的,各自都能独立的完成功能。 同时流程引擎和电子表单都设计好接口事件等,便于相互集成或和其它系统的集成。 一、流程引擎的事件接口: 流程定义描述时候,步骤节点,动作节点,动作结果节点,均设置有前置后置事件函数;当流程流转到这些转载 2016-10-14 19:10:05 · 1149 阅读 · 0 评论 -
工作流管理系统开发之十五 流程变量与表达式
工作流系统和业务系统的结合,不仅仅是表之间的关联(即流程实例id和业务数据的关联),还有很多变量的关联。变量的关联表现在很多方面,通常都是在流程定义时,需要引入这些变量,辅助流程的定义。 如,流程在运行时,需要获取具体业务数据某个关键字段的值。 费用报销申请流程中,需要将用户的报销金额获取,流程按照报销金额的大小来决定是否需要2级审核。还有的需要获取流程上下文中的流程定转载 2016-10-14 19:15:42 · 1538 阅读 · 0 评论 -
工作流系统开发之二十四 如何构建支持多数据库的.net工作流系统
主流数据库有,sqlserver,oralce,db2,mysql。产品级的.net工作流系统必须要能支持这多种数据库,同时还需要能方便的扩展支持新的数据库。在做数据库操作方面,java和.net的各不一样,java是利用jdbc的一套类库来做数据库的读写。但.net的就比较多了,微软提供的就有oledb,sqlclent,oracleClient,odbc等,还有一些第三方提供的访问类。转载 2016-10-14 19:28:04 · 816 阅读 · 0 评论 -
工作流系统开发之二十三 图解工作流的基本路由方式
上一篇主要说明 dotnet工作流引擎的基本原理和引擎的基本元素。这篇主要以图解的方式说明工作流引擎的运转模型,路由方式。一个业务流程包含一序列的处理过程,以及他们的相互顺序关系,还包括过程的启动条件,过程循环,同时还会辅助一些相关的事件消息处理等。工作流引擎负责创建,定义,解释和运行业务流程,首先需要将业务流程的处理过程转化为流程的基本元素、基本节点,然后将业务处理过程之间的顺序转载 2016-10-14 19:27:05 · 3218 阅读 · 0 评论 -
工作流系统开发之二十二 dotnet版工作流引擎
工作流管理系统为实现流程的自动化,必须包含一个工作流引擎,工作流引擎负责流程的定义,解释和运转。流程引擎是对业务流程的一个抽象,因此工作流引擎的设计模型是决定流程功能的重中之重,将直接影像流程的各个环节。一套工作流管理系统还包含很多个必须要实现的部分,如:事件处理,任务处理,组织机构的适配,自定义表单等等。以及很多中国式的“动态会签,回退,自由流”等等变态需求。但抛开这些,只关注每个流程的转载 2016-10-14 19:25:44 · 3229 阅读 · 0 评论 -
工作流管理系统开发之二十一 巧用流程轨迹表主键ID
在工作流系统中,业务流程按流程引擎定义的模型规则,定义成流程的一个一个节点。当流程实例运行时,流转到流程的各个节点,通过执行动作之类的操作提交关联的业务表单,导向流程的下一个节点,同时修改流程实例的状态,达到流程的流转。流程实例每流转一次,都会将当前节点的信息写入一个历史轨迹表,同时将下一节点的信息写入当前步骤表。当流程实例流转多次后,根据历史轨迹表的记录,就能追踪到此流程实例的实际运行轨迹。转载 2016-10-14 19:24:00 · 1163 阅读 · 0 评论 -
工作流管理系统开发之二十 动态创建流程多分支节点
在工作流系统的实际应用中,经常会有根据流程实例的运行,动态的生成N个分支的情况,且每个分支又是一序列流程化的操作,待每个分支运行完成后,再汇集到一起,继续原来的主流程。 例如,当一个单据填写完成后,提交给审核部门,需要根据每张单据的情况,决定提交给几个部门审核,并且每个部门的审核是一系列流程化的操作,操作完成后,各个审核部门再汇集起来。这样就必须在流程实例运行时,根据预先定义好的单转载 2016-10-14 19:22:46 · 3841 阅读 · 0 评论 -
工作流管理系统开发之十九 工作流系统的事务处理
工作流系统的每个流程实例,从创建到结束,都有一个较长的过程。流程实例的执行过程可能立即执行,也可能较长时间的等候处理。当处理过程中出现异常或者故障时候,流程需要回滚,并保持流程和业务的同步回滚,不至于业务和流程不同步,或流程本身的轨迹发生紊乱。因此需要在工作流系统中引入事务处理机制。 事务的属性有四种Atomicity, Consistency, Isolation, Durabi转载 2016-10-14 19:21:35 · 1269 阅读 · 0 评论