天天看点

SAP Fiori Elements应用里Back按钮的实现逻辑分析

One of my colleagues today asked me this question: Suppose this below is an application generated by Smart Template, and I would like to debug how the back button is implemented. Since the whole UI page is implemented by framework, I don’t know where to set breakpoint. How to proceed?

SAP Fiori Elements应用里Back按钮的实现逻辑分析

Here below is my process about how to find the back implementation in framework file within several minutes.

(1) Use Chrome extension Inspector ( the UI5 tab in Chrome development tool below ) to figure out that the button is located in UI area sap.uxap.ObjectPageHeader.

SAP Fiori Elements应用里Back按钮的实现逻辑分析

Based on the learning in My understanding about how object page in Smart Template is rendered I search by keyword “Back” in file Details.view.xml first, no result.

SAP Fiori Elements应用里Back按钮的实现逻辑分析

(2) Then search in next xml file NavigationBar.fragment.xml, this time the button is found.

SAP Fiori Elements应用里Back按钮的实现逻辑分析

Perform global search via Ctrl+Shift+F with key word “_templateEventHandlers.onBack“, no result.

SAP Fiori Elements应用里Back按钮的实现逻辑分析

Then search “_templateEventHandlers” instead, this time TemplateAssembler-dbg.js is found.

SAP Fiori Elements应用里Back按钮的实现逻辑分析

Unfortunately it is difficult to judge the type of _templateEventHandlers simply from context code as it is filled in a generic way

SAP Fiori Elements应用里Back按钮的实现逻辑分析

(3) Perform search on onBack instead, and the result is what I am looking for:

SAP Fiori Elements应用里Back按钮的实现逻辑分析

Set a breakpoint and click back button to verify: breakpoint is triggered:

SAP Fiori Elements应用里Back按钮的实现逻辑分析

So the trick here is the keyword I am using to search in a tentative way.

first time search by _templateEventHandlers.onBack, no result

second time search by _templateEventHandlers, has result but not useful

third time search by onBack, done.