SAP CRM产品主数据页面的data loss实现逻辑

Created by Jerry Wang, last modified on Oct 05, 2016

Actually the data loss can only happen when the cross component navigation is initiated. For example you change the product description and click other work center:

SAP CRM产品主数据页面的data loss实现逻辑

The implementation of data loss is:

(1) Your click will trigger a cross component navigation. The navigation queue will be processed by UI framework:

SAP CRM产品主数据页面的data loss实现逻辑

(2) The UI framework will delegate call to our class. Here we evaluate if data loss logic should be really triggered. If yes, register ourselves as data loss handler.

SAP CRM产品主数据页面的data loss实现逻辑

In line 60, just set the data loss flag to true, which will be evaluated in step3.

SAP CRM产品主数据页面的data loss实现逻辑

(3) UI framework will evaluate if data loss dialog should be displayed.

SAP CRM产品主数据页面的data loss实现逻辑

Here we can also found the registered data loss handler in step2.

SAP CRM产品主数据页面的data loss实现逻辑

(4) Data loss dialog is displayed, clicking any button will trigger PROCESS_DATALOSS where Yes, No and Cancel button will be handled accordingly.

SAP CRM产品主数据页面的data loss实现逻辑
SAP CRM产品主数据页面的data loss实现逻辑

Since the navigation inside the same overview page will not trigger the method in step1, data loss logic will not be executed.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":
SAP CRM产品主数据页面的data loss实现逻辑