如何在审批记录控件里看到历史审批记录

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何在审批记录控件里看到历史审批记录

1 业务背景

【场景描述】

  场景1:单据被驳回后重新寻址进入流程

  场景2:单据反审核后再次进入流程

  场景3:某些业务单据在不同业务阶段需要多次进入流程审批。

  以上场景,流程会重新发起一个新的流程,目前我们系统的审批记录只展示最新一次流程实例的审批信息。

客户需求

  需要在审批记录的控件里显示全部审批记录(包含历史审批记录),方便知道之前的审批情况。


2 解决方案

工作流审批记录开放了自定义数据源的接口,可以在接口里查询出全部的审批记录返回,实现步骤如下:

步骤一

实现IWorkflowPlugin接口,实现getCustomApprovalRecordGroup(String businesskey, Map<String, Object> params) ,二开代码如下

@Override
    public List<IApprovalRecordGroup> getCustomApprovalRecordGroup(String businesskey, String entityNumber, Map<String, Object> params) {

        List<IApprovalRecordGroup> list = new ArrayList<>();
        QFilter pFilter = new QFilter("businesskey", "=", businesskey);
        //根据单据id查询所有流程实例按创建时间排序
        Map<Object, DynamicObject> hiprocinsts = BusinessDataServiceHelper.loadFromCache("wf_hiprocinst", "processinstanceid,businesskey", new QFilter[]{pFilter}, "createdate");

        for (Map.Entry<Object, DynamicObject> entry : hiprocinsts.entrySet()) {
            DynamicObject hiprocinst = entry.getValue();
            //获取流程实例id
            Long processInstanceId = hiprocinst.getLong("processinstanceid");
            //通过流程实例id查询每一次审批记录,二开还可以在这里过滤筛选需要哪几次流程实例的审批记录
            Map<String,Object> parm =new HashMap<>();
            //V6.0.04版本新接口,通过传入参数控制流程记录不进入二开插件,否则会进入死循环。
            parm.put("isNotUsePlugin",new Boolean("true"));
            List<IApprovalRecordGroup> recordGroups = getTaskService().queryApprovalRecord( businesskey,processInstanceId,parm);
            //拼接多个流程实例审批记录
            list.addAll(recordGroups);
        }
        return list;
    }


【步骤二】

进入开发平台,搜索wf_confcenter

点击列表预览加入增加如下参数:

fkey: 值为customApprovalRecord,不可修改

fvalue: 值为{"type":"class", "value":"wx71.hls.tdd.plugin.workflow.CustomApprovalRecord"},格式不可改,value的值代表实现自定义数据源的类路径。


4 注意事项

1、该方法实现后所有单据显示审批记录的地方都会加载历史审批记录,请仔细评估客户的需求场景后再用。

2、由于该方法依赖审批记录提供的新接口,需要苍穹V6.0.04版本以上才支持。走旧版本接口会导致取审批记录进入死循环。


5 相关资料(可选)

苍穹工作流审批记录自定义数据源

如何在审批记录控件里看到历史审批记录

1 业务背景【场景描述】 场景1:单据被驳回后重新寻址进入流程 场景2:单据反审核后再次进入流程 场景3:某些业务单据在不同业务阶...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息