二开案例.表单插件.审批界面关闭后打开信息中心
【应用场景】
从第三方系统打开待办任务,跳转到星空进行审批,审批成功并关闭审批界面后,自动打开信息中心。
注意:该方案仅适应于H5端。
【案例演示】
从第三方系统打开采购订单的待办任务,自动单点登录到星空,跳转到工作流任务处理界面,用户提交后,自动打开信息中心。
【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS; using Kingdee.BOS.Business.PlugIn; using Kingdee.BOS.Core; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Util; using System.ComponentModel; using System.Linq; namespace Jac.XkDemo.BOS.Business.PlugIn { /// <summary> /// 【表单插件】审批界面关闭后打开信息中心 /// </summary> [Description("【表单插件】审批界面关闭后打开信息中心"), HotUpdate] public class OpenWorkListAfterSubmitFormPlugIn : AbstractDynamicFormPlugIn { public override void FormClosed(FormClosedEventArgs e) { base.FormClosed(e); if (this.Context.ClientType == ClientType.Html&& this.View.Session.ContainsKey("SubmitSuccess") && ObjectUtils.Object2Bool(this.View.Session["SubmitSuccess"])) // Html5提交成功 { if (!MainConsoleHasOpenedForm(this.View, "WF_Worklist_Main")) // 如果已经有打开的信息中心,就不再打开新窗体 { var mainPageChildView = this.View.GetView(FormConst.MainPageId); if (mainPageChildView != null) { string errorMsg; var funcDetailId = "e86b8c9450c544d0a3280d9e647f8a8d"; // 信息中心菜单标识 var showPara = MainConsoleHelper.GetDynamicFormShowParameter(funcDetailId, this.View.Context, this.View.Model, out errorMsg); if (showPara != null) { mainPageChildView.ShowForm(showPara); this.View.SendDynamicFormAction(mainPageChildView); } } } } } /// <summary> /// 获取主控台子窗体实例 /// </summary> /// <param name="view"></param> /// <returns></returns> public static IDynamicFormView GetMainPageChildView(IDynamicFormView view) { if (view.ParentFormView == null || view.ParentFormView.PageId == FormConst.MainPageId) { return view; } return GetMainPageChildView(view.ParentFormView); } /// <summary> /// 主控台是否已经打开某个业务对象 /// </summary> /// <param name="view"></param> /// <param name="formId"></param> /// <returns></returns> public static bool MainConsoleHasOpenedForm(IDynamicFormView view, string formId) { var mainPageChildView = GetMainPageChildView(view); if (mainPageChildView != null) { var childenPageIds = mainPageChildView.GetChildenPageIds(); if (childenPageIds.Any(pageId => !string.IsNullOrWhiteSpace(pageId) && view.GetView(pageId) != null && view.GetView(pageId).OpenParameter != null && view.GetView(pageId).OpenParameter.FormId.EqualsIgnoreCase(formId))) { return true; } } var mainPageView = view.GetView(FormConst.MainPageId); if (mainPageView != null) { var childenPageIds = mainPageView.GetChildenPageIds(); if (childenPageIds.Any(pageId => !string.IsNullOrWhiteSpace(pageId) && view.GetView(pageId) != null && view.GetView(pageId).OpenParameter != null && view.GetView(pageId).OpenParameter.FormId.EqualsIgnoreCase(formId))) { return true; } } return false; } } }
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展:任务处理H5[WF_AssignmentApprovalH5],注册表单插件,用于控制工作流提交后自动打开信息中心。
扩展:审批任务处理H5[AP_ApprovalAssignHandleH5],注册表单插件,用于控制审批流提交后自动打开信息中心,保存元数据,开发完毕。
【功能验证】
从第三方系统打开采购订单的待办任务,自动单点登录到星空H5端,跳转到工作流任务处理界面,用户提交后,自动打开信息中心。
【参考资料】
【二开案例.WebApi.单据查询.查询待办任务并生成审批链接】https://vip.kingdee.com/article/360719211800370944
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.表单插件.审批界面关闭后打开信息中心
【应用场景】从第三方系统打开待办任务,跳转到星空进行审批,审批成功并关闭审批界面后,自动打开信息中心。注意:该方案仅适应于H5端。【...
点击下载文档
本文2024-09-23 03:57:18发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162169.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章