搜档网
当前位置:搜档网 › 工作流参考手册

工作流参考手册

工作流参考手册
工作流参考手册

第1章总体说明

在使用EOS WorkFlow的过程中,无论是开发者在“开发环境”中定义业务流程,还是“工作流引擎”控制流程流转,或是工作流参与者使用的“客户端”,再或者管理员使用的“管理与监控工具”,在这期间都会贯穿EOS Workflow 的5个主要对象——流程定义、活动定义、流程实例、活动实例以及工作项。

1.1 概念说明

流程定义:描述一个完整的业务过程,它由若干活动组成。包括了流程的基本信息、流程的开始和结束条件、组成的活动、活动间流转的规则、需要用户执行的工作任务(工作项)、可能调用的应用程序以及流程相关数据等信息。提交到流程定义库(WFProcessDefine)后会包含流程定义ID(流程定义的唯一标识)、流程定义名称、版本号、流程定义描述以及提交时间等描述。

活动定义:包含在流程定义之中,代表了一个相对独立的、逻辑的工作单元。一个活动代表一个需要由相关资源处理,或者由计算机处理的任务。其中定义了该活动的基本信息、执行该活动的参与者、时间限制、工作项信息、触发事件、启动策略等信息。

流程实例:当流程定义提交、发布到服务器以后,就可以启动该流程,启动时会创建流程定义的一个实例,叫流程实例。同一个流程定义可以有多个流程实例。每一个流程实例会被保存在流程实例库(WFProcessInst)中,包括流程实例ID(唯一标识)、流程实例名称、流程定义ID、流程实例的状态、该实例的启动者、启动时间、相关数据等信息。

活动实例:流程实例中的每个活动称为活动实例。每一个活动实例会被保存在活动实例库(WFActivityInst)中,包括活动实例ID(唯一标识)、活动实例的状态、所属的活动定义ID以及流程实例ID、时间限制、是否超时、创建时间等信息。

工作项:表示流程实例在流转过程中为完成某个活动实例所要参与者做的工作。一个活动实例可以对应一个或多个工作项。每个工作项会被保存在工作项库(WFWorkItem)中,包括工作项ID(唯一标识)、参与者ID、工作项的状态、所属的活动实例ID,流程实例ID等信息。

对象间的主要关系

流程定义和活动定义是在工作流开发阶段所确定;流程实例、活动实例和工作项则是在工作流运行阶段确定。

一个流程定义由多个活动定义组成。

一个流程定义可以创建多个流程实例。

一个流程实例包含多个活动实例,每个活动实例可以包含一个或多个工作项在一些特定的情况下(比如,一个活动要循环执行多次),一个活动定义会存在多个活动实例

具体如下图所示:

1.2 相关配置说明

以下是一些有用的配置说明,关于EOS工作流的具体配置说明请参考附录—〉配置文件wfconfig.xml。

工作流数据连结的配置在哪里

在config/eosconfig.xml文件中的module name="workflow" group name="database"中,指定了工作流的包名称和unitID。通过包名称及unitID 就可以从EOSEJBREGISTER表中获得数据库连接的DATASOURCE和IP地址。

带有工作流的EOS应用一定要采用数据源的方式(配置了数据源与连接池,且eosconfig.xml文件中single值为false)连接数据库,这样才能保证工作流和业务系统中事务的完整性。而且工作流调度引擎需要连接池来处理对数据库的并发控制,不能使用JDBC直接连接,否则在实际的使用中会出现并发控制错误。例如:使用EOS5.0,在工作流客户端的“我的任务->待执行的工作任务”执行一个待执行的工作项,该工作项的任务是调用一个人工活动去查一张表。如果在studio中启动项目server,功能一切正常,如果启动外部server,这个功能有时候正常,有时候出错,出错页面的截图和详细的log见附件!(注:出错是不确定的,有时候连续好几次都报错,有时候连续好几次都对!)在编写工作流的业务自动机(业务逻辑)中,相关的工作流操作(如:完成工作流节点,回退,设置工作流的相关数据等操作)和外部的业务操作都要并在一个transaction (事务)中。

工作流历史表的相关说明

EOS数据库中存在以WF_H开头的几张表,这是工作流历史表,分别对应了流程实例、活动项实例、工作项实例等等,业务上经常需要通过这些历史数据进行统计分析,至于什么时候进行记录备份,帮助文档中没有提到。

其实,在EOS系统配置文件wfconfig.xml中,定义了历史记录备份的策略,如下:

TIME_BASED

0:30,5:00

第2章建模过程

EOS Studio提供了可视化的开发环境来定义工作流业务流程模型,提供串行、分支、并行、聚合、循环、同步、子流程等丰富的流程逻辑结构,以及人工活动、自动活动、路由活动等多种活动类型,并可对这些活动属性进行定义,如参与者类型、触发事件、子流程属性、时间限制、回退动作、多工作项等,定义属性时可选择不同的数据类型、可灵活的扩展活动;可以通过表单数据为活动节点设置动态表单,其表单数据实现了动态表单的编辑,为日常工作中表单的定制提供了良好的设计工具。

2.1 流程定义

流程定义由流程属性、活动属性、连接线三部分构成。开发者可以根据实际中的业务需要设置流程上的基本属性、触发事件、时间限制以及流程启动者。对每一个具体的活动则可根据实际情况设定其运行的方式、参与者以及调用的应用等信息。完成流程定义的描述后即可提交、发布。提交后的流程将生成XML格式的流程定义文件,存入流程定义库中

2.1.1流程版本

版本号的产生方式如下:

1、开发人员指定

版本号的格式为:X.Y.Z (其中X>0;Y:0-99;Z:0-99) ,若指定的版本在流程定义库中不存在,则按指定的版本号生成新版本。若指定的版本在流程定义库中存在,则覆盖流程定义库中已有的版本。例如,某流程在流程定义库中存在1.1.1和1.2.3两个版本。若要提交第三个版本,开发人员指定新版本号1.1.2,那么该流程提交流程定义库的版本号即为1.1.2;若指定版本号为1.1.1,则该流程在提交流程定义库时会覆盖原有1.1.1版本的流程

2、自动生成新版本

获取流程定义库中同一流程的最大版本,并在此基础上"加1"作为当前流程

的版本号。

2.1.2触发事件

2.1.2.1 触发事件说明

流程触发事件表示按照流程定义中的设置流程实例在运行到某个阶段所需

要工作流引擎做某种类型的某个动作。“某个阶段”即为事件的触发时机,“某种类型”即为事件类型,“某个动作”即为事件的动作。

触发时机:表示指定的事件动作在何时触发。EOS WorkFlow提供了创建、动、结束、超时和提醒5个触发时机。

创建:表示指定的事件在流程实例创建时触发。此时流程实例实际上处于“待启动”的状态,并没有合适的活动实例产生。简言之,流程实例此时只是做好运行的准备,但未真正开始运行。例如:把田径比赛中的110米栏比作流程实例,那么创建时的流程实例就相当于已站在助跑器前的运动员们等待发令枪响的那一刻。

启动:表示指定的事件在流程实例启动时触发。此时,流程实例已真正处于运行状态了,流程实例已开始运行,各活动实例将会相继产生。例如:流程实例此时的状态若比作110米栏,就相当于运动员们听到发令枪响冲离起跑线的那一刻。

结束:表示指定的事件在流程实例结束时触发。即流程实例中所有的活动实例均已完成时触发。

