Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 

Symptoms



Note: This blog deals with a specific issue on not running UI5 App Index calculate or having a wrong manifest. For issues caused by cachebusting , see other blogs of these author.

 


App could not be loaded message dialogue appears:



 

The Component or Component-preloads.js request succeeds.

But a subsequent resource request fails

https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/i2d/le/l... 404

 

In the console we find:

16-06-29 10:19:07.171379 The application i2d.le.delivery.create.s1 has errors and will possibly not run properly. -  i2d.le.delivery.create.s1O @ core-min-0.js:92error @ core-min-0.js:92(anonymous function) @ core-min-1.js:97createComponent @ core-min-1.js:97(anonymous function) @ core-min-0.js:192p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75(anonymous function) @ core-min-0.js:192p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75(anonymous function) @ core-min-1.js:77p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75(anonymous function) @ core-min-1.js:77p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75p @ core-min-0.js:75add @ core-min-0.js:75(anonymous function) @ core-min-0.js:204p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75(anonymous function) @ core-min-0.js:204p @ core-min-0.js:75fireWith @ core-min-0.js:75b.(anonymous function) @ core-min-0.js:75(anonymous function) @ ClientSideTargetResolutionAdapter.js:2Promise.resolve (async)sap.ushell_abap.adapters.abap.ClientSideTargetResolutionAdapter.getInbounds @ ClientSideTargetResolutionAdapter.js:2_ensureInbounds @ core-min-0.js:204resolveHashFragment @ core-min-0.js:204_resolveHashFragmentClientSideAndFixApplicationType @ core-min-1.js:77_resolveHashFragmentClientSide @ core-min-1.js:77r @ core-min-1.js:77_nextResolveHashFragment @ core-min-1.js:77_nextResolveHashFragment @ core-min-1.js:77_nextResolveHashFragment @ core-min-1.js:77_nextResolveHashFragment @ core-min-1.js:77_invokeResolveHashChain @ core-min-1.js:77(anonymous function) @ core-min-1.js:77p @ core-min-0.js:75add @ core-min-0.js:75resolveHashFragment @ core-min-1.js:77_resolveHashFragment @ core-min-0.js:192doHashChange @ core-min-0.js:192p @ core-min-0.js:64sap.ushell.services.ShellNavigationHashChanger.treatHashChanged @ core-min-1.js:89execute @ core-min-0.js:154dispatch @ core-min-0.js:154dispatch @ core-min-0.js:154(anonymous function) @ core-min-0.js:146i @ core-min-0.js:146

undefined:1 Uncaught (in promise) undefined

undefined:1 Uncaught (in promise) undefined

abap.js:2 GET https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/i2d/le/l... 404 (NOT FOUND)X.send @ abap.js:2send @ core-min-0.js:75ajax @ core-min-0.js:75r1 @ core-min-0.js:92q.sap.require @ core-min-0.js:92i2d/le/delivery/create/s1/util/util.js @ Component-preload.js:5callPreloadWrapperFn @ core-min-0.js:92s1 @ core-min-0.js:92r1 @ core-min-0.js:92q.sap.require @ core-min-0.js:92i2d/le/delivery/create/s1/Component.js @ Component-preload.js:5callPreloadWrapperFn @ core-min-0.js:92s1 @ core-min-0.js:92r1 @ core-min-0.js:92q.sap.require @ core-min-0.js:92w @ core-min-2.js:73(anonymous function) @ core-min-2.js:73Promise.resolve (async)(anonymous function) @ core-min-0.js:92

core-min-0.js:92 2016-06-29 10:19:07.933870 Failed to load UI5 component with properties '{"name":"i2d.le.delivery.create.s1","self":{"name":"i2d.le.delivery.create.s1"},"messages":[{"severity":"error","text":"The application i2d.le.delivery.create.s1 has errors and will possibly not run properly."}],"componentData":{"startupParameters":{}},"asyncHints":{"libs":["sap.ca.scfld.md","sap.ca.ui","sap.me","sap.ui.unified"],"waitFor":[]},"url":"/sap/bc/ui5_ui5/sap/le_shp_creates1/~E6CEDC01B875A9C85B506203D6BCDB95~C","async":true,"id":"application-OutboundDelivery-create-component"}'. - Error: found in negative cache: 'i2d/le/delivery/create/s1/Component.js' from undefined/i2d/le/delivery/create/s1/Component.js: Error: found in negative cache: 'i2d/le/delivery/create/s1/util/util.js' from undefined/i2d/le/delivery/create/s1/util/util.js: Error: failed to load 'sap/i2d/le/lib/reuses1/util/util.js' from /sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/i2d/le/lib/reuses1/util/util.js: 404 - NOT FOUND

    at r1 (https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/fiori/co...)

    at Object.q.sap.require (https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/fiori/core-min-0.js:92:30193)

    at w (https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/fiori/co...)

    at https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/ui2/ushell/resources/~20160613100100~/sap/fiori/co...

 

 

