EAS BOS工作流实施指南(20071126)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[说明]对于示例中的这个节点,在业务发生的时候,billID 还没有任何赋值,这个时候传递给业务系 统的也将是个空值。根据工作流系统和业务系统的约定,传递空值对业务系统来说,意味着新增单据。
再来看看任务输出
左边的是单据对应的业务对象的所有属性,右边是选定的输出。 在这里,将 ID 属性输出,并且选定输出的流程变量是 billID
谁提交的谁修改,参与人设置为流程发起人本人
定制修改消息
3、 编辑连接弧
首先编辑“审批”到“自动”的连接弧。如下方式设置条件。
[说明]变量为“审批结果”这个枚举类型的时候,在变量或比较值一栏,回发现,列出了“通过”和 “不通过”两个选项。
这是建模工具会自动根据之前的定义识别枚举,然后将枚举的值也会自动列在选择范围内。 然后编辑“审批”到“修改”的连接弧。按照如下方式设置条件
些内容?
1.流程配置基本知识及示例
1.1 重要概念
1.1.1.流程变量 流程变量是工作流引擎和业务系统的数据交互的桥梁。 工作流承载业务,驱动业务流程,但是不会执行业务。工作流中的业务执行,全部都会委托给
具体的业务模块执行。那么,这些被工作流分割的业务功能,在工作流中被调用执行的时候,如何保 证做操作的数据的一致性?
充分利用“流程变量”的威力,建立单据和流程之间数据交换的桥梁。输入输出参数用来 在流程和单据之间进行数据的传递。输入输出参数和流程变量搭建了流程和单据之间的数 据联系通道。
流程变量赋值时需注意:变量是否在另外地方被改变,有子流程时候变量关系如何匹配, 对应的是否正确,每个节点对应的变量是否正确,不同的节点可能对应不同的单据 id,给 变量赋值时需特别细心。
定义步骤: 1、 拖入开始、结束活动 2、 拖入人工型活动,用连接弧连接起来。 3、 定义人工型活动
首先,定义人工型活动的任务,选择任务
选定任务后,定制任务的输入输出。
输入参数是由任务定义带出的
根据任务输入的意义,指的是在凭证提交之前,由工作流告知凭证的数据。新建一个流程变量,绑定 该输入。
这里绑定的意思是:在凭证提交之前,工作流会将 billID 这个流程变量中的数据传递给凭证业务。凭 证业务拿到这个值之后,会根据业务需要做出判断。
参与人动态变化或根据条件变化时,可以充分利用“参与人变量”作为动态值,变量的值 可以通过各种方式获取,比如脚本式(后置脚本或脚本活动)、或者任务输出属性方式等。 (流程变量中可以定义类型为参与人的变量)
利用条件参与人设置一些动态的参与人场景。比如当某条件满足时,设置为某些参与人, 当条件不满足或为另外情况时,设置为另外的参与人,通过条件参与人和参与人变量可以 满足大部分复杂的参与人场景。条件参与人的参与人范围还可以做为运行期指定下一步活 动的参与人范围。
1.3.2.审批流程
场景说明:单据提交之后,经过一层审批,流程结束。
以凭证为示例。流程图如下
定义步骤: 1、 同场景 1.3.1 拖入活动 2、 增加一个审批活动,如图画连接弧 3、 配置提交活动。和场景 1.3.1 中一样选择任务,参与人也是任意人。但是任务的输出夺一项。由
于在后续的消息中想展现出单据的编码,所以多输出一个单据编码到一个流程变量 number 中
保存。流程定制完毕。发布。在 EAS 中提交凭证,本人审批。在审批的时候,不通过。会发现会收 到一条修改的消息。处理该消息,修改。流程会继续回到审批。
【修改】常见问题 2.2 工作流无法启动问题
【增加】常见问题 2.16 使用分录流程时需要注意哪些问题?
周刚
【增加】常见问题 2.17 为什么系统报“已在工作流处理中,当前任 周刚
务不匹配”的信息?
【增加】常见问题 2.18 建模工具报当前显示的页面中包含无效的值 郭超
【增加】常见问题 2.19 设置汇报关系的流程参予人时,需要注意哪 周刚
周海波 潘国林
【增加】业务场景 8 工作流脚本 “根据单据分录发送消息”
潘国林
【增加】业务场景 12 多 UI 相同实体需要触发不同的流程
龚银
【增加】常见问题 2.13 为什么工作流建模工具登录不了
【增加】常见问题 2.14 为什么新增字段在工作流中无法看到
【增加】常见问题 2.15 子流程被匹配问题
周海波 周刚
【增加】常见问题 2.10:如果通过后台事务设置工作流数据转储 【增加】脚本实例:委托时,判断审批人是否是部门负责人
周刚 周刚
【增加】常见问题 2.11:为什么配置了异常转移后发送消息,却没有 周刚 收到异常消息
【增加】常见问题 2.12:为什么工作流审批邮件不可以正确发送 【增加】业务场景 8 工作流脚本 内容
如存在一些系统预定义功能无法满足的需求,可以采用自己开发功能,根据输入参数和输 出参数来与工作流交互,如在单据中增加 function,绑定到自动节点执行,或者是利用脚 本节点,获取一些有用的信息输出到流程变量中在工作流中使用。还可以利用工作流的一 些新增功能,比如利用函数节点(522 版本提供),BOTP(530 版本提供)节点等来执行特殊需 求。
在这个简单的示例中,这个输出没有意义。 但是在后面的场景中,可以看到,这个输出具有很重要的意义:凭证提交完毕后,将可以唯一标示一 张凭证的 ID 属性保存在流程变量 billID 中,在后续的活动中,如果还需要操作这张凭证,就可以通过 billID 来唯一定位这张凭证,保证业务的一致性。 任务定义完毕,来定义参与人。 参与人定义中,分为了默认参与人和条件参与人(条件参与人如何定制和使用,请参见另一篇专门针 对提交参与人的文档)。工作流在获取执行人的时候,首先根据条件来逐个扫描条件参与人,发现没有符合, 那么会取默认参与人。 这里简单处理,选择任意人。
4、 配置审批活动。为了方便测试,参与人设定为流程发起人的本人
任务页签和一般的任务有些不同,是因为审批是一个通用的业务,对其任务进行了包装。只是展现的 UI 不同,实质是一样的。
这一部分,就是任务输入。对于现在的场景,审批凭证,那么在业务单据内码这一栏选中 billID。 此时 billID 已经在提交之后,保存了刚刚提交的凭证的 ID。一旦这个审批任务发生执行,那么,在执 行前,工作流会将 billID 这个变量中保存的值传给业务系统。那么审批时就可以唯一定位到一条业务 单据。
[说明]前面提到过,流程自动匹配的优先级。下面举例说明。 有两条流程,同样启动活动的任务都是“凭证提交”,A 流程的启动活动参与人设置为“张三”,B 流 程启动活动参与人设置为“公司所有人”。那么张三录入凭证的时候,匹配的流程是 A。 [说明]任意人作为一个特殊的参与人定义方式,只针对于启动活动生效!意思是说,只要有凭证提交 的权限的人,提交凭证就可以匹配到该流程 到现在为止,这条简单的流程就已经定义完毕。发布。到 EAS 中提交凭证,然后到工作流监控中, 会发现有一条流程实例,并且状态是已完成。
息中心去处理业务 2、 流程自动匹配。可以通过执行流程的启动活动的操作,自动匹配流程,启动流程实例。流程实例
启动后,启动活动已经完成,流程自动向下流转。 流程匹配的条件是任务和参与人。在任务相同的情况下,流程匹配存在优先级。从高到低依次是: 职员、职位、组织、任意人。
1.2 注意事项
绘画工作流图之前一定要先将业务流整理清楚,分析业务流的特性,提取可以抽象出来公 用的东西,分析是否可以进行优化等,好的业务流程可以直接映射为工作流流程。
任务输出:在业务发生之后,由业务系统传递给工作流,需要保存在流程变量中的数据。仍以凭证过 账为例,在用户操作完凭证过账之后,工作流继续流转之前,如果流程定义中定义了任务的输出,那么, 就会将凭证对应的属性的数据,保存在流程变量中。已备在后续的流程活动中使用。
1.1.3.流程自动匹配
金蝶 EAS 的工作流是嵌入式工作流,嵌入式工作流系统有如下的特性: 1、 无需更改用户的操作习惯,在序时簿上操作,也可以正常的激活驱动工作流,而不必一定要到消
定义步骤 1、 提交、审批、自动节点的设置和场景 2 中一样。 2、 增加一个人工型活动,修改。选择的任务和“提交”一样。但是由于单据的 ID 和单据的编码是
新增的时候就定好的,无法修改。所以只需要定义任务输入就可以了,不需要定义任务输出。
[说明]到这里应该可以看出,流程变量的重要性。以场景中的 billID 为例,从提交开始作为输出参数 被赋值,保存了可以唯一标示一张凭证的 ID。然后再审批的时候,需要在输入参数中传入该变量,在修改 的时候,也需要在输入参数中传入该变量。这样就保证了提交、审批、修改这些业务操作所操作的凭证是 同一张
为了能够让凭证打上审批标记,按照如下方式修改流程定义
最后的这个自动活动,就完成给凭证打审核标记的功能。 任务选择如下:
任务的输入输出按照如下设置 保存、发布,再到 EAS 中执行一下。发现审批状态打上了。
1.3.3.带分支的审批流程 场景说明:在场景 1.3.2 中,没有根据审批结果来判断,无论审批是通过还是不通过,都会把审批的 标记打上。在这个场景中,增加对审批结果的判断。审批通过,则打审批状态。审批不通过,返回修改。 仍以凭证为例。流程定义如下:
任务输出,选择将审批结果输出到一个枚举型的流程变量 审批结果 中。 定制审批消息
流程定义完毕。发布,在 EAS 中执行。 提交凭证,在消息中心收到一条消息,审批,通过。然后回到凭证序时簿,察看该流程,发现, 凭证的状态还是“提交”而不是“审核”。 这是因为工作流中的多极审批,只是单纯的驱动流程,做一个选择而已,不会修改业务数据。
Biblioteka Baidu
2007-09-04 1.10 2007-09-11 1.11
2007-09-14 1.12 2007-09-17 1.13
说明
作者
【创建】初始版本
龚银、周刚
【增加】 常见问题 2.8:建模工具中点击连接服务器没有任何反映 【增加】常见问题 2.9:在工作流中删除单据后,但单据相关的任务 消息仍然在“未处理中”节点下
通过流程变量,在每一步的业务功能执行的过程中,将业务数据保存在流程变量中,那么整个 流程的后续活动中,都可以引用该流程变量,来完成业务功能,保证业务数据的一致性。
例如:在凭证的审批流程中,新增凭证审批,审批的时候为什么可以正确定为到刚刚提交的那 张凭证,而不是别的凭证?流程变量起到了重要的作用。在凭证新增之后,将可唯一标示凭证的 ID 保存到流程变量中,在审批的时候将流程变量中的值传递给凭证,就可以根据这个 ID 获取到一张凭 证了。
善于利用路由节点,除了可设置模式外,还可以对流程图进行美化。
一些公用的业务逻辑可以单独抽取出来配置为子流程给其他流程共用,减少维护的流程数 量,比如一些常用的审批流程等。
1.3. 基本流程的配置示例
1.3.1.单活动流程
场景说明:流程只有一个人工型活动,完成凭证提交的任务,流程结束。没有具体的业务含义。 以凭证提交的业务为例。流程图如下:
流程变量在流程实例的生命周期内都是有效的。
1.1.2.任务输入输出
任务输入:在业务发生之前,有工作流传递给业务的数据。以凭证的过账为例,某个用户收到一条凭 证过账的消息,双击消息处理。在双击之后、凭证的界面弹出之前,工作流会把定义的入口参数变量中的 值传递给凭证,凭证根据这个值来展现特定的单据,展现特定的功能。
[说明]所有人工型任务的输入参数,全部是在定义任务的时候就定义好的。每个任务的输出参数可能 不同,是由于各个不同的业务系统对于业务开始之前,所需要的数据不同导致。但是在 EAS 系统中,基本 上任务的输入参数只有一个 BOID 类型的参数。这是因为一般来说,通过这样一个类型的值,就可以完全 定位一个业务单据,并且拿到这个业务单据,就可以满足大部分的业务需求了。
在 EAS BOS 工作流实施指南
修订历史
日期
版本
2007-05-17 1.00
2007-05-21 1.01
2007-05-24 1.02
2007-06-14 1.03 2007-07-04 1.04 2007-07-18 1.05
2007-07-30 1.06 2007-07-30 1.07 2007-08-07 1.08 2007-09-04 1.09
相关文档
最新文档