超时:表示指定的事件在流程实例超时时触发。例如:若流程的超时时间订为1天,那么定义的事件将在流程实例启动时开始计时,并在1天之后触发此事件。

提醒:表示指定的事件在流程实例指定的提醒时间触发。例如:若流程的提醒时间订为1小时,那么定义的事件将在流程实例启动时开始计时,并在超时前1小时触发此事件。

事件类型:标明事件动作的类型。EOS WorkFlow提供基于EOS平台的业务逻辑和运算逻辑两种类型。

事件动作:由开发人员根据具体的业务需求自行定义。可以是一个运算逻辑也可以是一个业务逻辑。

2.1.2.2 触发事件设置方法

【场景】

在流程“启动的同时,获取指定节点信息并放入该流程实例相关数据的指定节点下。如获取流程信息中创建者节点(WFContext/WFProcessInst/creator),放入相关数据区Node/creator下。

【分析】

通过【场景】的描述,我们可以采用流程触发事件的方式实现该需求。分析为:

1、“在流程启动的同时……”,表示触发的时机为启动,调用方式为同步。这里需要特别注意的是,调用方式同步和异步的区别。同步是指:以“同步”的方式调用触发事件,等待事件运行完成后,该流程才启动。同步是指:以“异步”的方式调用触发事件,该流程在启动完触发事件后就启动,而无需等待触发事件运行完成。

2、“获取指定节点信息”为事件动作,可以用业务逻辑来实现。触发事件中产生的数据还可以在业务逻辑中输出,这样就可以将这些数据直接设置为相关数据了。

3、要将步骤2中获取的信息放入该流程实例相关数据的指定节点下,具体可在事件参数中设置。

输入参数设置为WFContext,在各类触发事件以及回退事件中,WFContext

属于流程实例的相关数据区部分,这块数据区有固定的数据结构,具体请见:3.2.2流程实例数据区。触发事件的数据来源于相关数据区,WFContext是相关数据区中固有的一块区域信息,这些信息都放在Wfcontext节点下。其中,WFContext数据区内容是流程实例自身的信息,相关数据区的内容还有流程中产生的过程数据,即业务数据。

输出参数设置为creator,目标路径为Node/userID。在触发事件所执行的业务逻辑中会产生一个crator的节点,把这个节点放入到相关数据区

Node/userID下。目标路径:表示将返回结果存入到流程实例相关数据中的什么位置。如该例中是将调用业务逻辑的返回结果输出到该流程相关数据的

Node/userID节点下。注意,目标路径仅对事件类型为业务逻辑的事件动作有效。

[图-设置触发事件的参数]

注意:

如果调用的事件类型为业务逻辑,而参数的数据类型为字符串常量或字符串变量,那么路径中填入的格式必须为:nodeName="value"或nodeName=‘value’(因为业务逻辑不支持直接传入常量或变量)

例如:要传入常量tiger到所调用的业务逻辑中,就必须做如下设置

2.1.3超时设置

如果想扩展和替换EOS工作流的超时和预警机制,可以根据工作流配置文件wfconfig.xml中的工作流引擎服务层相关配置

10000

………………..

参数timelimit_calculator流程和活动时间限制的计算方法类名称,该类必须实现接口com.primeton.eos.wf.service.api.TimeLimitCalculator。

配置为空或者不做配置,表示使用确省实现类:com.primeton.eos.wf.service.TimeLimitCalculatorDefault。

2.1.

3.1 时间限制说明

流程的时间限制表示流程启动后必须在多长时间内完成。在流程时间限制的设置中EOS WorkFlow为开发人员提供了指定具体的限制时间、超时是否进行邮件通知、是否在超时前进行提醒、是否发提醒通知等功能。

流程时间限制的计时:从流程启动时开始计时

流程时间限制的获取:直接指定、从相关数据获取(格式:3.5.20表示时限为3天5小时20分钟)

发送提醒邮件:EOS WorkFlow可根据流程定义中的具体设置给流程启动者发提醒邮件,提醒他该流程还有多长时间将超时

发送超时邮件:EOS WorkFlow可根据流程定义中的具体设置给流程启动者发送超时邮件,告之他该流程已经超时

提醒时间必须小于指定的时间限制

EOS WORKFLOW判断流程或人工活动超时的原理

流程或人工活动的时间限制中设置的限制时间将写入表WFProcessInst或WFWorkItem的limitNum字段中,单位为毫秒,limitNumDesc是其描述字段;

finalTime是时间限制到达后的时间。EOS WorkFlow将当前时间与startTime

相减的结果与limitNum比较,一旦超出时间限制就将isTimeOut字段置为Y,表示超时;timeOutNum表示超时了多长时间,在流程结束时写入。如果设置了超时提醒,该字段可能出现负数,是未超时的表现,只有正数才表示超时的时间,timeOutNumDesc是其描述字段。

2.1.

3.2 时间设置说明

【描述】

设置流程时间限制包括指定时间限制的值、提醒时间的值、决定是否发送超时邮件或提醒邮件

【应用场景】

规定流程A必须在1天内完成,超时进行通知;并在超时前10小时发提醒通知【操作步骤】

1、双击流程A的编辑区,弹出属性设置窗口,点击时间限制选项卡

2、勾选启用时间限制

3、指定时间限制为:1天0小时0分钟

4、勾选是否按设置的时间限制进行超时通知。此处将会根据wfconfig.xml相关配置给流程启动者发送邮件。

5、指定提前0天10小时0分钟提醒

6、勾选是否按设置的提醒时间进行超时预警。此处将会根据wfconfig.xml相关配置给流程启动者发送邮件。

[图-设置流程时间限制1]

说明:

1、无论是超时通知的邮件还是提醒的邮件,收件人都是流程启动者

2、这些邮件的发件人,可根据具体情况在配置文件设置$Primeton HOME\eosserver\config目录下的wfconfig.xml设置,相关部分如下所示:

zll

zll

https://www.sodocs.net/doc/9c11752183.html,

25

zll@https://www.sodocs.net/doc/9c11752183.html,

zll

true

特别说明:EOS工作流超时提醒只提醒一次。流程实例一旦超时,就会触发相应的操作将流程实例中的WFProcessInst/isTimeOut节点设置为Y。如果想实现重复提醒功能,通常的做法是为流程设置超时的触发事件。在超时触发事件中注册一个定时器,定时扫描该流程实例是否完成,如果没有完成就执行发放邮件或者短信都通知的操作。

2.1.4流程启动者

流程启动者表示可以启动某个流程的组织、角色或人。EOS WorkFlow提供两种流程启动策略:任意人员启动和从组织机构树获取。这样做的目的主要是从实际工作中的安全性考虑,视流程的具体情况限定可以启动该流程的人员范围。

[图-流程启动者]

当流程实例运行的时候,可以在相关数据区的如下节点xpath找到流程启动者:

< creator >tiger

2.1.5流程定义特别说明

工作流的自动活动或触发事件调用带事务的业务逻辑的注意事项

因为工作流的事务控制和业务逻辑的事务控制是分开的,所以,当工作流的自动活动或触发事件调用了带事务控制的业务逻辑时,工作流引擎默认忽略业务逻辑中的事务,这样就存在一个问题:

业务逻辑中出现了异常,并通过异常线回滚,这时,业务数据提交不成功,但是,工作流引擎并没有接收到异常,它会继续往后走,最终就出现工作流事务和业务事务不一致的现象。

【解决方案和步骤】

