I have created one extension field on Business context “Product Master General” in tile “Custom Field and Logic” and publish it:
After that when I try to add it to Basic Data block of Product Master application, I could not find it in Available Fields list. As a result, I cannot add it to standard Fiori UI.
In order to resolve this issue, I need to first understand where do fields in “Available Fields” dialog come from and are rendered.
Through debugging, I find the field list are retrieved from property “customFieldAvailable” in SmartForm control.
The logic to fill this property is based on the attributes listed below:
- BusinessContexts
- EntityType
- ServiceName
- ServiceVersion
And the list in “Available Fields” dialog is bound to model data stored in variable mAvailableElements filled by method getAvailableElements in line 472 below.
Via the debugging below, I get to know that the prerequisite for an extension field to appear in “Available Field” list when “Add Field” button is clicked on Basic Data block is, it should be added as one of fields for data type “C_ProductType” in Product Master application’s OData metadata:
The solution is to add the field to Odata via button “Enable Usage”:
Once done, clear metadata cache in both gateway and backend system.
Relaunch the Fiori application, make sure you see the extension field in metadata:
After that the extension field is visible now in the list:
And it could be successfully added to Fiori UI now.
要获取更多Jerry的原创文章,请关注公众号"汪子熙":