问题描述
我们将 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 创建了一个工单,他们说他们必须为我们修复它。