建议业务逻辑中不要用异常线回退到回滚,让异常直接抛出,这样工作流引擎会接收到异常,进而做回滚!

【备注】

1)异常线不能随便使用,如果一定要用,最好设置返回值返回,最后转向出错页面;

2)使用异常线前还要注意BL方法是否会抛异常,因为不是所有的BL方法都会抛异常。

2.2 活动定义

EOS WorkFlow提供了六种类型的活动。开始活动、结束活动、人工活动、自动活动、子流程活动以及路由活动。

2.2.1设置活动基本信息

活动包括:人工活动、自动活动、子流程。

1)自动活动的基本信息设置如下:

?自动返回结果:

–“是”:表示执行动作的返回结果全部自动放入相关数据的根路径下。

–“否”:表示执行动作的返回结果将不会自动放入相关数据中去。此时,如要将返回结果中的某项返回到相关数据中,可在参数选项卡中设置。

–该项设置仅对调用类型是业务逻辑有效

?调用方式:

–“同步”:直到调用的执行动作运行完后当前自动活动才结束

–“异步”:当前自动活动在调用执行动作后就结束,而无需等待执行动作运行完

?结束方式:

–“自动”:调用完执行动作后,工作流引擎自动将当前自动活动结束–“人工:”调用完执行动作后,引擎不将当前自动活动结束,而是等待外部调用结束该活动

2)子流程的基本信息设置如下:

?调用方式:

–“同步”:以“同步”的方式调用子流程,等待子流程运行完成后,该子流程活动才结束

–“异步”:以“异步”的方式调用子流程,当前活动在启动完子流程后就结束,而无需等待子流程运行完成

?子流程:单击【选择…】按钮,从弹出窗口的资源树中选择子流程或直接输入子流程,填写规则为:构件包名.工作流构件名.业务流程名。如果调用的子流程需要输入或输出一些参数请在参数选项卡中设置

2.2.2聚合模式、分支模式

活动的“分支”与“聚合”模式在流程定义时设置,分别描述了活动在运行时何时被触发以及或个运行结束后,它的后继活动如何被触发。

2.2.2.1 聚合模式

聚合模式,表示该活动得以触发的方式。它包括“全部聚合(AND)”、“单一聚合(XOR)”以及“多路聚合(OR)”三种情况:

1.“全部聚合”型聚合模式

表示该活动必须等到它的所有前驱活动全部完成才可以触发。

2.“单一聚合”型聚合模式

表示当该活动的若干前驱活动中只要有一个满足条件的活动完成,该活动即可被触发。

3.“多路聚合”型聚合模式

表示该活动必须等到它的所有满足条件的前驱活动全部完成才可以触发。

满足条件的前驱活动包括:

1)它与该活动的连线是“默认值“;

2)它与该活动连线上条件为“true”;

3)多路聚合还需要特别说明的是:多路聚合不一定要设置默认连线,也就

是说一个多路聚合的全部连线都可以设置条件。

【示例】

1.“全部聚合”型聚合模式示例

[图-“全部聚合”型聚合模式]

如上图所示,“人工活动3”的“聚合模式(JoinMode)”设置为“全部聚合”,那么只有在它的前驱“人工活动”、“人工活动1”,“人工活动2”都完成后,“人工活动3”才可以运行。

2.“单一聚合”型聚合模式示例

[图-“单一聚合”型聚合模式]

如上所示,由于“人工活动3”的“聚合模式(JoinMode)”设置为“单一聚合”,那么根据上面的算法说明,当“人工活动”完成后,“人工活动3”

就可以运行了。而无需考虑“人工活动1”或“人工活动2”是否完成。

3.“多路聚合”型聚合模式示例

1)由前驱活动射出的连线上中有默认值

[图-“多路聚合”型聚合模式]

如上图所示,由于“人工活动3”的“聚合模式(JoinMode)”是“多路聚合”并且在处理的过程中“num==6”,那么根据上面的算法说明由于“人工活动”与“人工活动3”以及“人工活动1”与“人工活动3”的连线上的条件都满足,因此“人工活动3”在“人工活动”和“人工活动1”完成后被触发。

2)由前驱活动射出的连线上都设置条件

[图-“多路聚合”型聚合模式]

如上图所示,由于“活动E”的“聚合模式(JoinMode)”是“多路聚合”并且在处理的过程中“num==6”,那么根据上面的算法说明由于“活动B与“活动D”的射出的连线上的条件都满足,因此“活动B与“活动D”都完成后,活动E 才被触发。

2.2.2.2 分支模式

分支模式,表示该活动结束后,它的后继活动的触发情况。它包括“全部分支(AND)”、“单一分支(XOR)”以及“多路分支(OR)”三种情况:

1.“全部分支”型分支模式

表示该活动结束后它的所有后继活动将同时被触发。

2.“单一分支”型分支模式

如果该活动的分支模式为“单一分支”,那么引擎会根据由该活动“射出”

的连接线上的条件进行判断,决定该触发哪个后继活动。具体分为下面三种情况:

1)满足条件的连接线所指的活动被触发;

2)如果有若干个连接线上的条件都满足,那么比较连接线上的优先级,

优先级高的那条连接线所指的活动将被触发;

3)如果连接线上的条件都不满足,那么取“默认值”的那条连接线所

指的活动将被触发。

[注]活动的“分支模式”为“单一分支”时,由它射出的连接线有且只有一条线的取值是“默认值”。

3.“多路分支”型分支模式

如果该活动的分支模式为“多路分支”,那么引擎会根据由该活动“射出”

的连接线上的条件进行判断,决定触发哪个或哪些后继活动。具体分为下面二种情况:

1)如果连接线上取“默认值”,那么由此连接线所指的后继活动会被触发;

2)如果连接线上的条件满足,那么由此连接线所指的后继活动会被触发。

3)多路分支还需要特别说明的是:多路分支不一定要设置默认连线,也就

是说一个多路分支的全部连线都可以设置条件。

【示例】

1.“全部分支”型分支模式示例

[图-“全部分支”型分支模式]

如上图所示,由于A活动的分支模式是“全部分支”,那么当A活动完成后它后继的所有活动(B、C、D)将同时被触发。

2.“单一分支”型分支模式示例

1)由该活动射出的连线上只有一个满足条件时

[图-“单一分支”型分支模式1]

如图所示,由于“A”活动的分支模式是“单一分支”并且在处理的过程中“num==6”,所以由“A”射出的连接线上只有“num > 5”满足

条件,因此“B”活动满足条件被触发。

2)由该活动射出的连线上有若干个满足条件时

[图-“单一分支”型分支模式2]

如上图所示,由于“A”活动的分支模式是“单一分支”并且在处理的过程中“num==1”,尽管由A指向B和C的两条分支都满足条件,

但指向B的优先级大于指向C的优先级,因此“B”活动被触发。

3)由该活动射出的连线上没有一个满足条件时

[图-“单一分支”型分支模式3]

如上图所示,由于“A”活动的分支模式是“单一分支”并且在处理的

过程中“num==2”,那么由“A”射出的连接线上没有满足条件的,因

此“D”活动被缺省触发。

3.“多路分支”型分支模式示例

1)由活动射出的连线上中有默认值

[图-“多路分支”型分支模式]

如上图所示,由于“开始活动”的分支模式是“多路分支”并且在处理的过程中“num==6”,那么根据上面的算法说明,由“开始活动”射出的连接线上为“默认值“所指的后继活动“人工活动”一定会被触发;又由于满足“num>5”的条件所以“人工活动1”也会被触发

