Inside AET: why “create field” button is visible in some UI while invisible in others?
recently I was asked by one customer why they can create extension field via AET in intellectual property overview page:
however they cannot see the “create field” button when trying to enhance “edit scope” page:
in order to explain this discrepancy, it is necessary to understand how does AET work. The SAP development will make registrations on those Business object which are considered as extensible and you can view the registration via tcode AXTREG:
Below is an example for PRODUCT:
So it is not technically possible to extend one UI which is created based on a non-extensible BO.
Let’s analyze why the second ui could not be extended. Just set breakpoint on the method below, which can be used as an entry point for your trouble shooting on such kind of issue:
The framework will first check whether there exists an extensible BO which is dedicatedly registered with an UI component and its child view –
nothing found. Then try to check design layer assignment.
The reason to try with design layer assignment is that the context node of ui view could be assigned to design layer object while the latter always belongs to one ui object. The ui object type is mapped to Genil component, BOL object, BOR object, and one extensible BO if any. See below example for UI object type PRODUCT ( view via tcode BSP_DLC_SDESIGN_DL)
as displayed in the above picture, there is no design layer object assigned for edit scope view, so finally “create field” button is not rendered at all, according to the logic below:
Now go back to the first example. The first check fails as well, however 18 design layer assignments are found:
it shows there are so many context nodes of the view which are assigned to design objects
we can also find such assignment relationships in ui component workbench:
get the respective UI object type by design object:
Now the extensible BO maintained in ui object type is evaluated. Now there would be one entry appended to result table, so finally “create field” button is enabled.
Summary: if “create field” button is invisible or disabled ( in lower release ), it is not the issue of AET itself but simply because that UI is not regarded as extensible by AET at all.