There is  a 404 on a different resource.

 

 



 

This resource /sap/i2d/le/lib/reuses1/util  is tried to be located under /ushell/resources.

 

If a non-ui5/ushell resource is located here, it's a clear indication that an application library path was not correctly configured/returned.

 

A proper path would have been:

https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/sap/le_ui_reuses1/utils/utils.js

https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/sap/le_ui_reuses1/~1B85DCA7BF6102DA44021F886A4E9CE...

 

The intent started is OutboundDevliery-create.

 

Inspecting the start_up request, which is one of the first request

/sap/bc/ui2/start_up?so=*&action=*&sap-language=EN&sap-client=100&shellType=FLP&depth=
indicates that this application is flawed:

 



"has errors and will possibly not run".

 

We also get some indication on the catalog, the application (url /sap/bc/ui5_ui5/sap/le_shp_creates1) etc.

 

 

To eliminate the errors, we have to rebuild the application index for the application and the ui5 resources:

 

Running:



 



 

and on "le_ui_reuses1"

makes the response slightly better:



 

 

 

Running it also on UI5 resources



 

gives a complete result:

 

 

 



 

And subsequently the app can be started:



 

Schedule /UI5/APP_INDEX_CALCULATE


 

The whole issue could have been avoided by following the Fiori Setup, performing the SPRO step:

 



 

See also:

SAPUI5 Application Index - User Interface Add-On for SAP NetWeaver - SAP Library

 

 

Appendix:


 

In above analysis we skipped a number of "magic" steps, these are explained here:

 

Identifying the intent causing the problem:




 



2016-06-29 14:37:27.024050 Outer shell hash changed from 'Shell-home' to 'OutboundDelivery-create' -  sap.ushell.services.ShellNavigation

2016-06-29 14:37:27.040580 NavTargetResolution: custom resolver DefaultAdapter resolves #OutboundDelivery-create - 

 

 

Determining the Application




 

 



 

 

Identifying the BSP/Library belonging to a given path


 

 

 

This resource /sap/i2d/le/lib/reuses1/util  is tried to be located under /ushell/resources.


If a non-ui5/ushell resource is located here, it's a clear indication that an application library path was not correctly configured/returned.


A proper path would have been:


https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/sap/le_ui_reuses1/~1B85DCA7BF6102DA44021F886A4E9CE...


Actually finally the file will be contained in a preload bundle :


https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/sap/le_ui_reuses1/~1B85DCA7BF6102DA44021F886A4E9CE...


 

 

There

 



 

Identifying the Associated Application and /or Reuse library


 

 

In the  startup response, we only see the javascript name of the library:


i2d.le.delivery.create.s1


Which is also used as the "canonic" path of the library resource.


/i2d/le/delivery/create/s1/util/util.js:


 

 

 

It is non-trivial to "deduce" the correct path from this,

 

 

 

Technically, the file could be anywhere in the ui5 respository.

 

A proper path would have been:


https://ldcinmd.wdf.sap.corp:44324/sap/bc/ui5_ui5/sap/le_ui_reuses1/~1B85DCA7BF6102DA44021F886A4E9CE...


from which we could derive the BSP name ( le_ui_reuses1 ).

 

There is no direct way to determine the library path or BSP path name from the  ui5 package name.


there are some database out there

 


In this case we have an application which uses it, which gives some hints where to start looking:

 

The name of the application referencing it is  (url: /sap/bc/ui5_ui5/sap/le_shp_create1),



 

So looking for something in the vincinity (le*) may yield the correct answer:

 

 

one can either look in the BSP respository:



 

Or the ICF handler:

 

 

Reuse library:

 



 



 



Looging into a file at the package name will validate our assumptions ( typically packages are not

split among libraries).




 

Other relates blogs:

https://blogs.sap.com/2016/05/27/resolving-fiori-launchpad-cachebusting-inconsistencies-abap-fes/

https://blogs.sap.com/2016/07/01/identifying-a-fiori-app/
1 Comment