2)由活动射出的连线上中没有默认值,全部设置条件

如上图所示,由于“开始活动”的“分支模式”是“多路分支”并且在处理的过程中“num==6”,那么根据上面的算法说明由于射向“活动B与“活动D”的连线上的条件都满足,因此“活动B与“活动D”在开始活动结束后被触发。

2.2.3参与者设置

活动参与者实际上是指在流程实例运行过程中,流程实例“流转”至此时该活动实例所对应的工作项有哪些人可以执行。在流程定义时设置活动的参与者实际上是圈定流程实例运行至此时可以执行该活动实例所对应工作项的人员范围,可以是机构、角色或人。

EOS WorkFlow提供了4种可以获取参与者的方式:

组织机构与角色:参与者由开发人员从机构树中获取

–只选择一人:表示该活动所对应的工作项直接分配给该人处理

––超过一人:表示该活动所对应的工作项由这些人中的某个人以“领取”的方式处理

虚拟岗位(机构+角色):表示在不设置岗位的情况下,由部门+角色共同决定一个人工活动的参与者。

流程启动者:表示活动参与者为该流程的启动者

活动执行者:表示活动参与者为某个已完成的活动实例所对应工作项的执行者从相关数据获取:表示活动参与者由相关数据指定。由相关数据获取参与者的规则详见从相关数据获取参与者

从规则逻辑获取:表示活动参与者由某个规则逻辑的返回值确定。由规则逻辑获取参与者的规则详见从规则逻辑获取参与者

特别说明:如果要改写组织机构权限并在参与者设置的时候显示新的组织机构树,具体操作请参见知识库文档:组织机构与工作流集成方案.doc

2.2.

3.1 虚拟岗位(机构+角色)设置参与者

-图通过机构+角色实现虚拟岗位设置参与者

用角色+机构的方式设置参与者需要特别注意的是,在该活动激活以前一定要将上图中机构变量路径设置到相关数据区中。

此外,还有一种方法设置一组机构:把多个机构写成如下格式:

1

2

这样机构变量路径xpath写成:list/org/id即可。这样,工作流引擎也会找到多个机构id,从而实现设置一组机构+角色的要求。如下图所示:

图-设置一组机构变量

2.2.

3.2 从相关数据区设置参与者

1)从相关数据获得一个具体的参与者

【算法说明】

从相关数据的XPATH中,直接指定一个参与者。

注:这种方式获得的参与者只能是个人。相关数据必须满足下面的结构。

tiger

2)从相关数据获得某一类型的参与者(指定一个或一组人员)

【算法说明】

从相关数据的XPATH中,获得某一类型的参与者。可以是一个人,也可以是某一角色或某一机构的一组人。相关数据必须满足下面的结构。

工作流引擎讲解

什么是工作流引擎,工作流引擎有什么作用,为什么需要工作流管理系统,在这里我们主要研究它的好处,你想要理解它的好处,就得知道不使用它会带来什么样的坏处。 现在我们来讲工作流,什么是工作流?所谓的工作流就是通常所说的业务流程,那么所谓的业务流程换句话来讲就是多个人在一起去完成一件事情。这就可以称之为工作流。流程的本质就是一个参与者参与到一个过程里面来 那么现在我们就想为什么需要工作流管理系统,工作流管理系统能给我们带来什么好处。我们就从这个角度出发来了解JBPM 工作流引擎 下面我们就来看关于为什么需要工作流管理系统,以及它给我们带来的好处。 实际上它带来的好处就是使某些容易变化的东西抽象出去,我们能够通过某种方式改变它,然后你就可以对你的某些核心部分不需要做什么变动 现在就通过一个小例子来讲这个工作流引擎到底是一个什么东西 举个请假流程的例子 一个请假的过程 重点讲解UML 里面的内容,确定UML 里面流程图的讲解顺序 请假流程 现在只看左边的内容,右边的后面再讲,我是方便讲解就将这点东西放到这个空白的地方 一个简单的流程图Main 模拟出请假的过程

对提交请假单进行分析 用一个用户来表示普通用户和审批者,只不过他们的权限不同,他们都能够登录到这个系统 现在我们来看用户和请假单,分析他们之间的关系,用户和请假单之间的联系有请假,用户填了一个请假单就创建了一个请假单对象,他们之该是一对多的关系。因为某一个用户可以请多次假 对吧(其实一般是一个请假单对应一个请假者,这个需求就应该得到客户的确定,客户说了算)那么用户和这个请假单之间还有没有其他联系? 接下来是提交请假单。我首先将请假单提交给张三,那么张三就能够看到这个请假单,如果用户将请假单提交给张三,那么就可以在张三和请假单之间建立一个待审关系 他们之间的关系也是一对多的关系,因为张三可以同时审核几个请假单,就是这意思,一个请假单等待的用户是一个,从现在的需求来看。那么两者之间还有另外一个联系那就是已审,一个用户可以审批过多个请假单,请假单也可以被多个用户审批 比如张三审批以后交给李四审批,李四审批以后交给王五审批,其实这个已审就是记录审批信息的,比如审批时间,审批意见,把它放在审批关联里边 这个就是一个基本的概念,了解这个概念之后我们就考虑它的设计,JBPM 实际上就是协助我们把这个请假单从一个用户手上转递到另一个用户手上。当把这个模型分析清楚了我们就要去实现它。 这里重点分析提交,怎样去提交,在SSH 架构体下,提交请假单这个业务逻辑,你可能就需要这样一个业务逻辑类,里边可能有这么一个方法专门来进行提交操作的,那么这个方法怎样设计,以及这个方法怎样去实现。了解这点你就可以了解JBPM 干什么的,能给我们带来什么好处 (用自己的话说明一下提交请假单的过程 <读一下那段伪代码>) 在这个过程里边写这些代码是比较麻烦的,现在还只是一个固定的流程,假设我现在在这里边变化一下 那么整个方案都要变动。 我现在希望有一个会签的功能 比如我现在要将这个这样的功能,把这个请假单同时提交给多个审批者审批。 那这个时候你就不能够在请假单中间增加一个外键, 把它整成审批者什么的,

慧正工作流系统使用入门简明教程

慧正工作流系统 设计器使用简明教程 目录 1.模块定制 (2) 1) 打开设计器 (2) 2) 新建模块 (2) 3) 创建数据表 (3) 4) 创建表单 (5) 5) 创建视图 (8) 6) 创建模块内部导航菜单 (13) 7) 添加应用菜单 (15) 8) 测试模块的增、删、改、查功能 (16) 9) 导出定制模块 (17) 10) 删除定制模块 (18) 11) 导入定制模块 (19) 2.定制工作流 (20) 1) 创建流程表单 (20) 2) 新建流程 (20) 3) 填写流程属性 (21) 4) 表单设置 (21) 5) 绘制流程图 (23) 6) 测试流程 (23) 7) 待办处理 (24) 8) 流程导出 (25) 9) 流程删除 (26) 10) 流程导入 (26)

1.模块定制 1)打开设计器 (登录时选择“设计端”,或登录后点击页面右上角的“设计”,均可进入设计器页面) 点击“应用设计” 2)新建模块 1.在这里点击鼠标“右键” 2.在弹出菜单点击 “新建模块”

在弹出的模块属性窗口进行如下操作: 3)创建数据表 1.模块名称录入“模块定制练习” 2. 模块分类录入“练习” 3.点击保存(弹出提示框选择OK) 4.关闭 1.点击“新建”

