流程应用
流程应用,提供设置流程启动,流程与表单的关联,流程与机构的关联,流程各步骤的设置等功能。
1. 功能介绍
V-AppBase配置流程业务,有2种方式:
(1)流程定义配置流程
(2)流程应用配置流程
其中,使用流程应用配置流程功能范围更广,可以满足多种业务场景的需求。
2. 流程应用
流程应用,提供设置流程的启动条件,流程与表单的关联,流程与机构的关联,流程各步骤的表单只读、使能、显示的控制。流程各步骤的执行人、分支判断条件、操作菜单、扩展业务操作,流程表单的打印样式方案选择,移动端表单生成方式,待办任务名称自定义等。
在配置中心菜单中,选择:业务系统初始化配置 → 流程管理 → 流程应用 → 流程应用,进入流程应用功能。
info
- 流程应用中的基础设置,与流程图定义中基础设置原理一样。
- 相同的属性设置,如果在流程图定义中设置了,会同步至流程应用中。
- 同样,在流程应用中设置了,也会同步到流程图定义的属性中。
- 查看流程状态:可启用/停用流程。
- 启动操作菜单:一般保留默认,可按需设置。
- 默认启动和开始环节表单才可编辑,其他环节不可编辑:默认勾选,可按需设置。
- 默认流程办结不须填写审批意见:默认不勾选,无需填意见,可按需设置。
- 流程事件:可以按需设置流程结束后、结束前、启动后、启动前、取消后、重启后相关事件。具体使用参考:案例-请假申请。
- 设置流程更多属性:基础属性(流程名称)。
- 查看流程图。
目前关联表单,可以支持2种类型:单据、窗体。待选数据均来源于流程表单管理选入的窗体和单据实例数据(一般场景下,只需设置窗体类型)。
1. 关联表单:一个流程应用可以关联一个表单或者多个表单。
2. 任务名称:系统默认有名称,用户可按业务需要自定义。
info
- 在开发平台中执行事件(或打开流程启动窗体)启动流程时,一般会传待办任务名称参数Topic;
- 若流程应用关联表单时,任务名称不设置,则使用开发平台传入的参数Topic;
- 若流程应用关联表单时,任务名称设置,则优先使用流程应用设置的任务名称。
(1)可用 ConcatStr() 函数 或 format函数 对字符串进行拼接。
例1:ConcatStr("hello"," ","world") 返回值为"hello world"。 参数1--字符串(字符串类型); 参数n--字符串(字符串类型);
例2:Format("ab{0}cd{1}","12","3") 返回值为"ab12cd3"。参数1--模式串(字符串类型); 参数2--拼接串(各种类型); 参数n--拼接串(各种类型)。
(2)业务举例: ConcatStr([leave].[bizCode],"-",[leave].[inputOrg],[leave].[inputPerson],"请假",[leave].[applyDays],"天")
配置:
3. 审批表:目前流程审批表的模版、打印模版都是通过配置流程表单管理中的审批表实现
(1)审批表配置入口:流程应用 → 流程表单管理 → 审批表
(2)点击【审批表】列,打开【流程表单审批表管理】窗体,在该窗体中可新增、删除、修改流程表单审批表信息(可对流程表单设置多个审批表,这样在流程应用 → 关联表单,设置审批表时,即可选择不同的审批表)
(3)设计器——开始
用于编辑数据模板内容的格式,与Excel的使用方式类似。
注意:可以直接从Excel复制粘贴数据到设计器上(反之亦可),也可以支持导入Excel文件。
(4)设计器——数据
- 保存模板:保存设计的模板。
- 设为表达式:加标识{{ }}。注意:这里引用的实体或者变量都要设为表达式才可解析。
- 取消表达式:去掉标识{{ }}。
- 建组:用于以列表方式展示数据,一般审批表中的审批意见要创建组。注意:操作时,需选中行头,再点击“创建组”,才有效。
- 取消组合:取消以列表方式展示数据。注意:操作时,需选中行头,再点击“取消组合”,才有效。
- 设计模板:审批表的具体样式设计。
(5)设计器——视图
设置垂直、水平网格线是否显示。
(6)设计器——设置
- 工作表设置:设置行数、列数,以及网格线。
- 打印设置:设置纸张、打印方向、左边距、右边距、上边距、下边距,以及打印方式。
(7)设计器——实体
- 实体:流程应用关联表单对应界面的实体。
- 流程实体:流程审批信息实体。
- 流程变量:流程流转过程中的变量,包括:流程定义信息、活动定义信息、流程实例信息、活动实例信息、流程任务信息实体。
(8)设计器——具体操作
第一步:画好审批表具体界面样式,注意:这里设计的审批表宽度大约在780px左右,太宽会分页显示。
第二步:在单元格中设置实体字段,并设为表达式。
由于一个请假单中,会有多条审核信息,因此需要将审核信息创建组(注意:创建组的数据必须为同一实体 ) 。
在单元格中,同样支持format和concatstr函数拼接字符串。
例如:{{Format("{0}审批意见:",#[AuditOpinion].[activityName])}} —— 解析出来的格式为:【xxx审批意见】
第三步:设置审批表二维码
单元格配置实体字段或常量(注:常量用双引号)
单元格配置实体字段或常量,点击“二维码”,弹出二维码设置页面,选择编码确定后,再点击“设为表达式"即可。
第四步:保存设计模板
第五步:在流程应用 → 关联表单 → 审批表,选择需要显示的审批表模板。
在设置审批表的对应业务单据发起审批,到达审批人的待办页面,点击“审批表”即可查看到审批表内容。
点击审批表的打印按钮,会调用浏览器打印服务,选择对应打印机打印即可。
下图,为流程审批表设置二维码效果。
4. 移动窗体
设置移动窗体有两种方式:
自动转换移动窗体的"基于PC自动生成"(注:这种需要事先到“流程表单管理”窗体进行移动表单转换)。
非自动转换的“手工指定”比如:当开发配置了一个普通窗体1作为pc端使用,同时也配置了一个移动窗体2用于移动端使用,这个时候流程应用里选择关联表单为普通窗体1,设置这个表单的移动窗体为移动窗体2,这样当在pc端和移动端访问的时候就是不同的窗体。
依据客户实际业务场景,如果关联机构不设置,所有发起业务表单都走同一条流程审批。
例如,有2个请假流程,同一个请假表单C,顶级机构为同望科技,下级机构为银弹谷,如下:
① 流程应用A,绑定请假流程定义A1(流程图:开始 → 人工1 → 结束),关联请假表单C,设置关联机构:银弹谷。
执行效果:银弹谷机构下的人员,提交请假申请时,打开请假表单C,但审批流程为A1。
② 流程应用B,绑定请假流程定义B1(流程图:开始 → 人工1 → 人工2 → 结束),关联请假表单C,设置关联机构:同望科技。
执行效果:同望科技机构下的人员,提交请假申请时,打开请假表单C,但审批流程为B1。
注:即使银弹谷机构下的人员,也同属同望科技,但是在执行流程审批时,会优先找到自己的直接上级机构关联的流程应用。
检查策略有:业务策略和菜单策略两种。
菜单策略:对流程维度菜单进行控制,例如:打开待办任务右上角的提交任务、任务退回按钮的控制;
业务策略:对业务表单上的控件等进行控制。
(1)业务策略
填写策略名称;
选择生效范围(哪个环节);
选择生效时机,业务策略的生效时机有三种”表单打开后“、”任务提交前“、”任务回退前“;
设置条件,即满足该条件时才会触发这个策略;
设置策略的执行动作,即满足这策略的条件后,需要实现的动作。
例如:【总经理】控件默认在审批环节打开时不使能,下面设置在部门经理审批环节"使能"
效果:
(2) 菜单策略
- 填写策略名称;
- 选择生效范围(哪个环节);
- 设置条件,即满足该条件时才会触发这个策略;
- 设置策略的执行动作,即满足这策略的条件后,需要实现的动作。
例如:在所有审批环节,设置关闭、任务传阅按钮不使能
效果:
若一个表单关联多个流程应用,启动流程时将弹出选择对应的流程应用,结合启动策略返回的条件做过滤(一个流程应用中若设置多个启动策略,则需要同时满足)。
如果表单关联3个流程应用,按照启动策略只有2个流程应用满足条件,那么弹出选择流程应用的界面只显示2条可选流程应用;
如果只有1个流程应用满足启动策略条件,不弹出选择,直接启动流程。
info
- 流程应用中的环节设置,与流程图定义中环节设置原理一样。
- 相同的属性设置,如果在流程图定义中设置了,会同步至流程应用中。
- 同样,在流程应用中设置了,也会同步到流程图定义的属性中。
环节设置,可对流程定义的各个环节进行设置:执行人、环节属性、输入线条件、对应表单、操作菜单、是否可编辑,以及审批意见。
1. 执行人:主要设置各环节的审批办理人。
2. 环节属性:一般保留默认,也可以按需设置活动名称、流转属性、活动相关事件。
各个事件的触发点如下:
- 活动执行前:当用户启动流程后,该事件已触发;
- 活动执行后:当用户启动流程后,该事件已触发;
- 活动完成后:当“人工1”环节节点上的所有代办任务都审批后,该事件触发;
- 任务产生后:当用户启动流程后,该事件已触发;
- 任务取消后:在流程监控中,取消该任务之后,该事件触发;
- 任务暂停后:在流程监控中,暂停该任务之后,该事件触发;
- 任务激活后:在流程监控中,对已暂停的任务,启动“唤醒”后,该事件触发;
- 任务完成后:当“人工1”环节审批对应的待办任务后,该事件触发;
- 任务暂停后恢复:在流程监控中,对已暂停的任务,启动“唤醒”后,该事件触发;
- 回退源头执行后:结合流程图定义“开始->人工1->人工2->结束”,当任务流转到“人工2”时,如果在审批过程中退回任务给“人工1”,那么“人工2”称为源头,“人工1”称为目标。点击退回任务之后,在“人工2”中配置的“回退源头执行后”事件触发,配置在“人工1”中的“回退目标执行后”事件触发;
- 回退目标执行后:参考“回退源头执行后”的解释;
- 取回源头执行后:结合流程图定义“开始->人工1->人工2->结束”,当任务流转到“人工1”时,那么“人工1”称为源头,“人工2”称为目标。“人工1”提交任务后, 若“人工2”未打开待办任务,那么“人工1”在已办任务中可取回该任务,此时在“人工1”中配置的“取回源头执行后”事件触发,配置在“人工2”中的“取回目标执行后”事件触发;
- 取回目标执行后:参考“取回源头执行后”的解释。
3. 输入线条件:在流程图中,有分支条件和判断条件时,需要设置输入线条件。
4. 对应表单:环节的对应表单通常不需要专门设置,不设置的时候默认取流程应用绑定的表单,除非需要实现一个流程定义在启动、审批各个环节需要显示不一样的表单才需要在这里绑定。
5. 操作菜单:这里设置各个环节的流程操作菜单,如发送、退回、转办、特送等。已设置好人工环节的默认菜单,一般使用默认即可,无需特别设置。
6. 可编辑:可设置除启动和开始环节的其它环节表单可编辑。
若在基础设置中,勾选上"启动和开始环节表单可编辑,其他环节不能编辑",流程流转到其他环节时,业务表单则不可编辑;
若在环节设置中,勾选上"人工环节"的可编辑,那么流程流转到人工环节时,该表单则可编辑。
7. 审批意见:可设置除启动和开始环节的其它环节是否不填意见,不进行审批表操作。
- 不填意见:勾选上该选项,那么该环节的待办任务在提交的时候无需填写审批意见;
- 不进审批表:勾选上该选项,那么该环节填写的审批意见将不进入审批表里选不到对应构件方法的时候,应该去”业务系统初始化配置 → 初始配置 → 待选构件方法管理“中,选择对应的菜单目录,新增对应的构件方法。
3. 流程表单管理
流程表单管理,提供设置用于与流程应用关联表单的待选数据。
可以绑定的表单的别名,表单绑定物理表,移动端表单展现,表单打印样式(审批表)的设计等。
- 在流程表单管理中,允许绑定窗体和业务单据实例两种类型,均作为流程应用中关联表单的待选数据。
- 设置业务单据实例和窗体类型的表单操作类似,一般项目场景选择窗体类型即可,下面只讲解窗体类型的配置。
(1)配置移动表单转换
选入表单后,点击【移动表单信息】列的链接,在弹出的窗体中,点击完成按钮即可。
info
- 若窗体有列表、树表、树控件,需要在窗体右边的“窗体控件”栏中勾选上,否则生成的移动表单不会显示对应的列表、树表、树控件;
- 其他的控件会自行生成,无需勾选。
生成移动表单后,在移动端打开该窗体会转化成对应移动界面。
(2)移除移动表单转换
配置移动表单转移后,允许移除。
目前流程审批表的模版、打印模版都是通过配置流程表单管理中的审批表实现。
(1)新增审批表
选入表单后,点击【审批表】列的链接,在弹出的【流程表单审批表管理】窗体中,点击新增按钮,将弹出【设计器】,在该窗体中进行配置审批表的信息。
具体使用参考:流程应用 → 任务名称/审批表/移动窗体的配置。
(2)打开策略
当一个表单有多个审批表时,点击打印的时候会有多个审批表可供选择。
如果希望当满足某个条件时直接进行打开审批表,不需要手动选择时,可以设置审批表的打开策略。
例如:在请假申请示例中,请假天数大于3天,才能打印【审批表模版】这个审批表。
注:打开策略只针对自定义【审批表】按钮执行逻辑配置打开审批表时才生效。若在流程应用中,关联表单选入审批表时,打开策略不生效。
可以查看:案例-审批表设置
若自定义【审批表】按钮,基本配置逻辑如下:
第一步:新增构件方法openExamineTable(打开审批表)
第二步:执行方法API_GetBizProcessInstanceRela(API获取业务ID与流程实例关联信息),传入业务ID,获取流程实例ID。
添加引用:vbaseworkflow (VBase流程管理_API)
方法输入:
方法输出:
规则:
第三步:执行方法API_GetProcessTask(API获取流程任务信息),传入流程实例ID,获取任务ID。
方法输出:
规则:
第四步:执行方法_API_WorkFlowChainQueryBizWindowExcel(查询流程表单审批表),传入流程实例ID,获取任务ID。
添加引用:vbaseprd_workflow_api (vbase产品化流程API)
方法输出:
规则:
第五步:在表单中配置按钮【审批表】,执行构件方法openExamineTable(打开审批表)
添加引用:vbaseprd_workflow_excel_relative (vbase产品化流程审批表关联)
方法变量:
规则:
第六步:执行效果
(3)审批表复制
当同一个表单,多个审批表之间几乎都是相同的审批表样式,只是少量业务表字段的差异,可以把已存在的审批表复制,复制后再按需求更改名称即可。
在流程表单管理中,提供流程表单导入导出功能。
(1)流程表单导出
(2)流程表单导入
info
- 流程表单会根据目录ID自动匹配到相应的目录下,若是匹配不成功,将由用户指定导入目录;
- 当系统已存在相同的导入流程表单数据,会进行覆盖更新;
- 忽略不匹配数据:导入时会忽略系统窗体不存在的流程表单;
- 覆盖相同审批表:当系统已存在导入的审批表文件,会进行覆盖更新。
4. 流程审批状态管理
流程审批状态管理,提供设置产品、项目自定义个性化的审批状态的别名。
5. 流程应用属性复制
流程应用属性复制,提供了选择流程应用对应的流程级别、以及活动级别事件属性设置,复制到其他流程应用中。