Skip to Content
Author's profile photo Jerry Wang

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:

/wp-content/uploads/2013/09/can_288311.png

                                                                  Figure1

however they cannot see the “create field” button when trying to enhance “edit scope” page:

/wp-content/uploads/2013/09/cannot_288312.png

                                                            Figure2

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:

/wp-content/uploads/2013/09/clipboard_288313.png

                                                            Figure3

Below is an example for PRODUCT:

/wp-content/uploads/2013/09/sample_288314.png

                                                            Figure4

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:

/wp-content/uploads/2013/09/e1_288315.png

                                                            Figure5

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.

/wp-content/uploads/2013/09/design_288316.png

                                                            Figure6

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)

ui object.png

                                                            Figure7

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:

/wp-content/uploads/2013/09/button_288319.png

                                                            Figure8

Now go back to the first example. The first check fails as well, however 18 design layer assignments are found:

design have.png

                                                            Figure9

it shows there are so many context nodes of the view which are assigned to design objects

/wp-content/uploads/2013/09/18_288327.png

                                                            Figure10

we can also find such assignment relationships in ui component workbench:

/wp-content/uploads/2013/09/workbench_288328.png

                                                            Figure11

/wp-content/uploads/2013/09/w2_288329.png

                                                            Figure12

get the respective UI object type by design object:

get ui object.png

                                                            Figure13

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.

/wp-content/uploads/2013/09/check_288342.png

                                                            Figure14

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.

Assigned Tags

      2 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Hi

      I am trying to create field in through AET for component PRDHS, i am not able to see create field button.

      in view BSPDLCV_OBJ_TYPE for object type PRODUCT extensible BO is maintained as " PRODUCT".

      your help is highly appreciated.

      Regards

      Chandra Sekhar

      Author's profile photo Jerry Wang
      Jerry Wang
      Blog Post Author

      Hi Chandra,

      the ui you mentioned should be extensible by AET. Have you already set breakpoint in method in figure8 and check why internal table lt_ext_bo is initial? That should help you to find the reason.

      Best regards,

      Jerry