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

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:2

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

# 关键词:单点登录、页面集成、页面跳转、应用菜单点击、门户应用页签 # 一、需求 在许多业务场景中,由于客户已有系统在长期稳定使用,或功能页面在苍穹上重构代价巨大等因素,需要将现有系统中的功能页面直接嵌入到苍穹中以供业务平滑使用,故涉及到一个非常常见的业务场景:苍穹与第三方系统进行页面集成。用户登录苍穹之后,点击某应用的指定菜单,系统自动单点登录第三方系统并在 **门户应用页签层** 打开指定页面,然后用户可自由进行业务操作。 # 二、思路与方案 该业务场景(在苍穹门户应用页签层打开第三方系统页面),与知识 [苍穹应用菜单触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520242273347538432?productLineId=29&isKnowledge=1) 基本一致,只不过后者是通过 getView().openUrl(String) 在新浏览器窗口中打开。此外,用户登录苍穹后,在门户首页点击应用卡片,系统默认是在门户应用页签层打开应用首页。 基于此,本案例的实现可通过将第三方系统页面嵌入至另一个应用的首页,然后利用平台接口 OpenPageUtils.openApp 打开该新应用即可。 # 三、实现过程 ## 3.1 准备工作 苍穹系统:http://172.20.14.30:8080/ierp 第三方系统:本案例以另一套苍穹环境进行模拟,其访问地址:http://172.20.240.88:8080/ierp 统一身份认证服务系统:https://api.kingdee.com ## 3.2 注册应用 与 [苍穹应用菜单触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520242273347538432?productLineId=29&isKnowledge=1) $3.2 节一致,请自行查阅原文内容。 ## 3.3 在苍穹系统中开发单点登录金蝶云平台插件(CldPlatformSSOPlugin) 与知识 [苍穹应用菜单触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520242273347538432?productLineId=29&isKnowledge=1) $3.3 节一致,请自行查阅原文内容。 ## 3.4 配置应用菜单(ToTrdSysPageFormPlugin) 与知识 [苍穹应用菜单触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520242273347538432?productLineId=29&isKnowledge=1) $3.4 节一致,请自行查阅原文内容。 ## 3.5 在应用首页上注册插件二开干预应用菜单的点击事件(CustomBizAppHomePlugin2) ```language @Override public void treeMenuClick(TreeNodeEvent evt) { // 点击指定菜单跳转第三方系统页面 Object appMenuNodeId = evt.getNodeId(); AppMenuInfo appMenuInfo = AppMetadataCache.getAppMenuInfo(KEY_APPNUMER, appMenuNodeId.toString()); if (appMenuInfo != null) { if (StringUtils.equalsIgnoreCase("kdec_totrdpagebyappmenu", appMenuInfo.getFormId())) { // 在门户应用层页签打开第三方系统页面 this.gotoApp("kdec_tstapp3", "第三方系统应用"); } } } ``` ## 3.6 在门户应用页签层打开第三方系统页面(CustomBizAppHomePlugin2) *备注: 1.可将第三方系统页面嵌套在新应用的首页中(即下一节 $3.7 内容),然后通过打开新应用实现在门户应用页签层打开第三方系统页面。 2.在门户应用页签层打开第三方系统页面,建议通过平台接口 OpenPageUtils.openApp 打开,若通过 getView().showForm(FormShowParameter) 则会存在重复打开应用页签等问题。* ```language /** * 点击指定菜单单点登录第三方系统并在门户应用层页签打开页面. 根据实际业务修改 */ private void gotoApp(String appNum, String custAppCaption) { // 在门户应用层页签打开第三方系统页面 OpenTrdPageUtils.openTrdSysPageWithNewTabPage(getView(), "kdec_tstapp3", "第三方系统应用"); } ``` ## 3.7 将第三方系统页面嵌入【测试应用3/kdec_tstapp3】的应用首页(TrdSysPageFormPlugin) ### 1.新建空白应用【测试应用3/kdec_tstapp3】,在其应用首页上预置 IFrame 控件,并不显示其它所有控件,其设计器界面如图所示 *备注: 页面不需要显示的控件,有 2 种处理方案: ① 将其业务属性"可见性"中的"初始可见"去掉; ② 开启业务属性"隐藏元素"。 此处采用第 ① 种方案,将图中控件Flex面板"可见性"中的"初始可见"移除。* ![测试应用3首页.webp](/download/0100da13ca7ebda94507ba852eac94688469.webp) ### 2.在该应用的首页上注册插件展示第三方系统页面(TrdSysPageFormPlugin) ```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.8 (单点登录第三方系统并)返回待打开页面的URL(OpenTrdPageUtils) 与知识 [苍穹应用菜单触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520242273347538432?productLineId=29&isKnowledge=1) $3.6 节一致,请自行查阅原文内容。 ## 3.9 在第三方系统中开发单点登录金蝶云平台插件(CloudPlatformSSOAuth) 与知识 [苍穹应用菜单触发 | 在新浏览器窗口打开第三方带会话信息页面](https://vip.kingdee.com/article/520242273347538432?productLineId=29&isKnowledge=1) $3.8 节一致,请自行查阅原文内容。 # 四、效果图 ## 4.1 登录苍穹系统 ![苍穹登录.webp](/download/01009534a5dfe0624c4bae37beaf4024dcda.webp) ![云平台登录页-1.webp](/download/010040ddfcd9f4e041faa99b54b6419baf1a.webp) ## 4.2 应用菜单点击 ### 1.旧版门户 ![菜单跳转1-旧版-效果图1.webp](/download/01002e35ff8369e04a109a9bac2cf9f0ea60.webp) ### 2.新版门户 ![菜单跳转1-新版-效果图1.webp](/download/0100db11cc3c5ff746918bd8641abaed1151.webp) ## 4.3 第三方系统 ### 1.旧版门户 ![菜单跳转1-旧版-效果图2.webp](/download/01004e984563b2e049cc803689081af51fc9.webp) ### 2.新版门户 ![菜单跳转1-新版-效果图2.webp](/download/0100c6bba88d89254b96aad942f122df7ea5.webp) # 五、开发环境版本 V5.0.011 # 六、注意事项 - 本案例因涉及两台服务,开发过程中存在**跨域问题,可通过以火狐浏览器访问避免**,生产环境请自行处理。 - 建议通过平台接口 OpenPageUtils.openApp 在门户应用页签层、或应用主界面页签层打开第三方系统页面。若通过 getView().showForm(FormShowParameter) 则会存在重复打开应用页签等问题。 - 如需复现本案例效果,必须先在金蝶云平台注册应用并修改案例代码中的相关参数,详见 $3.2 节内容。 - 文章中代码展示不全,**附件中包含案例所有页面元数据、Java源码**,如有需要,请自行下载。 # 七、参考资料 [开发平台](https://vip.kingdee.com/knowledge/specialDetail/218022218066869248?productLineId=29) [学习成长中心](https://developer.kingdee.com/school?productLineId=29) [登录认证专题](https://vip.kingdee.com/knowledge/specialDetail/228892721203874816?productLineId=29) [苍穹产品目录](https://developer.kingdee.com/knowledge?productLineId=29#tabMain) —— 系统服务云 —— 系统管理 —— 登录认证 [单点登录集成](https://developer.kingdee.com/school/243812482044022016?productLineId=29)(视频) [金蝶云平台oauth2流程说明](https://cloud.kingdee.com/help/document/detail?item=448&doc=3023) [【统一身份认证】第三方集成单点登录](https://developer.kingdee.com/article/359709414254707456?productLineId=29) [单点登录插件,访问指定的数据中心,金蝶云单点登录](https://developer.kingdee.com/article/215788160662549248?productLineId=29)

点击苍穹应用菜单后如何单点登录第三方系统并打开页面(二).zip

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

# 关键词:单点登录、页面集成、页面跳转、应用菜单点击、门户应用页签# 一、需求在许多业务场景中,由于客户已有系统在长期稳定使用,或...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息