流程流转设置即设置流程审批流,每个审批流可定义适用组织范围,流程入口条件。
1.如何设置流转
(1)流转设置-新建流转
新建流转相关参数说明:
参数 | 说明 |
---|---|
流转名称 | 填写流转名称,自定义即可 |
类型 | 分为主流转、子流转,一般都是用主流转,子流转用于多条分支并行的场景,参照wiki:11.多分支并行审批 |
权重 | 发起流程时,会根据权限优先查找和判断该流程是否满足条件,数值越大,优先级越高,有值且仅当数值大于1时生效! |
所属组织 | 流转维护所属组织 |
流转审批人 | 用于节点审批人离职时,任务自动转移给此处设置的人审批 |
是否发起人选择审批人 | 开启后,在提交表单时由提单人选择设置了手动选择审批人节点的审批人 |
(2)勾选新建的流转设置适用范围:
适用范围:用于控制流程发起人能找到哪条流程发起,根据流程发起人所在组织权限控制。例如A单位员工只能找到适用范围是A单位及其上级所有单位的流程,按照从下往上最小原则查找,先找到符合条件的最小适用范围流程。
(3)点进新建的流转设置节点,新增或引入节点—— 点击右下角保存 ——列表勾选流转点击启用并发布。
(4)流程在已发布状态下支持修改流转,这样在修改过程中不影响客户正常提交流程。流转也不需要禁用,在启用状态下可直接编辑流转,新增删除或者修改私有节点的配置。(简单来说就是流程不需要取消发布,流转不需要禁用,如果需要编辑流转或者私有节点直接点击流转设置进行编辑即可,如果编辑完还是不确定可以先点保存,确定无误再点击右下角的发布,发布之后走的是流转的最新版本)
2.需要限制只能看到自己管理部门创建的流转
(1)流转设置-元数据配置-filters中配置过滤
配置如下:
{ "filters": [{ "label": "所属组织", "key": "owner_depart_id", "plan_exclude": true, "component": "hc-standard-tree-selector", "sequence": 5, "options": { "default": true, "selectorModel": "OrgDepartment", "required": false, "child_include": true, "filter_dict": { "org_type": [ 10, 20 ] }, "extra_property": { "role": "sys-manager" } } }], "advance_query": { "default_meta_length": 3 } }
3.流程入口条件设置
3.1.功能背景
入口条件是流程的第二道关卡,第一关卡是适用范围。会根据提交人的适用范围选择合适的流程。然后再去读取入口条件是否满足
3.2.条件分类
根据一些入口信息来卡流程,是否满足条件。一般为以下几种~
提交人信息:根据提交人的基本信息来判断,设置条件;
单据信息:根据表单字段的值来判断,设置条件;
提交人部门/单位/岗位/任职信息:根据提交人所在的部门/单位/岗位、任职信息设置分支条件;
提交人考勤组织信息:根据提交人考勤档案对应的考勤组织信息设置分支条件;
表格信息(子模型):若在表单设置中,有设置表格的时候该功能才会出现,即可以根据设置的表格信息设置条件。注意:用表格信息判断时,默认是用表格的第一行数据判断;
注意
2.1在入口条件处配置不能使用wst 或者inst 取流程的信息,因为此时还在寻找流程定义并没有生成流程实例信息。所以你根本取不到。
详细表达式可以查看流程表达式配置:11 流程表达式
2.2当入口条件比较多且有很多并且、或者条件时,可以点击马上调整,对入口条件的关系进行调整
比如说上图,需要用括号把条件分隔开来,让条件符合入口判断逻辑,调整之后可以是 (1 AND 2) AND (3 OR 4 OR 5)
3.3.这里重点提供下云函数的配置方法
云函数:
class OtherExtendPlugin(object): """ 其他类别云函数 """ def execute(self, **kwargs): """ 正式执行方法 """ employee_id = kwargs.get('employee_id') return True
云函数根据流程表达式,拿到些基本信息后,对应二开进行逻辑处理。最后返回True或者False。True即可以满足入口条件、False为不满足