移动端任务审批完成后如何跳转到第三方表单原创
金蝶云社区-何旭东
何旭东
3人赞赏了该文章 449次浏览 未经作者许可,禁止转载编辑于2023年06月07日 16:33:12
移动端任务审批完成后如何跳转到第三方表单
需求描述
移动端待办任务处理完成后,需要重定向到第三方表单
 
目前处理策略
1、集成云之家APP
         1)待办任务列表:“系统参数”中勾选“返回云之家待办通知”,移动端审批处理完成后,会返回待办通知列表;“系统参数”中没有勾选“返回云之家待办通知”,移动端审批处理完成后,会跳转到流程助手页面待办列表

image.png

     2)流程助手待办列表:任务处理完成后,会返回流程助手待办列表

 

2、集成的其他渠道:钉钉、企业微信、WeLink、短信、邮件,任务处理完成后,显示的是当前任务的查看页面(即页面下方没有最初展现的处理任务按钮),该机制是由于苍穹目前暂时无法关闭集成的其他渠道页面

 

解决方案

通过扩展审批处理页面,增加扩展插件,来实现

1.       扩展标准页面wf_approvalpagemobile_bac

应用 - - 开发平台 - - 搜索 wf_approvalpagemobile_bac,找到这个页面并扩展

image.png

2.      

新增并启用扩展的插件,例如

kd.bos.workflow.taskcenter.plugin.ApprovalPageMobileDemoPlugin

表准插件如果无法禁用,可以不禁用,不影响效果。

image.png

插件中关键代码参考给出的示例代码:
 
package kd.bos.workflow.taskcenter.plugin;
 
import java.util.EventObject;
import java.util.HashMap;
import java.util.Map;
 
import kd.bos.form.IClientViewProxy;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.form.events.ClosedCallBackEvent;
import kd.bos.form.events.OnGetControlArgs;
 
public class ApprovalPageMobileZhangTaiPlugin extends ApprovalPageMobilePluginNew {
 
@Override
public void afterCreateNewData(EventObject evt) {
           super.afterCreateNewData(evt);
}
 
@Override
public void onGetControl(OnGetControlArgs e) {
           super.onGetControl(e);
}
 
@Override
public void itemClick(ItemClickEvent evt) {
           super.itemClick(evt);
}
 
@Override
public void click(EventObject evt) {
           super.click(evt);
}
 
@Override
public void closedCallBack(ClosedCallBackEvent e) {
           String actionId = e.getActionId();
           if("btntransfer".equals(actionId) || "approvalBtn".equals(actionId)){
                    //转交、同意or驳回操作,从成功页面回调后的情况 || 终止的情况
                    String operation = (String) e.getReturnData();
                    if(!"cancel".equals(operation)){
                             IClientViewProxy proxy = this.getView().getService(IClientViewProxy.class);
                   Map<String, String> mpURL = new HashMap<>(2);
                   mpURL.put("url",""); // 重定向的页面地址,比如 https://www.yunzhijia.com/
                   mpURL.put("noPushState", "true");
                   proxy.addAction("openUrl", mpURL);
                    }
           }else {
                    super.closedCallBack(e);
           }
}
}


赞 3