苍穹工作流那些事 之 加签二开方案集锦

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

苍穹工作流那些事 之 加签二开方案集锦


苍穹工作流中,流程在流转审批过程中,根据业务需要,可能会临时增加新的节点,指定人员进行审批,这种运行时临时增加的新审批环节,就是加签


有了加签功能,审批人可以向前或向后动态添加审批节点。关于加签的详细介绍,可参考往期文章:一文掌握“流程加签”


除了标准的加签功能,苍穹工作流还提供了多种二开方案,以满足不同客户的需求。本期小编就为大家介绍一下加签都有哪些二开方案~




1 应用场景


场景一:加签时,只允许选择一人加签。


场景二:加签时,按条件过滤加签人员。


场景三:加签时,指定加签节点的属性值,比如,决策项、转交、协办等待。


2 解决方案


步骤一:扩展加签页面(wf_addsignpage),路径为:【开发服务云】→【开发平台】→【流程服务云】→【工作流服务】应用→【任务中心】→【任务加签】,如下图所示:


扩展加签页面


步骤二:在扩展的页面注册相应的二开插件,如下图所示:


注册二开插件


场景一:只允许选择一人加签


针对场景一:加签时,只允许选择一人加签,对应的插件事例代码如下:


public class AddSignBeforePlugin extends AbstractFormPlugin{
       @Override
       public void createNewData(BizDataEventArgs e) {
              this.getPageCache().put("onlyoneuser", "true");
       }
}


运行效果为:加签选人时为单选,已经选中一人后,隐藏加人入口,只有删除当前人员后,会显示加人入口,重新选人,如下图所示:


加签时,只允许选择一人加签


场景二:按条件过滤加签人员


针对场景二:加签时,按条件过滤加签人员,对应的插件事例代码如下:


public class ValidatorForSelectAddSignUserDemo extends AbstractWorkflowPlugin {
     @Override
     public void customEvent(CustomEventArgs e) {
              if(e != null && BeforeAddSignAddUserCustomEvent.SELECT_ADDSIGNUSER_ISOLATION.equals(e.getKey())
                                 && e instanceof BeforeAddSignAddUserCustomEvent) {
                        BeforeAddSignAddUserCustomEvent bac = (BeforeAddSignAddUserCustomEvent) e;
                        ListqFilters = bac.getQFilters();
                        if(qFilters == null) {
                                 return;
                        }
                        QFilter qFilter = new QFilter("entryentity.dpt.id", QFilter.equals, RequestContext.get().getOrgId());
                        qFilters.add(qFilter);
              }
     }
}


运行效果为:加签选人页面里的人员,与当前加签人隶属于同一个组织。


场景三:指定加签节点的属性值


加签时,加签节点的属性值是固定的,且不能修改,但可以通过二开,指定加签节点的属性值,比如,决策项、转交、协办等待,相应的插件事例代码如下:


public class ValidateAddSignConfirmPlugin extends AbstractWorkflowPlugin {
    @Override
    public void customEvent(CustomEventArgs e) {
        if(e != null && BeforeAddSignConfirmCustomEvent.SELECT_ADDSIGNCONFIRM_ISOLATION.equals(e.getKey()) 
                && e instanceof BeforeAddSignConfirmCustomEvent) {
            BeforeAddSignConfirmCustomEvent bac = (BeforeAddSignConfirmCustomEvent) e;
            Map<String, Object> extProps = bac.getExtProps();
            extProps.put("allowRejectAndGoBack", true);
            Map<String,Object> extendBtns = initBtnModel2();
            extProps.put("btnModel", extendBtns);
        }
    }
    private Map<String,Object> initBtnModel2() {
        Map<String,Object> btnModel = new HashMap<>();
        btnModel.put("extendBtnsWhenMatch", true);
        List<Map<String,Object>> extendBtns = new ArrayList<>();
        Map<String,Object> extendBtn1 = new HashMap<>();
        extendBtn1.put("btnName", "打印设置");
        extendBtn1.put("displaytype", "all");
        extendBtn1.put("btnImgUrl", "/****/zhanxianzhifangshi_100_100.webp");
        extendBtn1.put("btnNumber", "printsetting");
        extendBtn1.put("operationNumber", "printsetting");
        extendBtn1.put("operationName", "打印设置");
        extendBtns.add(extendBtn1);
        btnModel.put("extendBtns", extendBtns);
        return btnModel;
    }
}


3 常见问题


Q1:上述的二开场景,是否支持移动端?


A1:支持,仅需要扩展移动端加签页面(wf_addsignmobile),注册相应的插件即可。


Q2:苍穹工作流的“加签”功能有哪些使用限制?


A2:特殊场景暂不支持加签,比如当前节点有多条入口线时,不支持前加签;当前节点有多条出口线时,不支持后加签。


4 相关链接


更多苍穹工作流加签相关资料,请参考如下链接:


加签功能介绍

加签API接口

工作流平台特性汇总

工作流常见问题汇总


5 划重点


1.苍穹工作流提供的加签功能,支持审批人向前或向后动态添加审批节点,同时提供多种二开方案,满足不同的业务场景需求,如:


1)加签时,只允许选择一人加签;


2)加签时,按条件过滤加签人员;


3)加签时,指定加签节点的属性值,比如,决策项、转交、协办等待。


2. 实现加签二开方案只需两步:第一步,扩展加签页面(wf_addsignpage);第二步,在扩展的页面注册相应的二开插件。




#往期推荐#



#  五分钟新建流程攻略

#  让你一次看通透,流程参与人那些事

 苍穹工作流那些事 之 流程节点

#  苍穹工作流那些事 之 流程启动

 刚柔并济,流程动态配置方案详解

 苍穹工作流那些事 之 流程线

#  快速掌握流程变量的用法


更多精彩内容,“码”上了解!↓



苍穹工作流那些事 之 加签二开方案集锦

苍穹工作流中,流程在流转审批过程中,根据业务需要,可能会临时增加新的节点,指定人员进行审批,这种运行时临时增加的新审批环节,就是加...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息