Fiori 标准应用 'My Benefits' GW 升级后扩展不工作 [SAP Fiori、SAPUI5、SAP NW Gateway]

Fiori Standard App 'My Benefits' Extensions Not Working After GW Upgrade [SAP Fiori, SAPUI5, SAP NW Gateway]

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

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

XMLTemplateProcessor-dbg.js:98 未捕获错误:在负缓存中发现:'sap/m/columns.js' 来自 ./resources/sap/m/columns.js:无法从 .[=52 加载 'sap/m/columns.js' =].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 - 未找到

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

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

我在前端和后端都找不到任何错误,我清理了前端和后端的缓存,并在网关上重新索引了应用程序。我还重新激活了 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",
          type: "XML",
        },
      },

      "hcm.mybenefits.view.S5": {
        "extS5Header": {
          className: "sap.ui.core.Fragment",
          fragmentName: "hcm.mybenefits.zMyBenefitsExtension.view.extS5HeaderCustom",
          type: "XML",
        },
      },

      "hcm.mybenefits.view.S3": {
        "extS3Header": {
          className: "sap.ui.core.Fragment",
          fragmentName: "hcm.mybenefits.zMyBenefitsExtension.view.extS3HeaderCustom",
          type: "XML",
        },
      },

      "hcm.mybenefits.view.S4": {
        "extS4Header": {
          className: "sap.ui.core.Fragment",
          fragmentName: "hcm.mybenefits.zMyBenefitsExtension.view.extS4HeaderCustom",
          type: "XML",
        },
      },
    },
      
      "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 论坛中同一问题的 link,其中包含标准 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 的 SAPUI5 版本为 1.52, 仍然有 columns 列为 List 的聚合。这就是为什么该应用程序之前可以运行但升级后的 GW SAPUI5 版本为 1.71.24,其中 columns 聚合不存在,因此出现 NOT FOUND 错误。

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

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