在弹出的“库表属性”页面,执行如下操作: 在“字段属性”页面执行如下操作:3.点击“字段属性”标签2.填写中文名称“练习表” 1.填写表名“tz_mytest” 1.点击“新增” 2.字段名录入“MYTXT” 3.数据类型选择“大文本” 4.中文名称录入“内容” 5.录入类型选择“大文本” 6.点击“确认” 7.点击“创建表”(弹出 提示框选择“是”) 8.点击“关闭”

Workflow Design 工作流设计

Toward Workflow Block Activity Patterns for Reuse in Workflow Design Lucinéia Heloisa Thom and Cirano Iochpe Federal University of Rio Grande do Sul, Brazil; Vinícius Amaral and Daniel Viero, iProcess, Brazil 1.I NTRODUCTION Research on both business process modeling and implementation issues re-lated to workflow technology have quickly increased over the last years. The most significant initiatives are in the field of standardization [1], [2], [4], specification [5] and workflow definition languages [6], [7], [3]. However, since it is a relatively new and still evolving technology, workflow design pre-sents some challenges, especially with respect to techniques that can en-force correctness as well as efficiency during both the requirements analysis and the modeling phase of the workflow project. Within this context, research on workflow patterns has attracted increasing attention mainly because of the advantages of reusing patterns [8], [9]. The most extensively studied are in the field of control/data flow patterns [10], [11] as well as resource and application–oriented patterns (12). Such pat-terns are being used not only in business/workflow process modeling but also in critical evaluations of workflow languages and workflow tools (13). However, a lot less research can be found relating workflow design to a set of recurrent business process “pieces” or “parts” that must be atomically exe-cuted by the workflow process (e.g., an activity request execution and a noti-fication activity). Although one can precisely characterize the semantics of such business process “pieces” [14], [15], [16] and they have to be recur-rently re-designed in practically every workflow modeling process, there is no known research relating these business process structures to workflow pat-terns. 1.1 Approach Our approach applies the concept of block activity to well-known business processes. An activity set is a self-contained set of activities and transitions [7]. Transitions in the set should refer only to activities in the same set and there should be no transitions into or out of the set. Activity sets can be modeled as block activities. The block execution starts at the first activity in the set and executes the next activities by following the partial order im-posed upon them by the transitions until an exit activity is reached. Work-flow execution then returns to the next activity following the block. In this paper, we apply the block activity concept in order to represent a set of business (sub-)process types (e.g., logistic, financial, information and de-cision) that we call “workflow block activity patterns”. These patterns are re-lated to a set of specific atomic structures that are frequently found in busi-ness processes and have already been identified in the literature [14], [15],

基于工作流引擎的系统框架设计开发

基于工作流引擎的系统框架设计开发 ——工作流引擎子系统 摘要 工作流就是一系列相互衔接、自动进行的业务活动或任务。工作流引擎是工作流管理系统的核心,它的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。 论文主要讲述了工作流引擎的基本功能及设计方法,介绍工作流引擎的基本原理,具体分析了工作流引擎所包含的内容,详细介绍了相关的信息模型和控制模型。系统采用关系结构的理念来设计工作流引擎,给出了用Microsoft Visual Studio 2005和Microsoft SQL Server2000实现系统的方法。论文中利用本工作流引擎构建系统能适应大多数业务流程的扭转,大大缩短常见信息系统的项目开发周期,提高效率。 关键词:工作流引擎;关键业务;关系

The design of information system frame based on workflow engine ---- The subsystem of workflow engine Abstract Workflow is a series of interlocking, automatic business activities or tasks. Workflow engine is the work flow management system in the core, and its main function is to define, implement and manage work flow through the support of computer technology as well as co-ordinate work flow process of working implementation and groups of information between members of interaction. The thesis has mainly described basic functions and design of the workflow engine, introduced the basic theories, and specifically analyzed the content included in the work flow and the details of the relevant information model and control model. The idea of relation structure has been used to design this system and the method to achieve the system function with Microsoft Visual Studio 2005 and Microsoft SQL Server2000 has been given out. Constructing system with the workflow engine can adapt to the majority of the business process reversing that significantly reduce the development cycle of the common information system and improve efficiency. Key words:Workflow engine; Critical business; Relationship

工作流技术方案

工作流技术方案

目录 1概述3 1.1工作流现状 (3) 1.2建设原则 (3) 1.3建设目标 (3) 1 (4) 2总体设计方案4 2 (4) 2.1业务架构设计 (4) 2.1.1业务功能设计 4 2.1.2业务模型设计 5 2.2总体架构设计 (6) 2.2.1工作流总体结构图 6 2.3技术架构设计 (7) 2.3.1展现层 7 2.3.2控制层 7 2.3.3业务逻辑层 7 2.3.4数据持久层 8 2.3.5缓存 8 3应用系统设计8 3 (8) 3.1流程定义 (8) 3.2流程管理和监控 (8) 3.3工作流引擎 (8) 3.4工作项列表 (9) 1 (9) 1.1 (9) 1.2 (9) 1.3 (9) 1 (9) 1.1 (9) 1.2 (9) 1.3 (9)

1概述 1.1工作流现状 工作流是实现企业业务过程建模、业务过程仿真、业务过程管理与集成,从而实现最终业务过程自动化化的核心技术。 传统的工作流管理系统缺乏柔性,不能及时响应变化和相互之间缺乏互操作的缺点不能满足这种复杂业务流程管理的需要。针对这种情况,提出工作流管理平台的实现方案,以便更好地对企业业务流程实行管理。 1.2建设原则 工作流管理平台的设计主要遵循实用性、稳定性、高效性、灵活性等原则: (1)稳定性原则:需要采用成熟的技术模型、稳定的软硬件产品、软件开发平台和工具。 (2)安全性原则:提供完整备份机制,提供安全的数据访问机制。 (3)友好性原则:考虑到平台将针对各个层面的用户群体,使用者的计算机水平参差不齐,所以需求平台提供的界面简便友好、操作方便。 (4)扩展性原则:系统设计应具有良好的可扩展性和升级能力,可以根据新的业务拓展,方便地追加新的模块,也可以根据运营的状况,自由地追加硬件,以实现对系统有效的负载均衡。 (5)快速开发原则:提供封装的开发构件,提供基本的系统管理模块,提供简洁的开发模板,能够满足各类业务需求的快速开发。 1.3建设目标 根据上述原则,工作流管理平台建设的主要建设目标为: (1)实现基于Jbpm的流程引擎的二次开发。 (2)实现图形化的流程定义工具和流程管理监控工具。 (3)实现工作项列表(包括待办事宜、已办事宜、历史事宜)的统一管理界面。 (4)实现在流程生命周期中应用系统对流程触发的动作的相关服务接口:工作流定义相关服务、工作流引擎相关服务、工作项列表相关服

activiti流程开发基本步骤详解

