电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

苍穹页面触发 | 在门户应用页签打开第三方带会话信息页面

来源:金蝶云社区作者:金蝶2024-09-235

苍穹页面触发 | 在门户应用页签打开第三方带会话信息页面

# 关键词:页面集成、单点登录、页面跳转、门户应用页签层 # 一、需求 在许多业务场景中,由于客户已有系统在长期稳定使用,或功能页面在苍穹上重构代价巨大等因素,需要将现有系统中的功能页面集成到苍穹中以供业务平滑使用,故涉及到一个非常常见的业务场景:苍穹与第三方系统进行页面集成。用户登录苍穹之后,**在页面上点击顶部工具栏菜单按钮/超链接控件/页签控件**后,系统自动**单点登录**第三方系统并在苍穹**门户应用页签层**打开第三方系统的指定页面,然后用户可自由进行业务操作。 # 二、实现思路与方案 在该案例中,主要存在 3 个需求开发点:1、响应控件的操作;2、从苍穹端单点登录第三方系统;3、在苍穹门户应用页签层打开第三方系统页面。 关于第1、第2点,业务逻辑与 [苍穹页面触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520248627902647808?productLineId=29&isKnowledge=1) 一致,我们直接沿用代码即可。 针对第 3 点,我们可参考 [苍穹应用菜单触发 | 在门户应用页签打开第三方带会话信息页面](https://vip.kingdee.com/article/520244211216649728?productLineId=29&isKnowledge=1) 的实现思路。由于所有应用固定是在门户应用页签层打开的,故我们可另外新建一个应用,并将第三方系统页面通过IFrame控件嵌入该应用的首页界面中,然后利用平台接口去打开该应用从而本案例。 # 三、实现过程 ## 3.1 准备工作 苍穹系统:http://172.20.14.30:8080/ierp 第三方系统:本案例以另一套苍穹环境进行模拟,其访问地址:http://172.20.240.133:8080/ierp 统一身份认证服务系统:https://api.kingdee.com ## 3.2 注册应用 与 [苍穹页面触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520248627902647808?productLineId=29&isKnowledge=1) $3.2 节一致,请自行查阅原文内容。 ## 3.3 在苍穹系统中开发单点登录金蝶云平台插件(CldPlatformSSOPlugin) 与 [苍穹页面触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520248627902647808?productLineId=29&isKnowledge=1) $3.3 节一致,请自行查阅原文内容。 ## 3.4 响应页面上控件的点击事件(CustomBizBillPlugin) 为简化案例,业务单据界面仅预置与案例相关的控件,其设计器界面如下图所示,代码实现与 [苍穹页面触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520248627902647808?productLineId=29&isKnowledge=1) $3.4.1节一致,请自行查阅原文内容。 ![单据设计器.webp](/download/01008e30f624e5e747e38f33ac3ae2b71109.webp) ## 3.5 在门户应用页签层打开第三方系统页面(CustomBizBillPlugin) *备注: 建议通过平台接口 OpenPageUtils.openApp 在门户应用页签层、或应用主界面页签层打开第三方系统页面。若通过 getView().showForm(FormShowParameter) 则会存在重复打开应用页签等问题。* CustomBizBillPlugin.java ```language /** * 跳转第三方系统页面 */ private void openTrdSysPage() { // 在门户应用页签层打开第三方系统应用 OpenTrdPageUtils.openTrdSysPageWithNewTabPage(getView(), "kdec_tstapp3", "第三方系统应用"); } ``` OpenTrdPageUtils.java ```language /** * (通过调用平台接口)在门户应用层页签打开第三方系统页面 * 注意: * @param view * @param appNum * @param caption */ public static void openTrdSysPageWithNewTabPage(IFormView view, String appNum, String caption) { OpenPageUtils.openApp(appNum, null, null, view, caption); } ``` ## 3.6 通过新应用【测试应用3/kdec_tstapp3】的应用首页打开第三方系统页面(TrdSysPageFormPlugin) *备注: 该步实现思路与 [苍穹应用菜单触发 | 在门户应用页签打开第三方带会话信息页面](https://vip.kingdee.com/article/520244211216649728?productLineId=29&isKnowledge=1) $3.7节一致。* ### 1.新建空白应用【测试应用3/kdec_tstapp3】,在其应用首页上预置 IFrame 控件,并不显示其它所有控件,其设计器界面如图所示 *备注: 页面不需要显示的控件,有 2 种处理方案: ① 将其业务属性"可见性"中的"初始可见"去掉; ② 开启业务属性"隐藏元素"。 此处采用第 ① 种方案,将图中控件Flex面板"可见性"中的"初始可见"移除。* ![测试应用3首页-new.webp](/download/0100028102dd0c2a4dc9a0176aa556576292.webp) ### 2.在应用首页中注册表单插件(TrdSysPageFormPlugin),为上一步中IFrame控件绑定第三方系统页面URL ```language @Override public void afterBindData(EventObject evt) { String trdSysTargetUrl = null; try { trdSysTargetUrl = OpenTrdPageUtils.getTrdSysTargetUrl(false); } catch (Exception e) { this.getView().showMessage(e.getMessage()); } // 为IFrame控件设置URL IFrame iFrame = this.getView().getControl(KEY_IFRAME_TRDSYSPAGE); if (StringUtils.isNotEmpty(trdSysTargetUrl)) { iFrame.setSrc(trdSysTargetUrl); } super.afterBindData(evt); } ``` ## 3.7(单点登录第三方系统并)返回待打开页面的URL(OpenTrdPageUtils) 与 [苍穹页面触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520248627902647808?productLineId=29&isKno

苍穹页面触发 | 在门户应用页签打开第三方带会话信息页面

# 关键词:页面集成、单点登录、页面跳转、门户应用页签层# 一、需求在许多业务场景中,由于客户已有系统在长期稳定使用,或功能页面在苍...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信