Search code examples
sapui5sap-fiorisap-gatewaysap-bsp

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


We upgraded our GW system to 7.52 SP 7 and also migrated the systems from on-prem to Azure. ECC 7 system is on-prem. After the upgrade and migration was done, the Standard Fiori app 'My Benefits' tile is opening but only the standard portion is working and the extended parts are throwing errors. Here are the errors:

Errors in Console (Browser debugger)

XMLTemplateProcessor-dbg.js:98 Uncaught Error: found in negative cache: 'sap/m/columns.js' from ./resources/sap/m/columns.js: failed to load 'sap/m/columns.js' from ./resources/sap/m/columns.js: 404 - at 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 Uncaught Error: failed to load 'sap/m/columns.js' from ./resources/sap/m/columns.js: 404 - Not Found

Error in the Network tab (Browser debugger)

404(Not Found) for https://host:port/sap/bc/ui5_ui5/sap/zmybenefitsext/resources/sap/m/columns.js

I couldn't find any errors in the front-end or the back-end, I cleaned up the caches on both front-end and back-end and also re-indexed the app on the gateway. I also reactivated the ICF nodes.

Here's the 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>

Here's the source code for 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
          },
        },
      },


    }      
  }
});

Here's the link to the same question in the official SAP forum with embedded screenshots for SICF node for the Standard Fiori app and the LPD_CUST config for the extension app.

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


Solution

  • I found the issue. The version of the standard Fiori app is using SAPUI5 1.28.5 where columns aggregation is still part of sap.m.List but deprecated. Also, the GW before the upgrade had the SAPUI5 version of 1.52 which still had columns listed as aggregation of List. That's why the app was working before but the upgraded GW SAPUI5 version is 1.71.24 where columns aggregation doesn't exist, hence the NOT FOUND error.

    Because the XML is part of the standard code, I won't be able to modify the XML to replace columns with Table.

    We had created a ticket with SAP and they said they will have to fix it for us.