activiti流程开发指南 ?一、BPMN ?二、activiti主要接口 ?三、如何实现一个业务流程 ?四、如何管理所有流程与实例 ?五、开发流程 ?六、api 一、BPMN 1. 什么是BPMN 首先BPMN规范是由标准组织BPMI发布的.BPMN 1.0规范发布于2004年5月。此规范展示了BPMI组织两年多的努力成果。BPMN的主要目标就是要提供被所有业务用户理解的一套标记语言,包括业务分析者、软件开发者以及业务管理者与监察者。BPMN还将支持生成可执行的 BPEL4WS语言。所以,BPMN在业务流程设计与流程实现之间搭建了一条标准化的桥梁。 BPMN定义了业务流程图,其基于流程图技术,同时为创建业务流程操作的图形化模型进行了裁减。业务流程的模型就是图形化对象的网图,包括活动(也可以说工作)和定义操作顺序的流控制。 2. BPMN基础 业务流程图由一系列的图形化元素组成。这些元素简化了模型的开发,且业务分析者看上去非常熟悉。这些元素每个都有各自的特性,且与大多数的建模器类似。比如,活动是矩形,条件是菱形。应该强调的是:开发BPMN的动力就是为了在创建业务流程模型时提供一个简单的机制,同时又能够处理来自业务流程的复杂性。要处理这两个矛盾的需求的方法就是将标记的图形化方面组织分类为特定的类别。这里提供标记类别中的一小部分,以便业务流程图的读者可以简单地识别出元素的基本类型从而理解图形。以下是四种基本的类型: 1)流对象 2)连接对象 3)泳道

4)人工信息 BPMN2.0概要:https://www.sodocs.net/doc/9c11752183.html,/workclass/201206272.asp 二、activiti主要接口 ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine(); RuntimeService runtimeService = processEngine.getRuntimeService(); RepositoryService repositoryService = processEngine.getRepositoryService(); TaskService taskService = processEngine.getTaskService(); ManagementService managementService = processEngine.getManagementService(); IdentityService identityService = processEngine.getIdentityService(); HistoryService historyService = processEngine.getHistoryService(); FormService formService = processEngine.getFormService(); ProcessEngines.getDefaultProcessEngine()会在第一次调用时初始化并创建一个流程引擎,以后再调用就会返回相同的流程引擎。使用对应的方法可以创建和关闭所有流程引擎:ProcessEngines.init()和ProcessEngines.destroy()。 ProcessEngines会扫描所有activiti.cfg.xml和activiti-context.xml文件。对于activiti.cfg.xml文件,流程引擎会使用Activiti的经典方式构建: ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream (inputStream).buildProcessEngine(). 对于activiti-context.xml文件,流程引擎会使用Spring方法构建:先创建一个Spring的环境,然后通过环境获得流程引擎。

OA流程引擎总体设计方案(含初步表说明)

AO流程引擎总体设计方案 一、名词。 流程表:每设置一个新的流程时,都会设置流程相关的字段信息。设置后生成一张流程表。每按此流程进行一个办事流程时即是此表的一条记录(实例)。 流转单:即处理流程中的各个环节,如科员填表申报环节、科长审批环节等。每个流转单所需要的字段是从流程表中选出的字段。每个流转单实例即是根据选择的字段从流程表的实例记录中进行显示或操作。 二、流程设置 2.1 流程表设置 在设置流程时,根据其下流转单的情况设置好所要的所有字段信息。设置好后生成一张数据库表。并把流程名称,流程表名等信息记录到一个流程记录表里(这张表只用来记录流程表及流程对应的流程表名)。默认存在的字段应该有:流程实例名(如:2011年3月消防器材发放管理工作),流程状态,父流程表名,父流程实例id,父流程关联流转单编号,开始时间,结束时间等。 2.2流转单设置。 2.2.1流转单基础信息设置。 设置流转单名称,即流程在此环节时的名称(如科长审批); 设置流转单编号,编号应该是唯一性的; 设置流转单类型:一般流转单或子流程流转单或起始流转单; 2.2.2选择表单字段。 字段从流程表中字段进行选择。选择每个字段后, 要设置此字段的配置属性:是否只读、是否隐藏; 要设置此字段的验证属性:是否必填、验证方法(email验证、长度验证等); 要设置此字段对应的控件:HTML控件:文本框、文本域、密码框、下拉框、多选框、单选框、上传框。及对应的默认数据和备选数据。动态控件:如部门下拉框等。及对应默认数据。 要设置此字段的控件样式:高宽等。 根据字段的名称流程表名等信息对此字段设置一个字符串标识。 在设置字段过程中如果觉得字段不够,应该有操作可以再添加流程表字段。 2.2.3设置流转单显示模板。

财务流程审批系统v0.5

慧正财务审批系统方案 慧正“财务审批系统”是以财务部门在日常财会工作中的服务管理流程为核心,以预算控制及费用报销管理为基础,以实现财务信息化、财务业务一体化,事务管理网络化为目的,系统包括:员工报销管理、员工借款申请、投资申请、固定资产管理、采购申请几部分,为企业财务部门提供一个高效、规范的财务信息管理平台;系统大幅度削减提交、审批、处理、统计和查询等所需要的时间和精力,提升员工满意度,改善跨部门协作,提高工作效率。 该系统不仅实现与目前企业内部使用的SAP 系统的接口,而且可以通过邮件、手机短信等形式对责任人进行阶段提示,提高财务报销和流程审批响应效率。从而全面提高财务部门的工作效率,同时也提升审批透明度,降低企业的运营成本。 系统框架图: SAP 短信的接口

财务工作流审批系统是慧公司基于自主知识产权的开发平台Horizon BPM Suites平台(慧正工作流平台)开发完成的财务信息管理平台。 主要功能特点: 灵活的审批路径设置; 针对费用支出申请及借款申请分别定义审批流; 按申请人或申请部门灵活设置对应的审批流; 有权限的人员可对未完成审批的单据实际情况修改审批流 强大的权限控制; 可根据角色或操作员设置权限; 可设置多部门控制; 支持电子签名; 不同的操作员可设置不同的审批流。

员工报销管理:系统提供种类繁多的申请单、报销单等单据,用户可以在线、离线填写;用户权限的设置真正做到了权责分明,具有权限的用户可根据公司情况设置审批流程,系统提供灵活的审批权利移交及审批人替换功能,审批人可随时随地对单据进行审批;支付借款、报销款,并自动生成凭证,生成的凭证将上传到公司的财务系统;个人可以查询自己提交单据的审批情况,经理可以查询本部门及下级部门申请单、报销单的详细信息,并可以对费用性质进行统计及查询;

Activiti工作流入门详解完整教学教程

Activiti入门教程详解完整教程 1.A ctiviti介绍 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。 Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss JBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。 1.1工作流引擎 ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。 1.2BPMN 业务流程建模与标注(Business Process Model and Notation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)

2.准备环境 2.1Activiti软件环境 1)JDK1.6或者更高版本 2)支持的数据库有:h2,mysql,oracle,mysql,db2等 3)支持Activiti运行的jar包,可以通过maven依赖引入 4)开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本2.2安装流程设计器(eclipse插件) 1)打开Help →Install New Software →Add 输入Name: Activiti Designer Location: https://www.sodocs.net/doc/9c11752183.html,/designer/update/ 输入完成后,单击OK按钮等待下载完成后安装。 安装完成后在菜单选项中会出现Activiti的目录选项

原型设计及工作流实现总结

