您好,欢迎来到九壹网。
搜索
您的当前位置:首页工作流

工作流

来源:九壹网


工作流管理

--IBM FileNet BPM中的工作流

在业务流程管理中,工作流的每一个步骤都代表了你所定义的这个业务流程里的某一特定动作或任务,是业务流程的重要组成部分。IBM FileNet Business Process Management(BPM)作为业内领先的业务流程管理解决方案,也预定义了一些步骤类型来帮助用户构建业务流程,而其中的系统步骤(System Step)则是提供了一种在工作流定义中调用 FileNet BPM 内置系统功能的方法,从而实现流程中的逻辑控制以及一系列自动功能。

同时,FileNet BPM 在其流程设计器(Process Designer)中也提供了非常直观、方便的系统步骤面板,用户既可以按照不同的系统步骤分类选择某一个特定的系统功能,也可以直接在系统步骤的属性面板中添加所需要的一个或多个系统功能。

下面,我们就将根据这些内置系统功能的大致分类来做相关的介绍。 一、系统功能

⑴一般系统功能

一般系统功能分类中包含了以下十种系统功能:

Assign:用于在工作流运行过程中的某一点为工作项中的字段自动赋值。FileNet BPM 支持在单个 Assign 系统功能中指定超过 100 次的字段赋值操作。

Call:用于调用执行工作流的另一个子流程,其功能与直接调用 Submap 步骤类似。

Create:用于在工作流运行过程中的某一步骤启动另外一个工作流,同时支持对当前工作流及新启动工作流中的字段进行赋值。

DbExecute:用于在流程中运行一个存储过程,即用于流程与数据库之间的交互。在工作流定义中使用 DbExecute 系统功能前,还需要在 Process Configuration Console 的 VWService 属性中定义一个和该数据库的连接。

Delay:用于使流程运行暂停一段指定的时间,当暂停时间结束时,流程可以继续运行到工作流的下一步。

 

Log:用于在事件日志中记录一个自定义的消息。 Return:通过布尔型表达式来实现从一个被调用的工作流 Map(比如子流程)离开并返回到调用它的工作流 Map。当表达式为真时,流程返回后将重复执行调用该子流程的操作,否则,跳过当前调用步骤继续流程的下一个状态。

TerminateBranch:用于结束工作流的某一分支。

 

TerminateProcess:用于结束整个工作流程。

WaitForCondition:用于实现一个流程对另一个流程的等待关系,即只有在另一流程满足某个指定条件的时候,当前流程才能继续运行。

⑵计时器(Timer)系统功能

计时器(Timer)系统功能用于实现流程运行过程中的时间控制,即一系列指定步骤必须在某一时间段内完成 , 否则就会超时进入到指定子流程,主要包含以下五种:

BeginTimer:用于标明一系列需要在指定时间内完成的步骤的起始点。在该系统功能中,计时器的名字、时间段以及超时后所要进入的子流程都需要被指定。

SuspendTimer:用于暂停指定的计时器。但在暂停过程中,计时器实际仍在运转,因此,若计时器过期,只会在该计时器被重新激活前暂时阻止工作流进入超时子流程。

 

ResumeTimer:用于激活一个暂停的计时器。

EndTimer:与 BeginTimer 配套使用,用于指定计时器作用的一系列步骤的终点,即通过执行这一系统功能来终止一个未超时的计时器。

EndAllTimers:用于终止所有计时器。

⑶流程回滚系统功能

流程回滚系统功能可以用于将工作项的数据回滚到之前的某个工作流状态,主要包含以下三种:

BeginCheckpoint:用于标明流程中需要保存当前字段值的某一点,以供将来发生回滚时使用。

RollbackCheckpoint:用于指定流程中需要回滚的点,即在该回滚点上使用之前保存的字段值取代当前流程运行的某些字段值。在使用该系统功能时,需要明确哪些字段值需要回滚以避免影响后续工作流的运行。

