二开案例.表单插件.审批界面关闭后打开信息中心

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

二开案例.表单插件.审批界面关闭后打开信息中心

【应用场景】

从第三方系统打开待办任务,跳转到星空进行审批,审批成功并关闭审批界面后,自动打开信息中心。

注意:该方案仅适应于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端。【...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息