关于双鸭山市煤炭局信息化子系统原型设计及工作流实现总结 在近一个月的工作时间里,主要针对双鸭山市煤炭局信息化子系统进行了基本模块的概要需求分析,其中针对建设项目管理和生产技术管理模块进行了具体的需求分析并实现了此两个模块的原型。对详细需求分析的过程了解到实现建设项目及其它各种审批使用工作流实现较符合。对于工作流的使用进行了两方面的接触,一方面是使用.NET中的Workflow Foundation(简称WF)进行自行开发,另一方面是使用现在市场上已经成行的工作流配置产品。 使用WF实现工作流主要用到了三个类库System.Workflow.Runtime; System.Workflow.Activities; System.Workflow.Activities.Rules。其中System.Workflow.Runtime包含的类和接口用于控制工作流运行时引擎和工作流实例的执行。System.Workflow.Activities定义一些活动,可将这些活动添加到工作流,以便创建并运行工作过程的可执行表示形式。程序员也可以实现自定义的活动。System.Workflow.Activities.Rules中的类定义了组成规则的条件和操作。.Net FrameWork提供工作流持久化服务,对SQL数据库的持久化提供了完全的支持与实现,对于其它类型的数据库在完成持久化服务的时候要由程序员编程继承WorkflowPersistenceService 类来实现。 在使用WF进行编程时可分为业务逻辑实现、具体数据库访问、自定义活动三个部分,程序员在进行实现时无须对三个部分全部熟悉,只要针对具体的部分熟悉其它部分了解即可。比如对工作流的流程熟悉的程序员可以实现业务逻辑部分,这部分主要是根据用户的业务流进行绘制工作流,对工作流各活动进行配置相应的参数的关联即可。目前对于在VS开发过程中如何配置工作流的操作基本可以完成,但如何把VS中工作流制作模块移植到B/S页面中还未操作过。

工作流引擎平台解决方案

工作流引擎平台解决方案 工作流引擎平台在实际系统中的应用一般分为三个阶段,即模型建立阶段、模型实例化阶段和模型执行阶段。模型建立阶段利用工作流建模工具完成各种企业经营过程或者项目管理流程模型的建立,将企业的实际经营过程或项目管理流程转化为计算机可处理的工作流模型。模型的实例化阶段为每个过程设定运行所需的参数,并分配每个活动执行所需的资源(设备、人员等)。模型执行阶段完成经营过程的执行,在这个过程中重要的任务是完成人机交互和应用的执行,并对过程与活动的执行情况进行监控与跟踪 WorkFlow的设计理念是致力于企业的业务流程自动化解决方案,为企业的业务流程自动化以及企业流程再造提供坚实的基础平台,成为业界领先的企业业务流程自动化的基础平台产品以及企业流程再造的核心产品。有力的简化应用开发的步骤,降低应用开发的难度,提高应用开发的效率及灵活性,节约应用开发的成本,从而极大的提高应用开发的生产力。WorkFlow产品构成分为三块:模型定义工具、工作流引擎、客户端应用。模型定义工具提供图形化的过程定义工具,而工作流引擎则实现了工作流的后台驱动。后台工作流引擎以COM组件方式实现,为应用系统的集成提供了方便的编程接口。客户端应用是人机交互的界面、与业务系统的具体应用。 1.模型定义工具 Workflow建模工具以图形界面为建模人员提供了一个友好、方便的建模环境。一个工作流的定义包括模板和实例两个部分,模板用于描述工作流定义,用于工作流应用的设计阶段;实例是将模板定义用于特定工作流程时对模板的拷贝。这样做是为了在模板使用过程中对模板可随时进行修改而不影响已启动的流程。一个工作流程称为一个工作(Job),组成工作的每个执行单元称为活动(Activity),组成活动的更小单位称为任务(Task),活动的入口称为主表单(MasterForm)。每个工作都是由一系列具有逻辑关系的活动组成,这些逻辑关系构成活动的路由信息。因此,一个工作实际上可以看作是一系列具体工作和它们之间的逻辑关系构成的一个有机整体。每个工作都有一个创建者,他是启动此工作的人。每个工作可以有多个拥有者,拥有者具有撤销、挂起、强行终止工作的权力。每个活动都有一个拥有者,他是模板中定义的活动执行人,活动拥有者

04慧正工作流系统V6产品安装手册

慧正工作流系统V6.0 安装手册 2012年7月

目录 1工作流管理端应用部署.....................................................................................错误!未定义书签。 1.1数据库安装说明 (3) 1.1.1 Mysql版本安装 (3) 1.1.2 oracle版安装 (3) 1.1.3 SqlServer2008版安装 (4) 1.2管理应用部署 (4) 2.1 tomcat下安装 (4) 2.2 WebSphere下的安装 (7) 2.将引擎嵌入第三方JA V A应用...........................................................................错误!未定义书签。

1.数据库安装说明 1.1 Mysql版本安装 Mysql演示版包含了数据库,请按照演示版安装说明。本说明用于重新初始化安装产品mysql数据库环境。 需要MySQLServer5.1.24以上版本。 用客户端工具链接到mysql数据库,新建数据库,字符集选择utf8。 1.2 oracle版安装 第一步: 使用具有创建表空间权限的用户登录客户端工具(比如sqlplus、PL/SQL Devloper)连接数据库,执行如下脚本创建表空间(系统表空间、附件表空间)。注意表空间文件的路径要根据用户实际情况进行调整。 --************************************************** -- Name: horizon -- Purpose: 创建系统表空间(表空间文件路径根据实际情况修改) -- Deviser: -- Devistime: 2011-07-25 --************************************************** create tablespace horizon logging datafile '\oracle\product\10.2.0\oradata\orcl\horizon.dbf' size 50m autoextend on next 32m maxsize unlimited extent management local; --************************************************** -- Name: horizon_attachment -- Purpose: 创建附件表空间(表空间文件路径根据实际情况修改) -- Deviser: -- Devistime: 2011-07-25 --**************************************************

jBPM开发入门指南(1)

环境准备 1、安装JDK 所有 JAVA 开发第一个需要安装的,没什么好说的。记得把系统变量 JAVA_HOME 设上。 2、安装Ant Ant 是使用 jBPM 必须的一个工具。 jBPM 中的很多操作都要用到 Ant 。 安装方法: ( 1 )先下载:https://www.sodocs.net/doc/9c11752183.html,/dist/ant/binaries/,选一个如: apache-ant-1.6.5-bin.zip 。 ( 2 )解压到 D:\ant (当然其他目录也可以)。 ( 3 )设置如下系统变量: ANT_HOME=d:\ant 。 ( 4 )把 %ANT_HOME%\bin 加入到系统变量 PATH 中。 3、安装Eclipse Eclipse 不是开发 jBPM 必须的工具,但它是对 jBPM 开发很有帮助的工具,特别是 jBPM 提供了一个 Eclipse 插件用来辅助开发 jBPM 。关于 Eclipse 的安装不赘述了,本文用的版本是: Eclipse3.2 安装jBPM jBPM 的下载地址:https://www.sodocs.net/doc/9c11752183.html,/products/jbpm/downloads ●JBoss jBPM 是jBPM 的软件包 ●JBoss jBPM Starters Kit 是一个综合包,它包括了jBPM 软件包、开发插件、一个配置好了的基于JBoss 的jBPM 示例、一些数据库配置文件示例。 ●JBoss jBPM Process Designer Plugin 是辅助开发jBPM 的Eclipse 插件。 ●JBoss jBPM BPEL Extension jBPM 关于BPEL 的扩展包 本指南选择下载:JBoss jBPM Starters Kit 。下载后解压到D:\jbpm-starters-kit-3.1 ,目录下含有五个子目录: ●jbpm jBPM 的软件包 ●jbpm-bpel 只含有一个网页

工作流数据库设计