EndCheckpoint:用于指定在流程中的某一点舍弃掉之前使用 BeginCheckpoint 系统功能所保存的字段值,并继续执行后续工作流。

⑷Web Services 相关系统功能

Web Services 相关系统功能主要用于在工作流程中调用一个 Web Service 或是将一个工作流设计成为 Web Service 供其他工作流以及外部应用调用,包含以下三种:

 

Invoke:用于在工作流中调用一个指定的 Web Service。 Receive:用于提供一个可供调用的 Web Service,它可以位于工作流的任何位置

Reply:与 Receive 配合使用,用于对 Receive 接收到的消息作出响应,并将响应消息返回给 Invoke 步骤或外部调用。

二、应用示例

⑴应用示例 1:一般系统功能

在本章节中,我们将着重介绍一般系统功能中较为常用的 Assign,Create,Call,Return 以及 WaitForCondition,并给出相关应用示例。 ①应用场景描述及分析

该应用场景是关于信用卡申请审批流程的。当申请人提出信用卡申请需求后,银行信用卡中心将会启动一个审批流程,在年龄满足申请条件的前提下,进入申请人薪资的审批环节,并需要申请人雇主的相关确认。随后,若经过申请人雇主确认的薪资状况符合申请条件,银行则会批准相应的信用额度返回给申请人,完成整个信用卡申请审批流程。

在上述应用场景中,我们首先需要设计一个信用卡申请审批的主流程,包含年龄审批环节,薪资审批环节,以及信用额度计算环节。其中的薪资审批环节,我们将设计一个单独的薪资审批子流程,并在主流程中使用 Call 系统功能对其进行调用,而信用额度计算环节,我们将使用 Assign 系统功能进行自动计算,如下图1所示。

图1:应用场景流程示意图(主流程)

信用卡申请人 对于薪资审批子流程,银行将首先对申请人申报的薪资进行第一轮审核,若符合条件,则会通过 Create 系统功能创建一个新的流程给申请人雇主进行薪资确认,同时该薪资审批子流程将调用 WaitForCondition 系统功能等待雇主薪资确认流程完成并返回薪资结果(若 7 天内无响应,则等待超时)。最后,相关审批部门将对雇主确认的薪资进行二次审核,若通过,则返回主流程继续下一步的信用额度计算,否则拒绝申请人的信用卡申请。在审批部门的二次审核步骤中,为了保证审批进度,我们将设置一个为期 2 天的期限(即 Deadline),并在超过期限后进入一个超时子流程中由银行管理员进行超时处理,这里,我们会使用 Return 这一系统功能来控制流程在超时后的走向(即跳过或重复该审核步骤)。见图 2 所示的薪资审批子流程示意图。 图 2:应用场景流程示意图(薪资审批子流程) 调用子流程 系统自动计算

申请人 审核人 创建雇主薪资确认流程 等待薪资确认返回 二次审批部门 ②工作流设计与实现 根据上一小节的描述及图 1 中的主流程应用场景示意图,我们可以在流程设计器中画出图 3 所示的工作流定义。 图 3:信用卡申请审批主流程 其中,EvaluateSalary 步骤使用了 Call 系统功能来调用图 2 场景示意图中所示的薪资审批子流程,即下图 4 中所选择的 EvalSalary 子流程(子流程定义见图 6)。可以看出,通过 Call 调用子流程的效果与使用 Submap 子流程节点是相同的。同时,在 CalcCredit 步骤中,我们使用了 Assign 系统功能来对信用额度进行自动计算,即对信用额度 CreditMoney 字段进行自动赋值,如图 5 所示,赋值表达式为薪资审批子流程返回的薪资水平(Salary 字段)乘以 3。

图 4:Call 系统功能的使用

图 5:Assign 系统功能的使用

接下来,我们可以根据图 2 中的薪资审批子流程示意图,设计出如下图 6 所示的 EvalSalary 子流程。

图 6:薪资审批子流程 EvalSalary

