GW 升级后,Fiori 标准应用“我的福利”扩展不起作用 [SAP Fiori、SAPUI5、SAP NW 网关]

问题描述

我们将 GW 系统升级到 7.52 SP 7,并将系统从本地迁移到 Azure。 ECC 7 系统是本地的。升级和迁移完成后,标准 Fiori 应用程序“我的好处”磁贴正在打开,但只有标准部分在工作,扩展部分出现错误。 以下是错误

控制台(浏览器调试器)中的错误

XMLTemplateProcessor-dbg.js:98 未捕获错误:在负缓存中找到:来自 ./resources/sap/m/columns.js 的“sap/m/columns.js”:未能加载“sap/m/columns”。来自 ./resources/sap/m/columns.js: 404 - 在 makenestedError (https://host:port/sap/bc/ui5_ui5/sap/zmybenefitsext/resources/sap-ui-core.js:92: 37)

XHRInterceptor-dbg.js:58 GET https://host:port/sap/bc/ui5_ui5/sap/zmybenefitsext/resources/sap/m/columns.js 404

XMLTemplateProcessor-dbg.js:98 未捕获错误:无法从 ./resources/sap/m/columns.js 加载“sap/m/columns.js”:404 - 未找到

“网络”选项卡(浏览器调试器)中的错误

https://host:port/sap/bc/ui5_ui5/sap/zmybenefitsext/resources/sap/m/columns.js 的 404(未找到)

我在前端或后端都找不到任何错误,我清理了前端和后端的缓存,并在网关上重新索引了应用程序。我还重新激活了 ICF 节点。

这是 index.html

    <!DOCTYPE HTML>
<html>
<!-- IMPORTANT
  This HTML file is meant for testing the application/component standalone,outside the Unified Shell.
  Some integration functionality,personalization etc. will not be available when running standalone.
 -->
<head>
<Meta http-equiv="X-UA-Compatible" content="IE=edge" />
<Meta name="viewport" content="width=device-width,initial-scale=1.0" />
<Meta charset="UTF-8">
<title>zMyBenefitsExtension</title>
<script id="sap-ui-bootstrap"
  src="./resources/sap-ui-core.js"
  data-sap-ui-libs="sap.m,sap.me"
  data-sap-ui-theme="sap_bluecrystal"
  data-sap-ui-xx-bindingSyntax="complex"
  data-sap-ui-compatVersion="1.16"
  data-sap-ui-resourceroots='{"hcm.mybenefits.zMyBenefitsExtension": "./"}'>
</script>
<!-- Application launch configuration -->
<script>
    sap.ui.getCore().attachInitEvent(function () {
        var oComponentContainer = new sap.ui.core.ComponentContainer({
            height : "100%",name:"hcm.mybenefits.zMyBenefitsExtension"
        });
        oComponentContainer.placeAt("content");
    });
</script>
</head>
<!-- UI Content -->
<body class="sapUiBody" id="content" role="application">
</body>
</html>

这是 Component.js 的源代码

jQuery.sap.declare("hcm.mybenefits.zMyBenefitsExtension.Component");

// use the load function for getting the optimized preload file if present
sap.ui.component.load({
  name: "hcm.mybenefits",url: jQuery.sap.getModulePath("hcm.mybenefits.zMyBenefitsExtension") + "/../HCM_BENF_MON" // provide parent project url
  // we use a URL relative to our own component; might be different if
  // extension app is deployed with customer namespace
});

hcm.mybenefits.Component.extend("hcm.mybenefits.zMyBenefitsExtension.Component",{
  Metadata: {
    version : "1.0",config : {
      "sap.ca.i18Nconfigs": {
        "bundleName":"hcm.mybenefits.zMyBenefitsExtension.i18n.i18n"
      },},customizing: {
      "sap.ui.controllerExtensions": {
        "hcm.mybenefits.view.S7": {
          controllerName: "hcm.mybenefits.zMyBenefitsExtension.view.S7Custom","hcm.mybenefits.view.S6": {
          controllerName: "hcm.mybenefits.zMyBenefitsExtension.view.S6Custom","hcm.mybenefits.view.S5": {
          controllerName: "hcm.mybenefits.zMyBenefitsExtension.view.S5Custom","hcm.mybenefits.view.S3": {
          controllerName: "hcm.mybenefits.zMyBenefitsExtension.view.S3Custom","hcm.mybenefits.view.S4": {
          controllerName: "hcm.mybenefits.zMyBenefitsExtension.view.S4Custom","sap.ui.viewExtensions": {
      
      "hcm.mybenefits.view.S7": {
        "extS7Header": {
          className: "sap.ui.core.Fragment",fragmentName: "hcm.mybenefits.zMyBenefitsExtension.view.extS7HeaderCustom",type: "XML","hcm.mybenefits.view.S6": {
        "extS6Header": {
          className: "sap.ui.core.Fragment",fragmentName: "hcm.mybenefits.zMyBenefitsExtension.view.extS6HeaderCustom","hcm.mybenefits.view.S5": {
        "extS5Header": {
          className: "sap.ui.core.Fragment",fragmentName: "hcm.mybenefits.zMyBenefitsExtension.view.extS5HeaderCustom","hcm.mybenefits.view.S3": {
        "extS3Header": {
          className: "sap.ui.core.Fragment",fragmentName: "hcm.mybenefits.zMyBenefitsExtension.view.extS3HeaderCustom","hcm.mybenefits.view.S4": {
        "extS4Header": {
          className: "sap.ui.core.Fragment",fragmentName: "hcm.mybenefits.zMyBenefitsExtension.view.extS4HeaderCustom","sap.ui.viewModifications": {
        "hcm.mybenefits.view.S7": {
          "MB_PLAN_PERIOD": {
            "visible": false
          },"hcm.mybenefits.view.S6": {
          "MB_PLAN_PERIOD": {
            "visible": false
          },"hcm.mybenefits.view.S5": {
          "MB_PLAN_PERIOD": {
            "visible": false
          },"hcm.mybenefits.view.S4": {
          "MB_PLAN_PERIOD": {
            "visible": false
          },"hcm.mybenefits.view.S3": {
          "MB_PLAN_PERIOD": {
            "visible": false
          },}      
  }
});

这是官方 SAP 论坛中同一问题的链接,其中包含标准 Fiori 应用的 SICF 节点和扩展应用的 LPD_CUST 配置的嵌入式屏幕截图。

https://answers.sap.com/questions/13230788/fiori-standard-app-my-benefits-extensions-not-work.html

解决方法

我发现了这个问题。标准 Fiori 应用程序的版本使用 SAPUI5 1.28.5,其中 columns aggregation is still part of sap.m.List but deprecated。此外,升级前的 GW 具有 1.52 的 SAPUI5 版本,仍然将 columns 列为 List 的聚合。这就是该应用之前可以运行但升级后的 GW SAPUI5 版本为 1.71.24 的原因,其中 columns 聚合不存在,因此出现 NOT FOUND 错误。

因为 XML 是标准代码的一部分,我将无法修改 XML 以将列替换为表。

我们已经与 SAP 创建了一个工单,他们说他们必须为我们修复它。