# 业务概念
# 工作列表(任务列表)
工作列表也称任务列表,是用户从流程引擎获取到的自己有权限处理的任务队列。体现在BPS中,是业务人员通过BPS Client 或用户自主实现的任务列表中浏览到的各种状态的工作项列表。
工作列表分为:待处理的任务、已处理的任务、委托的任务、委托完成的任务等。任务列表具有相对性,比如:对一个用户是代理的任务,对另一个用户来说可能是"自己的任务"。以下解释都是相对"当前用户"来说的。
- 待处理的任务:等待当前用户处理的任务,即用户有权限处理的任务;
- 已处理的任务:当前用户已经处理过的任务;
- 委托的任务:当前用户代办或者协办出去的任务;
- 委托完成的任务:经当前用户代办或者协办出去,并且已经完成的任务。或者根据当前用户的代理关系,由有权限的代理人完成的任务;
待处理的任务是日常工作的核心,按照不同属性又有其它分类:
按照任务的所有者属性可以分为:公共任务、个人任务。
按照任务的来源可以分为:自己的任务、代理的任务、代办的任务、协办的任务等。
任务名称 解释 公共任务 分配给角色、机构等集合参与者(可能包含多个"个人"的参与者)的任务,或者分配给多个人的任务,当前用户只是这些任务的多个参与者之一 个人任务 只有当前用户可以处理的任务,也称为私有任务 自己的任务 由BPS调度引擎分配给用户的任务,而不是通过代办、协办等渠道间接获得的任务 代理的任务 由于委托人建立代理关系而使得当前用户获得的任务,请参考"代理"概念 代办的任务 由于委托人的代办操作而使得当前用户获得的任务 协办的任务 由于委托人的协办操作而使当前用户获得的任务
# 表单
BPS中的表单相当于现实生活中各种纸质的单据。它是指基于WEB方式的,需要相应参与者填写或修改的电子文档。例如,请假流程中的请假单,在流程流转的过程中它需要请假人填写请假时间及事由,需要上级主管填写审批意见。
BPS提供了在流程定义时设置表单的格式及内容。流程提交、运行后即可在相应的活动中显示需要指定人员处理的表单。该功能满足了在不写任何程序代码的情况下,快速完成具有复杂流程处理能力的电子表单。
BPS在开始图元和人工活动图元上提供了表单设计功能。开始图元上的表单被称之为"启动表单",主要完成在流程实例启动前需要与参与者做的一些交互工作,比如在电话报装流程开始之前需要先行填写一份电话报装登记表。人工活动图元上的表单即为普通的表单数据,供参与者填写或修改。下图中就是开始图元的启动表单:
表单的参数定义包括:
参数名称 | 解释 | ||
---|---|---|---|
显示名称 | 客户端执行表单页面时,每一项数据显示的名称。 | ||
相关数据路径 | 获取该数据项的存储位置。由于表单数据都是存储在流程实例的相关数据中的,因此,路径填写的是此数据项存/取于相关数据中的XPath,所有在表单上定义的"相关数据路径"都必须是符合对象图的xpath导航方式,被导航的"对象"需要在业务流程的相关数据中定义。当页面表单被提交时,表单中输入的数据会提交到相关数据中保存,保存的位置则按照"相关数据路径"中所定义的xpath导航位置,来确定保存到哪些相关数据对象中。 | 注意 当类型选择"用户"时,"相关路径数据"对应的对象类型应该是com.eos.workflow.omservice.WFParticipant才可以。 | |
类型 | 表示该表单项Html的控件类型。BPS提供了字符串、长字符串、数字、布尔、日期、电子邮件、用户、选项列表和单选列表9种类型。 | ||
是否必需 | 当"访问类型"为"读写"时,表示该项在客户端执行的表单页面是否必需填写,选中checkbox选项,则在客户端填写表单时,页面上会用"*"提示用户此项必须填写。 | ||
默认值 | 该数据项在客户端显示的初始值。 | ||
访问方法 | 表示用户对此项数据的访问权限。"读"用户只能阅读而不能修改此项该数据;"读写"用户可根据需要修改此项数据。 | ||
描述 | 帮助理解该表单项的含义所作的描述。 |
注:BPS提供的表单在当前版本下只有当业务人员通过BPS客户端启动流程时才会生效。
# 流程版本
流程版本是为了方便管理同一流程名称下的多个业务流程,而进行区分的标志。在BPS中为一个数字和点的序列,如1.1.1。在具有相同流程名称的多个版本当中,默认情况下,版本号最大的一个称为最新版本,当前发布有效的版本称为发布版本。发布版本和最新版本可以不是同一个版本。对于一个流程来说,发布版本最多有一个,最新版本有且只有一个。
# 触发事件
触发事件是流程实例运行过程中插入的一些用户自定义的动作,类似于数据库中的触发器。
触发事件包括触发时机和触发动作两部分含义:
- 触发时机指启动、结束、超时等可插入点;
- 触发动作指在插入点可以插入的操作;
BPS包含流程级、活动级和工作项级三个层次的触发事件。
# 回退
回退是流程运行过程中按照某种规则回到流程以前某种状态的操作,BPS支持"单步"、"按路径"、"回退到上一人工活动"等多种回退方式。
与回退相关的一个概念是业务补偿。业务补偿一般是用户自定义的除了流程自身状态之外的复原操作,BPS中,用户可以自定义业务补偿操作。
# 代理
代理是BPS中定义的一种任务委派机制。它从规则的角度定义了某种委托办理规则,对于委托人拥有的符合规则的每一个任务(工作项),代理人都有执行权限。
根据代理规则定义方式的不同,代理分为全部代理和部分代理两种。
- 全部代理是委托人把全部流程处理权限都代理给代理人(可以定义例外)的代理形式。
- 部分代理是委托人选择一部分流程或者活动代理出去的代理形式。
代理的例子:王经理把审核报销单的权限代理给小张,小张便和王经理都具有了审核报销单的权限。
# 代办
代办是BPS中定义的一种任务委派机制,通过代办,委托人可以把单个任务代办给代办人。
代办和代理的区别主要是:代理定义的是规则(其委派范围包括满足条件的所有任务),代办是针对单个任务进行的。比如:某领导把报销单审核权限代理给小张,则小张拥有所有的报销审核的权限;某领导把某一次报销的审核权限代办给小李,则小李仅具有对该次报销单的审核权限。
# 协办
协办是一种特殊的代办,也是BPS中定义的一种任务委派机制。协办和代办(狭义)的区别在于:在协办委派中,协办人的职责是协助委托人完成任务,协办人操作完毕以后,委托人需要对该工作进行确认。
协办的例子:王经理把一个问题委托给小李处理,小李处理完以后,经过王经理确认才可以全部完成该任务。
# 交接
管理员将离职或换岗员工的待执行、待领取、代办他人、委托他人代办的任务转交给接管人,并删除与该员工相关的代理关系。交接员工所有直接参与的流程实例中对应的参与者将自动由引擎改变为接管人。
# 改派
管理员在任务运行时动态改变任务的执行者,可以把任务改派给单个或多个参与者;如果任务是待执行状态,而被改派给多个参与者的话,任务将会变为待领取状态。
# 自由流
所谓"自由流"是指当一个活动运行完成后,将被启动、运行的后继活动不是由引擎根据流程图元间连接线上的条件判断决定的,而是由当前活动的参与者根据流程定义时的设置,在"可选择的活动范围内"动态指定,可以是一个也可以是多个。
# 多子流程
多子流程是BPS处理复杂的业务嵌套场景的一种解决方案。有两种场景需要使用多子流程:
- 明确型:主业务流程在某个活动点需要产生多个子流程实例。
- 模糊型:业务需要"在部分活动间流转"的需求时。如下图:
实例B1、B2、B3和实例C1、C2、C3分别存在着依赖关系:B1->C1、B2->C2、B3->C3。此时可以把B和C组装成单独的子流程,在主流程中使用多子流程的方式调用该子流程。如下图:
# 聚合模式
聚合模式,表示一个流程中某活动得以触发的方式。它包括"全部聚合(AND)"、"单一聚合(XOR)"以及"多路聚合(OR)"三种情况:
"全部聚合"型聚合模式 表示该活动必须等到它的所有前驱活动全部完成才可以触发。
"单一聚合"型聚合模式 表示当该活动的若干前驱活动中只要有一个满足条件的活动完成,该活动即可被触发。
"多路聚合"型聚合模式
表示该活动必须等到它的所有满足条件的前驱活动全部完成才可以触发。满足条件的前驱活动包括:
- 它与该活动的连线是"默认值"。
- 它与该活动连线上的条件为"true"。
# 示例
- "全部聚合"型聚合模式示例
如上图所示,"人工活动3"的聚合模式设置为"全部聚合",那么只有在它的前驱"人工活动"、"人工活动1"、"人工活动2"都完成后,"人工活动3"才可以运行。
- "单一聚合"型聚合模式
- "多路聚合"型聚合模式
# 分支模式
分支模式,表示该活动结束后,它的后继活动的触发情况。它包括"全部分支(AND)"、"单一分支(XOR)"以及"多路分支(OR)"三种情况:
"全部分支"型分支模式 表示该活动结束后它的所有后继活动将同时被触发。
"单一分支"型分支模式
如果该活动的分支模式为"单一分支",那么引擎会根据由该活动"射出"的连接线上的条件进行判断,决定该触发哪个后继活动。具体分为下面三种情况:
- 满足条件的连接线所指的活动被触发;
如果有若干个连接线上的条件都满足,那么比较连接线上的优先级,优先级高的那条连接线所指的活动将被触发;
- 如果连接线上的条件都不满足,那么取"默认值"的那条连接线所指的活动将被触发;
注意:活动的"分支模式"为"单一分支"时,由它射出的连接线有且只有一条线的取值是"默认值"。
"多路分支"型分支模式
如果该活动的分支模式为"多路分支",那么引擎会根据由该活动"射出"的连接线上的条件进行判断,决定触发哪个或哪些后继活动。具体分为下面二种情况:
- 如果连接线上取"默认值",那么由此连接线所指的后继活动会被触发;
- 如果连接线上的条件满足,那么由此连接线所指的后继活动会被触发;
# 示例
- "全部分支"型分支模式示例
如上图所示,由于A活动的分支模式是"全部分支",那么当A活动完成后它后继的所有活动(B、C、D)将同时被触发。
- "单一分支"型分支模式示例
- 由该活动射出的连线上只有一个满足条件时
如上图所示,由于"A" 活动的分支模式是"单一分支"并且在处理的过程中"num==6",所以由"A"射出的连接线上只有"num > 5"满足条件,因此"B"活动满足条件被触发。
- 由该活动射出的连线上有若干个满足条件时
- 由该活动射出的连线上没有一个满足条件时
- "多路分支"型分支模式示例
如上图所示,由于"开始活动"的分支模式是"多路分支"并且在处理的过程中"num==6",那么根据上面的算法说明,由"开始活动"射出的连接线上为"默认值"所指的后继活动"人工活动"一定会被触发;又由于满足"num>5"的条件所以"人工活动1"也会被触发。
# 业务变量
业务变量是用户通过业务化的语言表达的一些规则参数或变量,方便在业务化建模过程中理解和使用。其主要用于业务规则和分支连线的简单表达式中。用户可能通过业务资源编辑器创建全局的业务变量,还可以通过流程建模过程,创建仅用于流程内部的业务变量。
一个业务变量对象在构成上通常由以下属性构成:
- ID
- 名称
- XPath
- 业务化描述
# 业务规则
业务规则是对条件表达式和计算规则的业务化描述。在BPS 产品中,业务规则分为两类,分支规则和参与者规则。分别使用在分支连线属性设置和业务流程活动的参与者属性设置中。您可以通过业务资源编辑器创建一个新的分支规则或参与者规则,并且使用内置的规则编辑器对其进行设计。
# 业务操作
业务操作是指经过业务化包装并实现的一个独立的业务功能逻辑。在BPS产品中,您可以快速地把业务操作通过流程建模设计器组装为自动活动,同时还可以将业务操作作为环节的触发事件。
业务操作的技术实现可以是无参的Java方法。
# 工作日历
工作日历是对业务流程参与者工作时间的模型化定义,一个工作日历可以是一个常规的工作时间(如:5×8小时工作日历),也可以根据企业需要定义一个详细的工作时间段(如:下午班、晚班工作日历)。BPS 产品提供了快速定义参与者工作时间模型的工具,并将其与参与者或流程模板进行关联。其主要使用范围为流程定义、活动时间限制设置等。
# 人工任务
人工任务是对业务流程中需要人工干预环节的业务化包装,其通常指向一个与用户交互的表单。在 BPS Process Composer 中,用户可以把人工任务组装成人工环节。一个人工任务的技术实现可以是一个JSP、一般的URL。
# 业务资源
业务资源是BPS为了支持流程的业务化定制而将业务流程中所使用到的要素的业务化包装,使得业务人员无需理解该要素的技术细节,而只需要关注其业务属性并使用,比如对自动活动所调用的业务处理逻辑(可以是一个Java方法)包装为一个"业务操作",业务流程配置员只需要根据其业务化的名称、功能描述等属性就可以进行选择和使用。
业务资源包括人工任务、业务操作、业务规则、业务变量、工作日历。
# 催办
催办是指管理员督促任务的参与者加快任务处理速度,管理员可以流程实例,工作项进行多次催办,并填写催办原因。
# 批注
批注是指管理员可以对流程实例或工作项添加批注信息,用以对流程实例或工作项标注提示信息、注意事项等。
← 产品概述 开发过程 (T2B) →