Requirement: hide the highlighted field in CRM Fiori Application “My Opportunity”, account block, as highlighted below:
The approach introduced in this document will not work, since the ui element to be hidden in this example is not statically defined in xml view, but dynamically created by JavaScript in controller code:
For the detail steps how we can figure this out, please refer to approach introduced in document How to find UI element binding path which is not statically defined in XML view.
Due to the fact of field dynamic creation, in the runtime, when the viewModification declaration in our extension component is executed, the controller of ui detail view is not instantiated yet, thus all the UI elements are not available at this time.
Instead, we have to find a proper position where the code extension is possible, and the instance of the UI element which we want to hide is available and accessible.
By going through all available extension hook in controller source code ( naming convention extHook… ), it is identified that the hook extHookGetDataForDetailScreen could be used. This hook will be called once the batch odata request to retrieve data for detail view display is returned from CRM backend.
The idea of hook implementation is get the to-be-hide UI element instance and call its method setVisible to hide it. This hook is done in your extension controller.
The whole source code of this extension project could be found in github: https://github.com/i042416/testOpportunityExtension
要获取更多Jerry的原创文章,请关注公众号"汪子熙":