# 流程开发进阶
# 从视图记录发起流程
在视图中可设置自定义按钮为发起流程,按钮触发代码事件,点击时打开发起流程页面,并将当前行数据传递进流程表单中,方便流程发起。
详细步骤如下:
1.视图设置中点击动作设置,行内操作中添加自定义按钮
2.编辑自定义按钮,动作中点击执行代码,使用代码助手,点击打开流程,选择你当前表单所绑定的流程,点击插入代码,即可看到打开流程的js方法插入代码块中。
3.修改自动生成的代码块,在代码块上一行创建一个pkId
(固定)字符串,并赋值:
let pkId = formData.id
formData
为当前行数据的对象实体。完整如下图:
# 多子流程多任务
多子流程场景为父流程中选配子流程发起人,传递参数进入子流程并同时发起多条子流程。
详细步骤如下:
1.父表单引入人员选择组件,并绑定实体字段,打开人员选择组件多选;高级中打开流程参与者按钮,点击右侧xpath链接将xpath复制粘贴板中。
2.创建子流程,双击流程页面空白处,打开属性设置,点击流程参数tab页,设置流程参数
如上图所示,id
为父流程中所传递的父流程表单实体主键id,__bfp_entity
为父流程中表单的formData对象实体,user
为父流程中所选参与者对象,参数类型为com.eos.workflow.omservice.WFParticipant
。
双击打开流程发起环节人工活动,点击参与者tab页,选择相关数据选项,输入流程参数user
作为发起环节参与者。点击确认,保存流程即完成子流程配置。
3.创建父流程,双击流程空白处,点击相关数据tab页,添加相关数据,将父流程表单中复制的xpath值粘贴在相关数据名称中,类型为string
。
点击确认,双击子流程组件打开子流程配置,点击子流程策略配置tab页,选择启动多子流程策略,被迭代元素输入框中粘贴进父流程表单中的xpath值,迭代元素可自定义,这里定义为p
。切换至子流程参数配置页,选择刚刚创建的子流程,为子流程配置参数,子流程中的id
赋值当前表单实体中id值,用__bfp_entity/id
表示(__bfp_entity
即为表单中的formData),子流程中的__bfp_entity
赋值为__bfp_entity,子流程中参数user
的值为p
,三个参数皆勾选回填。点击确定,保存流程即完成多子流程多任务配置。
# 业务化流程参数
使用场景:报销审批流程,填报完金额后需要根据填报金额大小判断走向不同的审批分支;审批金额大于5000走向一级领导审批环节,审批金额小于等于5000走向上级领导审批环节。
完成上述场景我们需要用到下列流程属性:
业务参数:动态调整流程分支的条件值。
业务规则:定义流程分支的判断规则。
业务变量:定义变量接收流程表单中属性值。
详细步骤如下:
1.创建完流程后双击空白面板,打开属性设置弹窗,选择业务参数tab页,定义一个业务变量,名称与code自定义,点击右侧配置项图标,选择业务参数的输入控件、默认值与数据类型。
2.选择业务变量tab页,定义一个业务变量,xPath就是业务表单属性值在相关数据区路径。
3.选择业务规则tab页,定义一个业务规则,点击右侧编辑图标设置分支规则详细配置,在业务规则文本框内,左侧选择业务变量,右侧选择业务参数,设置规则表达式为流程表单金额填写大于5000时返回true。
4.双击需要配置分支规则的连线打开连线属性,取消默认连线分支,选择分则规则,配置好刚刚创建分支规则。即可完成业务化流程参数配置操作,当表单中填写金额大于5000,走向一级部门主管审批页面,小于等于5000走向上级主管审批环节。
5.在流程中配置好后可以再AFCenter平台的工作流程配置中使用,根据业务动态修改业务参数的值。
# 结合业务查询配置
使用场景:人员信息录入审批流程发起后,在工作流程=》我的任务中根据当前审批流程表单中的性别业务字段查询性别为男的已办任务列表。
完成上述场景我们需要用到下列流程属性:
业务查询属性:根据表单属性字段设置业务查询属性,完成业务查询场景。
详细步骤如下:
1.在创建好的业务流程中,双击空白面板,打开流程属性弹窗,选择最右边业务查询tab页。新增业务查询,选择好表单中的业务字段和对应的列名字段,打开查询条件开关。
2.点击配置项图标,打开业务查询详细配置,绑定查询控件与操作符,如果查询控件选择单选框,可以绑定字典值,或者自定义选项值。配置完成后保存流程即可。
3.打开AFCenter平台工作流程-我的任务页面,在我的待办页面点击高级查询,打开查询条件输入弹框,首先选择流程所在应用,然后选择我们配置好的业务查询的流程,即可看到刚刚的业务查询条件在这里显示出来。然后在业务查询条件中输入查询数据点击查询即可获取对应条件的数据。
# 流程多表单
使用场景:在财务报销审批流程中,提出报销审核和财务专员审核时,根据发起人与审核人的身份分别需要填写不同的表单,这样的一个多表单流程,就是通过在对应的节点设置节点表单来实现。
完成上述场景我们需要用到下列流程属性:
多表单:多表单流程主要是指流程审批时,根据场景需要在不同的节点填写不同的表单
详细步骤如下:
1.创建流程时绑定流程启动表单,拖动右侧图元构建流程图,双击第一个人工图元报销填报(即发起环节),打开图元属性修改弹窗,选择表单tab页,点击在线表单下拉框选择报销表单,选择表单状态为新增,点击确定关闭弹窗完成报销发起环节表单配置。
2.双击财务归集单填报图元,打开图元属性修改弹窗,选择表单tab页,点击在线表单下拉框选择财务归集表单,选择表单状态为新增,点击确定关闭弹窗完成财务归集单填报环节表单配置。
3.财务审核与财务总监审批环节图元只需配置报销表单与财务归集表单的查看状态即可完成流程多表单配置。
# ⾃定义参与者业务规则
使用场景:
使用自定义参与者规则功能,在工程申请表单填写金额大于5000时交由具体人员张三审批,工程审批金额小于等于5000时交由租户管理员角色审批。
完成上述场景我们需要用到下列流程属性:
业务规则:可选择参与者规则类型,用于流程中人工活动获取参与者,规则需要可以返回一个可用的参与者
业务变量:定义变量接收流程表单中属性值。
详细步骤如下:
1.创建一个工程审批流程绑定工程申请表单。
2.双击空白处打开流程属性设置面板,选择业务变量tab,新建一个业务变量,名称使用c_money
,XPath输入值__bfp_entity/money
(将表单中money值赋值给c_money变量)。
3.选择业务规则tab页,新建参与则规则,命名参与者规则,双击左侧业务变量字段在如果条件输入框内生成变量,使用右上方条件判断写出条件判断表达式。
4.双击工程审批图元,选择参与者tab页,点击选择下方引擎参与者规则,绑定刚刚创建的参与者规则即可。
5.展示效果即当表单金额大于5000时,审批环节流程参与者会来到指定员工张三的待办中;当表单金额小于等于5000时,审批环节流程参与者会来到租户管理员角色的待办中。
# 1对多数据模式的多任务处理
使用场景:
使用1:n的数据模型搭配多子流程场景,n端每条数据自定义子流程参与者。
完成上述场景我们需要用到下列流程属性:
多子流程:在父流程流转过程中创建多个新的流程并执行,结束后可以在此返回父流程
详细步骤如下:
1.创建1:n数据模型,并绑定关联关系。
2.根据数据实体创建子流程表单页面,n端作为子流程页面,具备可以自定义选择参与者功能,需要拖动一个人员选择组件,绑定审批人字段,打开高级选项,开启流程参与者按钮。
3.根据数据实体创建父流程表单页面,1端作为主流程页面,需要拖选子表格组件,绑定n端默认视图,子表格绑定数据实体n端字段,编辑模式选择弹窗,保存主流程。
4.首先创建子流程,绑定刚刚创建的n端子流程表单,双击空白打开流程属性定义页面,选择流程参数tab页,创建user
参数用于接收父流程配置的参与者,__bfp_entity_expand
参数是固定格式,用于接收父流程表单页面的参数传递。
5.创建父流程,绑定刚刚创建的1端父流程表单,拖选子流程组件,这里需要注意的是,需要在子流程的上一个相邻环节为子流程定义参与者,否则就需要前端表单js自行定义参与者数据。
6.双击子流程活动组件,打开子流程配置页面,选择多子流程配置,勾选启动多子流程设置,迭代变量自定义参数p,被迭代变量来源自主表单中子表格绑定参数students,在流程中表单对象用__bfp_entity
,所以这里被迭代变量是__bp_entity/students
。
7.选择子流程参数tab页,选择刚刚创建的子流程,为子流程参数赋值,并勾选回填。
//user取迭代变量中的__relativeData对象下的__bfp_participant_status,__relativeData格式固定,__bfp_participant_status来源自n端表单中选人组件开启流程参与者按钮后,自动生成的参数,可在开启选人组件流程参与者按钮处复制该参数。
user: p/__relativeData/__bfp_participant_status
//__bfp_entity_expand取迭代变量p
__bfp_entity_expand: p
8.在n端表单的中,创建表达按加载后事件,将父流程传递过来放在前端相关数据区中的数据取出并为表单赋值。
# 流程流转时修改表单业务状态
使用场景:教师发起入职信息填写申请表单,提交后自动触发逻辑流修改申请表状态为申请中,管理员审批同意提交后,自动触发逻辑流修改申请表状态为在职。
完成上述场景共有两种方案可以使用。
方案一:业务事件触发逻辑流修改表单业务状态
需要用到下列流程属性:
业务事件:根据流程触发时机在应用端触发逻辑流调用。
详细步骤如下:
1.创建流程事件逻辑流,双击空白面板。定义流程表单绑定实体参数变量,这里设置变量t,类型为教师信息实体,参数配置表为系统默认,无需修改。
2.使用脚本图元,双击打开编辑脚本。完成判断与赋值。
//逻辑流内formData规定为数组,这里的formData[0]为取表单内的实体对象为定义变量t赋值
context.t=formData[0];
//判断教师实体对象t中参数status如果是空,表明为流程发起提交环节,设置教师审核状态为审核中;不为空调用该逻辑流时则表明审核通过,设置教师状态为在职
if(context.t.status == null){
context.t.status = "applying";
}else{
context.t.status = "zaizhi" ;
}
3.使用逻辑流图元,双击打开逻辑流图元,使用save方法,传入变量t给逻辑流,点击保存关闭弹窗即完成逻辑流配置。
4.回到流程节点中去,在教师入职填报与教师入职信息审核节点分别双击图元,选择业务事件tab页,新增业务事件,触发时机选择提交(提交:流程按钮事件,表示在提交流程时触发调用逻辑流的事件
),事件动作绑定我们刚刚创建的逻辑流即可,保存后完成流程流转时修改表单业务状态场景配置。
方案二 :业务环节绑定表单字段修改字段值
需要用到下列流程属性:
业务环节:根据流程提交环节绑定表单字段并修改字段值。
详细步骤如下:
1.创建教师信息表单后,拖选一个下拉控件绑定教师状态字段,并给下拉组件绑定业务字典。
2.根据创建的表单创建一条教师信息审核流程,双击空白面板切换到业务环节tab页,开启业务环节开关, 选择表单字段为教师状态字段。
3.下方每个节点可以选配业务字典的值,配置完成后,保存流程,提交相应节点就可以按照节点配置修改教师状态的值。
效果展示:
审核时:
审核通过: