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

苍穹工作流中,流程在流转审批过程中,根据业务需要,可能会临时增加新的节点,指定人员进行审批,这种运行时临时增加的新审批环节,就是加签。
有了加签功能,审批人可以向前或向后动态添加审批节点。关于加签的详细介绍,可参考往期文章:一文掌握“流程加签”。
除了标准的加签功能,苍穹工作流还提供了多种二开方案,以满足不同客户的需求。本期小编就为大家介绍一下加签都有哪些二开方案~
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();
苍穹工作流那些事 之 加签二开方案集锦
苍穹工作流中,流程在流转审批过程中,根据业务需要,可能会临时增加新的节点,指定人员进行审批,这种运行时临时增加的新审批环节,就是加...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



