Wilco Menge
Read all my blogsMost of us are aware of the AET, the Application Enhancement Tool. It can be used to add fields to standard SAP objects in a safe and flexible way. It is also possible to create new relations with 1-to-many relationships to standard SAP Objects with the AET.
It has been possible for a long time to enhance the Genil model of standard SAP objects with new 1-to-many relations. The process however can be a bit cumbersome. One good overview can be found here. We need to write quite a bit of code and customizing, which can be error prone to get just right.
When you use the AET to create a new table, most of this work will be done automatically. We will walk through the process and discuss alternatives.
Preparation
The AET will generate a basic UI for your table. You are expected to supply a UI Component during the definition of the table:
- In the GUI, navigate to transaction AXTSYS
- Click on Generate UI Component and supply a name.
You might get the following warnings:
- Errors during generation of object ZWILCOAETTABLE:
- Generation of SICF node for ZWILCOAETTABLE has failed
- The associated SICF node zwilcoaettable could not be created automatically.
These errors do sometimes signify an authorization problem, but it is also possible that the SICF node already exists.
Extending with EAT
Start the Web UI with Business Role ADMIN
Navigate to Tools > Enhance Applications
Click New and select the Object that you want to enhance. In our example we choose the APPOINTMENT
In the next screen you can either add fields to the object or complete tables.
Click on New in the Table Assignment Block and define to which part of the BO the extension belongs. In our case it is the Order Header (ORDERADM_H).
Fill in the details of your table. For component, supply the component from the preparation, for window, supply a new window name. The window will then be generated by the AET.
For each field you can supply additional details, as you are able to do with structure extensions in the AET
When you’re done, navigate back to the Object Extension Screen. You can now Save and Generate the extension.
Get a cup of coffee.
After generating, you can start using the table in the Web UI, it should already be available in the UI Configuration of your object:
Now you can populate your table with data:
In the background, the following objects have been generated:
- A transparent ZTable to hold your data
- API function modules (Do not modify ztable directly, but always via API modules)
- All required Genil configuration/implementation
- A basic Table view in a UI Component
- The CRM Order API, including CRM_ORDER_READ, CRM_ORDER_MAINTAIN is made aware of the extension
Extending the AET extension
But what if the generated UI is too limited for your taste? It is possible to modify the generated component. But your modifications can be overwritten when someone regenerates the table with the AET. However: You can safely ignore the generated UI Component and bring you own. All the basic CRUD logic is already contained in the BOL object, so you can just create a new UI Component and present the data in a suitable way.
When to use
If you are interested in a flat table with no real business logic in the Genil Layer (besides simple CRUD logic), then use the AET. It is the quickest and easiest method to add new tables to standart SAP objects. If you are not happy with the generate UI, you can bring your own.
Another strong point is that not only the Genil/Bol layer is enhanced, but other API as well. This means you can also read and modify data with CRM_ORDER_READ, CRM_ORDER_MAINTAIN (and for example, idocs).
When you need more control and flexibility in the CRUD logic of your object, or even a multi-level hierarchy with multiple tables consider using the manual approach as shown in the link at the beginning of this post.
AET:
+ Quick and easy
+ Modifies most standard API’s (Function Modules, Idocs etc)
+ UI can be modified easily
– Limited flexibility in adding business logic
Manual extension:
+ More flexibility in business logic
– Complex, error prone
– New data is only available in Genil layer
5 responses to “Creating tables with the AET in SAP CRM”
Hi,
Great blog, very informative. I have followed the above steps to add an AET custom table on SAP CRM WEB UI but the table does not appear as an assignment block. What could be the cause of that?
regards,
Letsebe
Did you do the customizing of the overview page? Or is it even missing there?
Could it be that it has not been activated successfully?
You might also need to reset your personalised settings of the overview page.
Regards,
Pieter
Hi,
Thanks for your respond. Yes, its even missing on the overview page.
I think it has activated successfully as it created the table and the table is displayed as part of Enhancement on the WEB UI.
How do I reset my personalized settings of the overview page?
Regards,
Letsebe
Hi, sorry for the late reply.
You can reset your personalised settings to default by personalising the page using the pencil button in the top right of the page and click 'reset to default'.
Regards,
Pieter
This comment has been removed by the author.