工作流管理系统开发之十三 流程与电子表单集成之事件实现篇

转载 2016年10月14日 19:10:05

一般工作流管理系统分为,流程引擎,电子表单系统(自定义表单),流程设计器,流程管理监控平台等主要模块。流程引擎和电子表单系统应该是弱耦合的,各自都能独立的完成功能。

 

同时流程引擎和电子表单都设计好接口事件等,便于相互集成或和其它系统的集成。

 

 

一、流程引擎的事件接口:

 

流程定义描述时候,步骤节点,动作节点,动作结果节点,均设置有前置后置事件函数;

当流程流转到这些节点时,会触发节点的前置事件函数;

当离开节点时,会触发后置事件;

 

注:但是流程引擎驱动电子表单不是用事件接口的方式来实现:流程引擎的动作节点中有个view属性,挂接表单的url,当流程运行到此动作节点时,即读出view属性的url,打开并运行此表单。此表单可以是eform自定义工具定义的表单,也可以是用户自主开发的jsp页面等。

 

 

节点的前置后置事件函数:

 

所有的前置后置函数都统一实现一个接口FunctionProvider

 FunctionProvider.java接口,只有一个方法execute,所有实现此接口的类,都需要实现这个方法。

 

public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException;

 

Map transientVars:流程上下文信息可以从此map中获得;

Map args :节点定义时候的参数可以从此map中获得;

PropertySet ps:流程实例中的持久化变量从此获得。

 

 

条件节点的判断函数接口:

流程引擎的动作结果中可以定义条件,工作流引擎定义了一些内置的条件判断,也可以通过实现Condition.java接口,扩展出一些自定义的条件判断函数。

 

Condition.java接口中只有一个方法,所有实现此接口的条件函数都必须实现此方法:

 

public boolean passesCondition(Map transientVars, Map args, PropertySet ps) throws WorkflowException;

 

Map transientVars:流程上下文信息可以从此map中获得;

Map args :节点定义时候的参数可以从此map中获得;

PropertySet ps:流程实例中的持久化变量从此获得。

 

在条件节点定义的时候,引入此条件判断函数,在流程运行的时候,引擎中就执行自定义函数中的passesCondition()函数,返回真假结果。

 

 

 

二、电子表单的事件接口:

所有电子表单的事件接口类:

 

 所有的事件注册的类:



 
 此类负责注册前置后置事件类,并利用反射实例化前置后置事件类。

 

例如 电子表单的保存前置后置事件,先注册在此类中,cn.com.fcsoft.eworkflow.WorkflowDoAction.java类为的电子表单保存后执行的事件,此类负责在电子表单保存后,继续执行流程的递进。

 

所有电子表单中的事件前置后置函数均实现EventProvider接口,定义的类均在EventResolver类内注册,利用反射机制,在需要触发的地方得到类的实例,执行execute()方法,执行自定义的事件功能。

相关文章推荐

工作流管理系统开发之十五 流程变量与表达式

工作流系统和业务系统的结合,不仅仅是表之间的关联(即流程实例id和业务数据的关联),还有很多变量的关联。 变量的关联表现在很多方面,通常都是在流程定义时,需要引入这些变量,辅助流程的定义。  ...

工作流管理系统开发之十四 流程设计器属性页面之实现篇

在工作流管理系统中,可视化流程设计器是必须要实现的。 流程引擎可以是默默的运行,但流程设计器就必须要展现出来。所以界面的美观,操作简便易用,是必须要考虑的问题。   流程设计器,...

工作流管理系统开发之十六 主子流程参数传递的实现

在设计流程的时候,如果涉及到子流程,就会有主子流程间传递参数的过程。  例如,将主流程的执行人,传递给子流程,子流程根据主流程的执行人不同,会有不同的处理方式; 又例如,采购流程中,卖方备...

工作流管理系统开发之十一 流程数据与业务数据的交互

通常工作流系统在设计之初,都会明确的区分流程数据和业务数据。工作流引擎只关心流程数据,为实现工作流的流转,会为工作流引擎设计一套工作流的表结构,来辅助流程引擎的实现。 业务数据是千变万化的,为实...

web工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件

以前写过一篇  表单权限与流程的权限控制;文章,没有具体的去实现,实践证明,同一张表单在多流程节点中流转,是工作流和电子表单必须要处理的问题。   工作流系统和电子表单相结合,达到同一张表单在...

工作流管理系统开发之二十 动态创建流程多分支节点

在工作流系统的实际应用中,经常会有根据流程实例的运行,动态的生成N个分支的情况,且每个分支又是一序列流程化的操作,待每个分支运行完成后,再汇集到一起,继续原来的主流程。   例如,当一个单...

工作流管理系统开发之三 可视化流程设计器

在工作流管理系统中,引擎的所有的活动,驱动,和流转,都是以流程定义为基础而展开的。流程定义文件是流程能运行的先决条件,同时流程定义文件又是工作流引擎的设计基础,引擎必须要能生成,解释和获取到任意流程定...

web工作流管理系统开发之三 可视化流程设计器

在工作流管理系统中,引擎的所有的活动,驱动,和流转,都是以流程定义为基础而展开的。流程定义文件是流程能运行的先决条件,同时流程定义文件又是工作流引擎的设计基础,引擎必须要能生成,解释和获取到任意流程定...

工作流管理系统开发之六 表单权限与流程的权限控制

在设计工作流系统的时候,常常会碰到这样的情况:           同一张表单需要在流程的多个环节中处理,且各环节的处理情况不一致,有的节点可写,有的节点之可读。   例如,同一张报销...

web工作流管理系统开发之三 可视化流程设计器

在工作流管理系统中,引擎的所有的活动,驱动,和流转,都是以流程定义为基础而展开的。流程定义文件是流程能运行的先决条件,同时流程定义文件又是工作流引擎的设计基础,引擎必须要能生成,解释和获取到任意流程定...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工作流管理系统开发之十三 流程与电子表单集成之事件实现篇
举报原因:
原因补充:

(最多只允许输入30个字)