![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工作流开发
文章平均质量分 74
iteye_5291
这个作者很懒,什么都没留下…
展开
-
web工作流管理系统开发之八 开源osworkflow之任务管理
前言:osworkflow的任务管理很简单,没有专门的任务表,也没有待办,已办,发出,处理任务等等。只有很简单的查询用户可处理的动作和已经处理过的历史步骤。(注意这里只是可处理的动作和已经处理过的历史步骤,都不是任务) 这显然距任务管理差很多很多。 改造方案: 增加任务表,记录任务的相关属性,可执行人,任务处理人,任务发出时间,完成时间等。 流程定...2009-10-16 10:39:24 · 327 阅读 · 0 评论 -
web工作流管理系统开发之九 最新升级的版本下载
web工作流管理系统,eworkflow自定义流程最新版本下载 流程代码下载:eworkflow.rar (有最新的demo版本了,这个删除鸟!) oracle数据库备份文件下载:eworkflow_oracle.rar 下载后解压sqlserver数据库备份文件下载:eformtest.rar 下载后解压 web工作流管理系统开发...原创 2009-11-10 16:31:12 · 135 阅读 · 0 评论 -
web工作流管理系统开发之十 数据库连接及事务设定
为了方便设置数据库连接和事务的一致,将所有数据库连接信息统一设置在fcconfig.xml文件中; fcconfig.xml的内容:<?xml version="1.0" encoding="utf-8"?><root> <datasources> <ds name="fhjtest" dbType="sqlserver&q2009-11-24 14:40:48 · 113 阅读 · 0 评论 -
web工作流管理系统开发之十一 流程数据与业务数据的交互
通常工作流系统在设计之初,都会明确的区分流程数据和业务数据。工作流引擎只关心流程数据,为实现工作流的流转,会为工作流引擎设计一套工作流的表结构,来辅助流程引擎的实现。 业务数据是千变万化的,为实现各自的业务,会设计一系列业务表。业务表,工作流系统是不关心的。 但是工作流数据和业务数据又是交互的关联的。 1. 流程和业务数据的基本关联:为了将业务数据和流程数据关联起来...2009-12-02 11:47:16 · 289 阅读 · 0 评论 -
web工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件
以前写过一篇 表单权限与流程的权限控制;文章,没有具体的去实现,实践证明,同一张表单在多流程节点中流转,是工作流和电子表单必须要处理的问题。 工作流系统和电子表单相结合,达到同一张表单在流程的各个节点中的权限不同。 例如一张表单包含,录入部分信息,审核部分信息; 当表单在录入的时候,需要将审核部分信息全部屏蔽;当上级审核时,录入部分的信息需要只读,只能填写审核部分;...原创 2009-12-26 19:48:03 · 168 阅读 · 0 评论 -
web工作流管理系统开发之十三 流程与电子表单集成之事件实现篇
一般工作流管理系统分为,流程引擎,电子表单系统(自定义表单),流程设计器,流程管理监控平台等主要模块。流程引擎和电子表单系统应该是弱耦合的,各自都能独立的完成功能。 同时流程引擎和电子表单都设计好接口事件等,便于相互集成或和其它系统的集成。 一、流程引擎的事件接口: 流程定义描述时候,步骤节点,动作节点,动作结果节点,均设置有前置后置事件函数;当流程流转到这些节点...原创 2009-12-27 14:33:30 · 171 阅读 · 0 评论 -
工作流系统开发之二十四 如何构建支持多数据库的.net工作流系统
主流数据库有,sqlserver,oralce,db2,mysql。产品级的.net工作流系统必须要能支持这多种数据库,同时还需要能方便的扩展支持新的数据库。在做数据库操作方面,java和.net的各不一样,java是利用jdbc的一套类库来做数据库的读写。但.net的就比较多了,微软提供的就有oledb,sqlclent,oracleClient,odbc等,还有一些第三方提供的访问类。所以...2010-08-13 15:04:21 · 85 阅读 · 0 评论 -
工作流系统之二十五 .net工作流系统开发体会
.net工作流系统开发体会公司的eworkflow自定义工作流系统,最初是开发了java版的。待java版的功能稳定后,就开始开发.net版的。java版的eworkflow工作流系统,我们没有依赖于任何框架,如struts,spring等,也没有用hibernate,ibatis等orm映射工具。在支持web方面也有一套自己的mvc框架,都是纯java的代码。因为工作流系统,比较注重的是工作...2010-08-22 12:08:32 · 79 阅读 · 0 评论 -
web工作流管理系统开发之十四 流程设计器属性页面之实现篇
在工作流管理系统中,可视化流程设计器是必须要实现的。流程引擎可以是默默的运行,但流程设计器就必须要展现出来。所以界面的美观,操作简便易用,是必须要考虑的问题。 流程设计器,主要完成流程定义文件的建立和编辑,可视化的完成流程中各节点信息的增删改,并图形化的方式展现出一个业务流程。所以流程设计器需要完成基本的节点元素的创建,删除,移动,拖拽,连线等等,以及基本的undo,redo,编...原创 2010-01-12 17:26:08 · 129 阅读 · 0 评论 -
web工作流管理系统开发之十五 流程变量与表达式
工作流系统和业务系统的结合,不仅仅是表之间的关联(即流程实例id和业务数据的关联),还有很多变量的关联。变量的关联表现在很多方面,通常都是在流程定义时,需要引入这些变量,辅助流程的定义。 如,流程在运行时,需要获取具体业务数据某个关键字段的值。 费用报销申请流程中,需要将用户的报销金额获取,流程按照报销金额的大小来决定是否需要2级审核。还有的需要获取流程上下文中的流程定义信息,...原创 2010-01-22 11:33:42 · 108 阅读 · 0 评论 -
工作流系统之二十六 .net工作流系统之扩展性
.net工作流系统之扩展性最近为用户做工作流实施时,都无一例外的提出工作流系统的扩展性问题。事件一:eworkflow工作流系统预置了一些系统的条件,前置后置函数等。如果这些不能满足业务需要,用户需要定制自己的业务规则,业务过程,该如何做?解决方案:eworkflow系统预置了很多系统的条件类,前置后置函数类。简单一些的业务规则,可以用自定义脚本,写个表达式来实现。 如条件类的:判...2010-09-16 11:36:34 · 94 阅读 · 0 评论 -
工作流系统之二十七 .net工作流系统集成自定义表单
.net工作流系统集成自定义表单工作流系统一般都包含工作流引擎,工作流引擎是对业务流程的抽象,是实现流程自动化的微内核,利用工作流引擎的基本元素能搭建出各种各样的流程,但仅限于流程,不涉及到业务实现。流程的每个节点上可以挂接需要处理的业务模块,例如一个简单的报销流程,如下图:在填写报销单的流程节点上,就可以挂接上 填写报销单 这样一个业务模块;到审批的节点上,挂接 审批报销单模块。 ...2010-10-08 16:38:10 · 393 阅读 · 0 评论 -
工作流系统之四十三 集成应用系统
集成应用系统工作流软件系统做为一个开发组件,只实现了工作流引擎,工作流的建模,流程实例的创建,流转等等。不包含整体的业务系统,当集成到用户的应用系统时候,需要作为组件的方式集成。集成的方式有多种,一般来说,用户系统是首先要集成的,应用系统的一般都会有自己的用户系统,包含,用户,角色,权限等。这些不包含在工作流软件系统中,但是在工作流软件系统中又一定会用到,流程节点的执行权限等,都离开用户角...2011-05-20 11:59:34 · 203 阅读 · 1 评论 -
曾经迷茫的起点,多年后终于明白了
还记得多年前在做工作流管理中心的流程演示时,很迷茫如何用流程的功能模块来展现业务流程。业务流程的展现,传统的做法是按业务单据建立好业务表,再增加一些状态字段来控制单据的流转,达到完成业务流程。例如一个采购申请流程:按采购单建立好表结构字段;做好制定采购单的模块;买方制定好的单据接下来会在卖方的各个部门之间流转,就通过增加的状态字段来控制:1 申请状态;2 发送状态;3 仓库备货状态;4...2011-05-31 18:15:29 · 114 阅读 · 0 评论 -
web工作流管理系统开发之十六 主子流程参数传递的实现
在设计流程的时候,如果涉及到子流程,就会有主子流程间传递参数的过程。 例如,将主流程的执行人,传递给子流程,子流程根据主流程的执行人不同,会有不同的处理方式;又例如,采购流程中,卖方备货处理时,发现缺货时,需要启动缺货处理子流程。那么在缺货处理子流程发起时,需要将缺货产品的id号发送给子流程,子流程的业务模块,根据传递来的产品id号,处理缺货的过程。。。。。 在ewor...2010-03-16 16:59:02 · 118 阅读 · 0 评论 -
曾经迷茫的起点,多年后终于明白了(续)
上文写到流程如何与业务系统结合,曾经的三大迷茫点:迷茫一:是直接在菜单上挂接 采购申请流程,点击就打开执行采购单?还是做一个通用的模块,每次有新增的业务流程,就按业务流程名称列出来,点击一个就启动一个业务流程实例?迷茫二:是先初始化得到了流程实例id,再打开第一个节点关联的表单;还是先打开业务表单,业务数据提交时,再得到流程实例id呢?迷茫三:流程实例第二个节点的办理,第三个节点的...2011-06-10 10:50:17 · 111 阅读 · 0 评论 -
web工作流管理系统开发之一 工作流概念
曾经在2001年做CRM产品的时候,因为CRM产品的客户状态升迁,每个具体用户的升迁规则可能会不一样,技术主管说要集成一个工作流软件工具......,那是我第一次听说工作流。当时很不理解,这工作流软件如何能做到将业务流程定义进去呢?当然,那时候工作流软件工具还不成熟和完善,也或者我们也没有达到那个层次,后来终究还是没有用上工作流。 工作流软件,顾名思义,就是业务信息数据...2009-09-02 11:02:47 · 190 阅读 · 0 评论 -
web工作流管理系统开发之二 工作流引擎
工作流引擎,主要是实现业务流程的规则抽象,模型的建立,解释,以及为流程实例提供运行环境,并解释执行流程实例。 工作流引擎必须要包含一个工作流模型的设计,工作流模型就是对业务流程抽象的一个模型,是整个工作流引擎的基础。所以模型设计的好坏决定引擎的功能是否灵活,也决定了工作流管理系统从设计实现到运行实施等诸多环节。 在信息管理自动化的环境下,工作流模型必须采用简单、直观、又具...2009-09-03 09:17:21 · 237 阅读 · 0 评论 -
web工作流管理系统开发之三 可视化流程设计器
在工作流管理系统中,引擎的所有的活动,驱动,和流转,都是以流程定义为基础而展开的。流程定义文件是流程能运行的先决条件,同时流程定义文件又是工作流引擎的设计基础,引擎必须要能生成,解释和获取到任意流程定义节点的信息。业务流程建模就是将一个具体的业务流程系统用流程定义文件来描述。而生成这个流程定义文件的可视化编辑工具就是流程设计器。 一般来说,只要是足够熟悉流程定义的各...2009-09-04 09:51:21 · 862 阅读 · 0 评论 -
web工作流管理系统开发之四 集成工作流与自定义表单
在开发工作流管理系统时,很多人只重视流程引擎,流程模型的建立,而忽略了自定义表单工具。自定义表单工具是实现独立业务模块的可视化编辑工具,业务模块可以通过这种工具编辑生成。如果单纯从流程实现来说,确实自定义表单不是重点,流程实现了,可以挂接上表单就可以了。至于表单业务模块,可以是表单工具生成的,也可以是代码编写的表单,总之能用代码来实现的是最灵活的。 但实际上流程的每...2009-09-08 12:50:22 · 807 阅读 · 1 评论 -
web工作流管理系统开发之五 开源osworkflow之用户系统改造
前言: osworkflow是个开源的工作流引擎,采用的是有限状态机的模型。内置有osuser这个用户系统,来处理用户权限相关的部分。但是功能很弱,只有用户表,用户组表,即简单的将用户划分给用户组。在定义流程的时候,可以将权限处理给一个具体的用户,也可以给一个用户组。 缺点:功能太过简单,不利于扩展,也不利于和用户系统集成,还没有开源的源代码。 改造方案: ...2009-09-16 10:50:22 · 134 阅读 · 0 评论 -
工作流集成表单的过程
工作流引擎实现抽象流程的流转,业务的实现在表单模块中完成。如报销流程,填写报销单,审核报销单,都对应一个业务模块,在业务模块中实现将数据保存到数据库表中,实现业务数据的持久化。工作流引擎负责将这些业务模块串起来,实现业务流的流转。 曾经的业务系统,业务流的流转通常是采用对状态字段的控制来实现的。当报销单填写完成后,单据状态为1,经理审核的时候,就查询出单据状态为1的记录,做审核,审核完成...2011-07-06 17:40:00 · 418 阅读 · 0 评论 -
web工作流管理系统开发之六 表单权限与流程的权限控制
在设计工作流系统的时候,常常会碰到这样的情况:同一张表单需要在流程的多个环节中处理,且各环节的处理情况不一致,有的节点可写,有的节点之可读。例如,同一张报销单:员工填写报销单时,只能填写报销单主体信息和明细部分,其它信息不可见; 经理审批时,只能填写审核结果和审核意见,报销单主体和明细部分只能查看; 财务审批时,报销单主体明细和经理审核信息都只能查看...2009-09-21 17:01:57 · 289 阅读 · 0 评论 -
web工作流管理系统开发之七 最新修改的版本下载
eworkflow自定义工作流系统,流程定义文件,采用的是xml格式,在设计之初,使用了dtd文件来约束xml文档的内容。开发的时候,采用的是resin3来发布,对dtd格式的校验不是很严格。 后来测试的时候,用tomcat4发布,发现对dtd文件的校验要严格一些,所以去掉了xml流程定义文件里面的dtd文件。但是后台java代码中仍然做了dtd的校验。因为没有读取到dtd文件,校验也...2009-10-13 10:51:06 · 89 阅读 · 0 评论 -
表单中权限设置 VS 流程节点中权限设置
权限设置通常分为模块级别的权限设置,原子操作的权限设置,记录级别的权限设置。 模块级别的权限设置很简单,某个人或某个角色对没个模块有操作权限,要么就没有操作权限;原子操作的权限设置,是指对页面的控件的操作权限,某个用户或某个角色对某个控件有操作权限,或没有操作权限。记录级别的权限设置,通常也指数据的权限控制,某人或某角色对某些记录有查看权限,或对某个字段没有查看更新等操作权限。 ...2011-07-20 18:02:53 · 178 阅读 · 0 评论 -
web工作流管理系统开发之十七 任务管理
在很多办公管理系统的流程中,关于任务的分配和管理很复杂,下面列几种常见的任务管理方式:1、竞争型任务 将任务分配给一组具有相同权限的人处理,谁先选择处理就锁定为谁处理。 2、直接指派型 将任务直接指派给具体的人处理。 3、动态会签型 根据预先设定好的任务执行人范围,生成他们的处理工单,必须都处理完成了,任务才能完成。也可以根据预先设置好的会签百分比来判断任务是否完成。 ...2010-04-22 16:09:55 · 185 阅读 · 0 评论 -
web工作流管理系统开发之十八 工作流会签的相关实现
在工作流系统中,单步会签,多部门会签,会签百分比,加签,减签等等这些是必备的功能。尤其在办公管理的审批流程中,经常会用到这些。例如单步会签,在流程的某个环节需要多个人同时办理,不分先后次序的签署意见等。多部门会签,流程运行到某个环节需要多个部门的人同时办理,各部门不分先后次序的发表审批意见等。会签百分比,流程运行到某个环节需要多个人协助同时处理,但是只需要80%的人处理过,就可以通过了...2010-04-23 17:15:17 · 195 阅读 · 0 评论 -
工作流软件中的那些事
对接口编程,为变化而设计,是面向对象编程的基本原则。工作流软件产品中的流程引擎的实现,主要是采用面向对象的设计原理。 工作流引擎负责对业务流程的抽象,对业务流程建模,以及业务流程的流转。在流程引擎中会设计一些基本的赋予一定意义的节点,组合这些节点给业务流程建模。 流程引擎负责解释这些节点,并通过面向对象的编程方式,每个节点对应一个类,节点的属性和方法均在类里面有所体现,表现为类...2011-08-07 16:29:15 · 122 阅读 · 0 评论 -
工作流系统之二十八 工作流系统实例演练
工作流系统实例演练有了工作流引擎,工作流设计器,工作流管理平台,自定义表单,然后业务流程确定之后,就可以快速的做好能运行的流程了。首先业务要确定,包括业务细节部分。以一个 问题跟踪流程为例,实战演练一下,如何快速的搭建一个可以运行的业务流程。业务需求:用户在使用 我们公司的产品时,经常会遇到一些问题,有的是不会使用的问题,有的是误解,有的是bug,也有的是对产品的建议等等。我们拟收集这...2010-11-09 16:11:11 · 90 阅读 · 0 评论 -
web工作流管理系统开发之十九 工作流系统的事务处理
工作流系统的每个流程实例,从创建到结束,都有一个较长的过程。流程实例的执行过程可能立即执行,也可能较长时间的等候处理。当处理过程中出现异常或者故障时候,流程需要回滚,并保持流程和业务的同步回滚,不至于业务和流程不同步,或流程本身的轨迹发生紊乱。因此需要在工作流系统中引入事务处理机制。 事务的属性有四种Atomicity, Consistency, Isolation, Dura...2010-05-28 17:14:08 · 149 阅读 · 0 评论 -
web工作流管理系统开发之二十 动态创建流程多分支节点
在工作流系统的实际应用中,经常会有根据流程实例的运行,动态的生成N个分支的情况,且每个分支又是一序列流程化的操作,待每个分支运行完成后,再汇集到一起,继续原来的主流程。 例如,当一个单据填写完成后,提交给审核部门,需要根据每张单据的情况,决定提交给几个部门审核,并且每个部门的审核是一系列流程化的操作,操作完成后,各个审核部门再汇集起来。这样就必须在流程实例运行时,根据预先定义好...2010-05-30 18:47:24 · 251 阅读 · 0 评论 -
工作流系统之二十九 详解工作流实例的一次流转
详解工作流实例的一次流转 通常在利用流程设计器给业务流程建模之后,会生成一个流程描述的xml文件,业务流程的每个环节步骤,需要执行的操作,自动的,手动的等等信息,都被描述在这个流程建模的xml文件中。xml文件的内容,是一些规则的预先定义的抽象的节点信息,流程引擎负责这些节点的定义,创建,解释,定位等等,业务流程利用这些节点建模。建模完成的业务流程,挂接上业务表单后,就可以直接运行业务流程...2010-12-09 17:14:46 · 230 阅读 · 0 评论 -
web工作流管理系统开发之二十一 巧用流程轨迹主键id
在工作流系统中,业务流程按流程引擎定义的模型规则,定义成流程的一个一个节点。当流程实例运行时,流转到流程的各个节点,通过执行动作之类的操作提交关联的业务表单,导向流程的下一个节点,同时修改流程实例的状态,达到流程的流转。流程实例每流转一次,都会将当前节点的信息写入一个历史轨迹表,同时将下一节点的信息写入当前步骤表。当流程实例流转多次后,根据历史轨迹表的记录,就能追踪到此流程实例的实际运...2010-06-07 17:09:22 · 122 阅读 · 0 评论 -
流程实例运行轨迹的运用
运用工作流系统之后,流程的每次流转每次执行都会被记录下来,直到流程结束。这些被记录下来的记录就是流程实例的运行轨迹。运行轨迹的每条记录都会有一个主键id,用于唯一标识这条记录,这个主键id,就是流程实例轨迹id。 每个流程实例都有自己的运行轨迹,这个运行轨迹可以用列表也可以用图形的方式来展现。流程实例的监控,大多是监控这个流程运行的轨迹。通过二次加工和定制开发,或再加上定时器的...2011-12-19 11:26:10 · 442 阅读 · 0 评论 -
工作流系统之轨迹备注
最近在很多B2C的网站采购的时候,对每张订单,都多了一个订单跟踪 这样的功能,点击打开,是轨迹的文字描述和简单的图例显示,使对订单的跟踪一目了然: 这个文字描述的轨迹备注很人性化,呵呵,因此考虑在工作流系统中增加文字描述的轨迹跟踪记录。 工作流系统的每个流程实例在运行的时候,流程引擎都会为其记录运行的轨迹过程。引擎的api函数中,通常会提供获取流程轨迹的api函...2011-09-15 16:30:31 · 143 阅读 · 0 评论 -
用子流程来分解大流程
企业的业务处理过程如果简单,不繁琐,几步就处理完成了的,不会考虑上工作流系统。如果处理过程繁杂,处理步骤很多,涉及到很多工序,而且处理时间很长,就必须用工作流系统了。统一管理,统一运行,无论处理的过程以及路由如何繁杂,这都是工作流系统最擅长的了。并且后续的维护、修改、变更也能快速的相应。这些是用硬编码的方式来实现无法比拟的。 企业选用工作流系统,还有一种情况,当企业的业务处理种类很多,...2012-01-11 12:06:25 · 303 阅读 · 0 评论 -
流程数据和业务数据的交互
首先,业务表要和流程关联起来,必需在业务主表中增加wf_id字段,存流程实例id.例如,请假流程,请假单就是业务主表。报销流程,报销单主表,就是业务主表,报销明细子表,只要和报销单主表关联。其次,在给业务流程建模的时候,需要知道此业务流程操作的主业务表,业务表的id主键。流程实例启动的时候,将此信息生成到流程实例表中。这样在业务表中,有流程实例id;在流程实例表中,有业务主表和主表的i...2011-09-21 16:04:53 · 368 阅读 · 0 评论 -
工作流系统之三十 流程的静态分支与动态分支
业务流程的流转过程中,经常会有需要并发处理的过程,即流程流转到下一步,同时产生多个当前需要处理的过程,这些过程不分先后处理顺序,只要都处理完成了,最后汇聚到一起,再接着主流程运行,就可以了。例如:一份报销单,填写完成后,同时启动财务部门审核和本部门的审核,这两部分的审核不分先后顺序,只要都完成后,再将结果返回给报销单填写人,继续下面的流转。这种的并行处理的过程,就需要流程引擎支持分支和聚合。分...2011-01-19 12:02:29 · 175 阅读 · 0 评论 -
工作流系统之三十一 回退流的实现
在流程建模的时候,定义好了返回的线路,这种严格来说,不是回退流。例如,审核不通过,则返回重新填写,这种只是条件路由。工作流的回退流,是流程实例在流转的过程中,可以回退到运行轨迹的任意步骤,同时还可以辅助一些业务补偿方法,使得回退时候的环境和原来执行时候的环境一样。所以回退流,和流程引擎支持的正常的路由方式是不一样的,甚至是反流程建模的方式,流程建模就是把业务流程的各业务处理过程按一定的流转方式...2011-01-19 17:27:41 · 142 阅读 · 0 评论 -
工作流系统之三十二 设计模式在工作流系统开发中的运用
GoF四人组一共介绍了23种面向对象的设置模式,为每一种特定的实现取了一个名字,根据模式的应用目的不同,将他们分为3类,创建型、结构性和行为型。面向对象设计三原则:优先使用组合针对接口编程为变化而设计设计模式不是万能的,熟悉了这些模式,灵活运用它,并且不局限于设计模式,构架出适合自己的设计才是最重要的。在工作流系统的开发中,后台的类是纯面向对象的方式实现的,因此少不了设计模式的运用:单...2011-01-24 18:00:54 · 246 阅读 · 0 评论