How to hide dynamically created UI fields via extension for My Opportunity application
Requirement: hide the highlighted field in CRM Fiori Application “My Opportunity”, account block, as highlighted below:
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