工作流设计参考(包括PHP实现) 本文关键词:php工作流,workflow 工作流设计的工作流很少有让人满意的,即便是国内用的比较多的jbpm,用起来也会觉得很便扭。再加上PHP中没有什么好用的工作流,于是干脆自己设计一个,设计的原则如下: 1 根据80/20原则,只使用wfmc模型中最符合自身应用的20%功能 2 充分吸收国内使用jbpm开发BOSS中遇到的问题,工作流引擎只负责参数的收集和流程的流转,具体和业务的控制,交给每个流程定制的控制类去实现。 3 表单采用简单的html+控制标签的方法实现 4 权限和模板引擎,以及其它辅助函数直接使用办公系统自带的框架 5 充分利用PHP语言的特点,流程设计是基于数据库的,程序上使用OO设计,但采用重对象的方法 6 不把可视化设计流程的工作交给最终客户,而且由设计时完成,因此不考虑流程版本更新的问题 一、工作流数据表设计

二、常见流程人工决策 领导传阅 部门领导审批填写表单

结束 放弃 提交 同意 重填(退回) 不同意 完成 外部响应 发送支付信息 接收支付成功响应(外部WS触发该流程) 三、PHP设计 运行的函数由结点在设计时候决定,如果没有设定,就使用默认的函数。利用了PHP语言的以下特性

使用前可以用method_exists来检查。 WorkflowService.php WorkflowService $defination $process $node $thread $input 用户输入的和流程有关的变量 list_defination(){ } init_process(defination_id){ global user; 取得$defination,得到业务的handler,例如WorkflowProposalHandler 建立$process行记录 } start_process(){ 调用WorkflowProposalHandler->start($process)//新建业务对象,并把业务类的参数例如proposal_id放到$process[‘context’]里面 init_thread(1); //默认调用第一个结点 } list_ my_thread (){ global user; } init_thread(node_index){ 取得$node 取得$process 修改$process为运行到当前结点 Switch($node[‘node_type’]) Case 1: 人工决策 建立$thread WorkflowProposalHandler-> init_function ($process,$node,$thread) 发送提醒 Case 2: 自动处理 建立$thread WorkflowProposalHandler-> init_function ($process,$node,$thread) 调用run_thread(thread_id) Case 3: 等待外部响应 建立$thread WorkflowProposalHandler-> init_function ($process,$node,$thread) Case 4: 分支 取得所有分支的子结点

jira自定义工作流操作手册

jira自定义工作流配置 在介绍jira自定义工作流配置之前先介绍一些概念性的知识: 1.工作流:是一个问题经过进过其生命周期的若干个步骤和阶段的变迁。工作流通常代 表实际的业务处理流程。 一个工作流是由步骤和变迁组成的,一个工作流的步骤标识着一个问题的一个阶段或者叫“状态”,变迁是工作流中两个步骤之间的连接。 2.当定义一个变迁的时候,可以选择性的指定一下选项: Conditions(条件)——用于控制哪些用户能够执行一个变迁。 Validators(校验)——在执行变迁之前,用于检查任何用户的输入是否合法。 Post Functions(后续操作)——在变迁完成之后,用于执行特定的动作,如:将问题分配给特定的用户,发送通知email,更行问题的某个字段。 Screen(显示给用户的界面)——这对于用户输入信息之后才能完成变迁的情况是有用的。 3.在jira中的默认工作流程图中,5个方框表示工作流的步骤/状态(open、in progress、 resolved、reopen、closed),箭头代表变迁(transitions)。这个从网上查一下。 4.在jira中可以用不同的方式来创建一个新的工作流: 页脚内容1

1)通过“Add New Workflow”来创建一个空白的工作流。用这个方法创建的工作流有 一个默认的步骤open,该步骤有一个进入的工作流变迁:“create”。 2)通过点击“copy”链接,拷贝已经存在的工作流(如果您准备新添加的工作流和已 经存在的工作流类似,则可以使用此方法)。用这种方法您的工作流将会包含所拷贝的工作 流的所有步骤和变迁。 1.创建工作流 Jira安装完成以后地址栏中输入:http://10.7.101.25:8080/secure/Dashboard.jspa进行平台配置。 在创建新的工作流时一般先将全部步骤定义好,再创建变迁将步骤连接起来,所以首先要自己定义一个工作流程图。 1.以jira管理员的账户登录系统。 2.在jira的导航菜单上点击“Administration”链接。 3.点击左侧导航菜单中的Global Settings—>Workflows,如下图: 页脚内容2

课程开发流程与标准

凯信公司课程开发流程规定及相关标准评定 为规范公司培训课程开发的流程,明确各阶段的内容及标准,使得课程开发的过程更具有序性,且完善对开发讲师的可考核性,提高课程的可评估性,人力资源培训部特制订此规定。 凯信公司课程开发严格依照以下几大流程,并依据相关标准进行 评审,评审通过,课程方能进行组织实施。 第一阶段:课程需求调查 课程需求部门或课程开发讲师此阶段需完成问卷/ 访谈/ 岗位分析与差距等各种方式的需求调研工作,并向培训部提交《XXX 课程开发需求分析报告》,报告包含并不限于以下内容: ○1背景描述:需求调查的大背景、公司现状分析。 ○2问题描述:在背景下产生的特定问题,即描述公司标准与公司 现状之间存在的哪些差距;问题的描述需建立在调查结果之上。 ○3调查结果分析:根据需求调查的结果(数据结果或访谈结果),对问题产生的普遍性和特殊性进行详细分析; ○4差距分析:根据调查结果,分析受训者技能现状与标准评估之 间的差距;以及差距产生的原因分析; ○5确定培训需求:描述问题解决的必要性和紧急性;针对问题, 提出相关解决方案,描述培训需求,确认培训方向。 需求报告需得到人力资源经理、培训经理及课程实施对象部门负责人的三方核对,确认审核后,培训部相关人员或课程开发讲师方可 进入开发的第二阶段。

第二阶段:制定课程大纲 根据需求分析报告,以及5W1H的课程开发思路,进行课程规划。 (5W—— What(是什么 ) 、Why(为什么 ) 、Who(谁) 、When(什么时间)、Where(什么地点);1H—— How(如何做)),完成并提交《 XXX 课程设计大纲》,详见附表 1。 终端店铺课程的设计大纲需通过由营销中心营销总监、直营/ 加盟总监、直营经理、人力资源经理、培训经理、营运主管等人组成的评 审团一致通过后方可进入第三阶段。 写字楼职员课程的设计大纲需通过人力资源经理、培训经理的评审通过后,方可进入第三阶段。 课程大纲评审标准(满分100分) 一级指标二级指标分值得分 1、课程对象定位清晰准确,与需求分析 10 分 课程教学目标及定位一致。 (20 分)2、课程目标至少三条以上,并阐述文字 10 分 清晰,精准。 1、大纲结构完整(包括课程目标及意义、 大纲结构及基本格式课程内容和要求、课程重点、教学方法和15 分教学素材组织等相关方面的完整) (30 分) 2、大纲层次性完整(大纲——章标题— 15 分 —课程内容,大纲至少体现三级层次) 1、教学大纲的系统性及连贯性强 5 分 2、课程教学内容能遵循 5W1H原则15 分 3、课程重点明确,每一章节的计划时长 5 分 分配合理 大纲教学内容( 50 分)4、内容涵盖了方法论和理论深度,能体 5 分 现对学员技能和素质的培养 5、素材(视频、案例、故事、游戏等) 分 10 选择丰富、运用合理 6、大纲内容实操性强,案例典型,能理 10 分 论联系实际

相关主题