在该子流程中,我们在 CreateSalConfirm 步骤中使用了 Create 系统功能来自动创建雇主薪资确认流程(如图 7),即通过这一步骤来启动一个已经 transfer 的流程 SalaryInfo(如图 9 所示)供申请人雇主输入申请人薪资水平。图 7 中的赋值表示把当前流程中的 name 字段传递给新建流程 SalaryInfo 中的 name 字段。默认情况下,左侧的 Name 列代表新建流程中的字段,右侧 Expression 列代表当前流程中的字段,我们可以通过在字段名前加上 $ 符号来进行反转赋值。

图 7:Create 系统功能的使用

通过 Create 创建雇主薪资确认流程后,在薪资审批子流程中,我们紧接着使用了一个 WaitForCondition 系统功能

(WaitForSalary 步骤)来等待雇主薪资确认流程的返回。在该应用中,只有当等待流程(薪资审批子流程 EvalSalary)与被等待流程(雇主薪资确认流程 SalaryInfo)中的申请人序列号相同时(SSN=SSN_ID),才会认为满足等待条件并继续执行流程的下一步,否则在等待 7 天之后返回超时。如图 8 所示,我们用 ConditionResult 字段来记录满足条件的个数(本应用中该字段值只可能为 1 或 0),并将该字段值用做下一步骤(CheckResult 步骤)的判断标准之一,若为 1,证明等待的雇主薪资确认有返回,若为 0,则证明在设置的 7 天等待时间里没有满足条件的返回。当满足等待条件时,可以通过赋值设置将被等待流程中的字段值赋给等待流程,本应用中,雇主确认的薪资 BaseSalary 字段将赋值给等待流程中的 Salary 字段以供下一步骤中对薪资做二次审核。

图 8:WaitForCondition 系统功能的使

需要注意的是,在作以上的 WaitForCondition 系统功能配置之前,我们需要首先在被等待流程(即 SalaryInfo 流程)中设置 Condition Identifier,并 transfer 该被等待流程以供等待流程中的 WaitForCondition 配置使用,如下图 9 所示。

图 9:雇主薪资确认流程 SalaryInfo

前面提到,为了保证审批进度,我们在薪资审批子流程(图 6)的 CheckResult 步骤中设置了 2 天的 Deadline,并在超过期限后进入到一个超时子流程中由银行管理员进行相关处理。如图 10 所示,我们定义了 TimeOutMap 子流程作为超时子流程,并在该子流程中使用了 Return 系统功能来控制流程在超时后的走向。若 Return 表达式的值为 false,则跳过 CheckResult 步骤,继续执行流程的下一步骤,反之,则重复执行 CheckResult 步骤进行薪资二次审核。

图 10:TimeOutMap 子流程及 Return 系统功能的使用

通过以上工作流设计及对一般系统功能的使用,就能够实现本应用示例中的信用卡申请审批场景。可以看到,一般系统功能,特别是 Create,Assign 及 WaitForCondition 等功能是非常具有实际应用价值的,不仅能够帮助用户实现更加丰富的业务需求,同时也十分方便易用。

⑵应用示例 2:Timer 系统功能

在本章节中,我们将对计时器(Timer)系统功能进行相关应用示例。

①应用场景描述及分析

Timer 系统功能比较直观易用,因此我们将给出一个简单的投稿申请应用场景。当投稿人在网站上递交投稿需求并审核通过后,需要在 60 天之内上传初稿,若超过 60 天,该投稿需求将会被自动关闭。在初稿上传成功以后,主编需要尽快给出采纳与否的决议,而这整个从投稿到审核初稿给出决议的流程需要在 90 天内完成,否则将自动关闭该投稿申请。

在这一简单应用场景中,我们将会嵌套的使用两对 BeginTimer 和 EndTimer 系统功能来实现对 60 天稿件上传期限和 90 天整个投稿流程期限的控制。而对于另外一组计时器系统功能

SuspendTimer 和 ResumeTimer,因其设置简单,就不在此赘述。相关场景示意图如图 11 所示。

图 11: Timer 应用场景示意图

②工作流设计与实现

根据以上场景描述及分析,我们可以设计出如下图 12 所示的工作流。

图 12:投稿申请审批流程

其中,我们定义了一组计时器 Timer 1 – Begin 和 Timer 1 – End 来控制整个投稿申请审批流程的 90 天期限,同时在这组计时器中我们又根据需求在 DraftSubmission 步骤上嵌套了另外一组计时器 Timer 2 – Begin 和 Timer 2 – End 来控制初稿上传的 60 天期限。不同的计时器是通过计时器名字来区别的,具体配置如图 13 及 14 所示。 图 13. Timer 1 的配置 图 14. Timer 2 的配置

⑶应用示例 3:流程回滚系统功能

在本章节中,我们将举例说明流程回滚系统功能在 FileNet BPM 中的应用。

①应用场景描述及分析

流程回滚这一功能主要用于控制某些具有风险的步骤,比如可能出现人为过失或错误处理等,通过流程回滚,就可以避免由于这些风险而造成的数据丢失。我们可以用一个简单的办公自动化系统中的报销流程为例,在这一报销流程中,由于涉及到实际应该批准的报销金额可能存在错误审批的风险,需要在财务部门相关员工审批后再由二次核准部门进行复查,最后交由财务经理批准。对于二次核准部门,主要的工作就是判断财务部门审批的报销金额是否符合报销标准,若符合,则继续到下一步交由经理最后批准,若不符合,则需要回滚到报销提交的状态并返回给财务部门进行重新审批,直到二次核准通过

为止。我们将在流程设计中使用流程回滚的相关系统功能来实现如下图 15 所示的业务需求。

图 15:流程回滚应用场景示意图

②工作流设计与实现

根据上一小节中的需求描述,我们可以使用 BeginCheckpoint,RollbackCheckpoint 以及 EndCheckpoint 设计出如下图 16 所示的流程定义图来实现流程运行过程中的回滚。

图 16:报销流程

其中,我们在财务部门进行报销金额审批及修改前,使用 BeginCheckpoint 系统功能记录下报销提交的最初状态,该系统节点不需要任何额外配置。当核准部门进行二次核准后,若核准失败,则会调用 RollbackCheckpoint 系统功能进行流程回滚,将报销金额回滚到提交状态并返回给财务部门重新审批,否则,执行 EndCheckpoint 取消之前在 BeginCheckpoint 处的备份,继续流程的下一步。EndCheckpoint 系统节点也不需要任何配置,而对于 RollbackCheckpoint 系统节点,其配置如图 17 所示。

图 17:RollbackCheckpoint 系统功能的使用

从图中可以看到,我们将 Resume Processing Expression 设置为 true,这表示回滚以后流程会继续执行 BeginCheckpoint 之后的步骤,即重新返回给财务部门进行报销审批。否则,流程在回滚后将会执行 RollbackCheckpoint 之后的步骤,即将回滚后的字段值直接交由财务经理进行批准。因此,根据业务需求,这里应该设置为 true。若需要在流程回滚前执行一些额外的操作,则可以指定相应的子流程进行处理,这里我们暂设为空,即不执行任何额外操作直接返回。除此之外,我们还可以灵活地指定需要回滚的字段,默认情况下,所有字段值都将是回滚的。在本示例中,只需要对报销金额相关的 4 个字段进行回滚。 三、结束语

综上所述,系统步骤及相关系统功能对于 IBM FileNet BPM 流程设计是非常重要的,不仅能够满足更加丰富广泛的业务需求,同时使用简单,大大加快了流程实施的进度,缩减了流程开发的成本和周

期。通过本文的介绍,能够使相关流程设计及实施人员对 FileNet BPM 中的系统功能有一个整体的认识,并能够通过这个系统对工作流管理的相关内容有更深刻的理解和认识,从而更好地应用工作流知识。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务