The New AET table Extension Feature of Ehp1- Creating your own components
Over the last two years, SAP CRM WEB UI has evolved greatly and smartly 🙂 . With Ehp1 on CRM7.0, SAP has given so much ease to a WEB UI developer. The developments which used to take one or two complete man days now can be done in few minutes using the various new features given on AET side.
Once of such features is AET table extensions !!
Its now merely putting up all you need in the AET table extension wizard and it gives you a all “Ready to Use” view with absolutely no coding needed. All you need to do is the view configurations to put the fields the way you want.
Let it be a dropdown field, a search help field or a check table based field, the new AET give you a way to just command the system what you want and it get the thing ready for you..no more need to do GENIL method, or do GET_P and GET_V, but ofcourse, you can still use these methods to override whatever AET had proposed.
Below is a small illustration of a development i did at my client using AET Table extensions, It is an assignment block which is a view set. Both form and table view you here are created using AET Table extensions in ONEORDER framework
In this blog, I am going to focus on how easy it is to create your own Z component and things you must consider before or during AET.
Pre-requisite before doing AET Table extension: Go to transaction AXTSYS and name the component you would like to be created. AET will create a Z component with this name and will add all your Z views created using AET to this component, unless, you change to other component in this transaction.
Doing AET Table extension:
1) Start the WEB UI and navigate to the overview page on which you want your custom Z component based view as a new “Assignment Block”.
2) Use the “Configure” button and choose the Header View from the views grayed out on Overview page . The view config tool opens in a pop-up. Select “Display Enhancements” button. A new popup opens which display the existing enhancements.
3) Simply use ADD TABLE button and follow the wizard. In the very first step itsef, AET tells you what will be the name on Z table and also ask you the window/view name (it is a technical name and not the assignment block title) you would like for the new view.
4) You can define whether you want Form view ( 1:1 cardinality) or Table view ( 1:n cardinality ) within the wizard itself.
5) When you complete defining your requirements and adding fields to the AET table, and say “Save and Generate”, AET will take all care to give you what you want.You see the new Assignment block on the Overviewpage unsed “Available blocks”. You just need to pull it in “Displayed Blocks” and your new assignment block based on a ZTABLE is ready for use. You can edit it, add values and ht save and record ets created in the ZTABLE. You can change the values , delete the values and record in table gets modified on its own. You dont need to write a single code to care edit/update/delete etc. What all AET gives you in this development is listed below:
- You get the Z COMPONENT created automatically with the name you specified in transaction AXTSYS.
- You get the view and related windows created with the name you specified during AET (AET adds _MAIN to the window name you give during AET to generate your view name. For ex. if you gave name as MYVIEW during AET, then in component you find a Window with name MYVIEW and the view with name MYVIEW_MAIN)
- You also get RUNTIME REPOSITORY in a ready to use state, meaning, you don’t need to do any view and window assignments here.
- You get the ZTABLE ready in Data dictionary with AET given name with all Z fields you defined during AET
- The Ztable fields have auto-generated name and auto-generated data elements based on information you gave to AET during table-fields creation
- The data elements get auto-generated domains and if you have specified checktables, dropdown values etc during AET, then you can see those value table assignments in the domain.
- Further, if you go to GENIL_MODEL_BROWSER and open the root/access object of your overview page model set (ONEORDER for sales.service etc documents and BP_ALL for accounts and related documents. for ex if i started AET to add a ZTABLE based view as assignment block on Service order header, then my root is BTORDER and Access is BTADMINH) , you can see a Z BOL object created for you and related to the access object via Z-relation
- You get Function module ready to read the record from your Zview and also the function modules to work upon them, in case you need to read your view data in some BADI or Actions.
So in my view, with the AET table extension, SAP has given a great relief to UI developers from complex and time-consuming task of own Genil and BOL developments . However, the AET tool is not all PERFECT and you must take precautions while using it.
Things to Remember before and during you do AET TABLE Enhancements :
0) AET Table exention invlives both customizing and workbench tasks hence you should do AET on the client with allows you both. If is better to ask BASIS person which client they have decided for AET developments. If your customizing clinet does not allow workbench changes, then better start on workbench client. Ideally you should start on customizing client and it should be allowed to have workbench changes in this customizing client. Do inform Basis person about this if he is not aware.
1) You must be well prepared with what you want. It is a good idea to have an excel sheet where you have already written what fields of what data type and length, will it be a dropdown or search help ? and if so have the search help table ready in dictionary before you start. Same is applicable for check table related fields.
2) You can not change the field’s data type and length once it is created and generated by AET.
3) Once AET is generated, all you can change for an existing field is its Description and rendering for search/check table fields.
4) You can add/remove/update dropdown list values anytime
5) You can add more fields or remove fields from your Z AET table extension anytime but avoid deleting the fields as you may experience lot of inconsistencies and mess if your field is getting used somewhere and you delete it from AET. This will directly dump on the system and it is difficult to find why the dump occurs if others don’t know the background of your work.
6) Be extremely cautious during deleting fields if your AET generated view fields are used in BRF+ business rules or used in a view configurations. System will straightly dump during generation and onwards untill you fix the inconsistencies.
7) If AET generation fails, go to transaction AXTSHOW and investigate your extension for each element there to see where it is red light and what has failed. for example, if the AET table was locked in some other request and you try to add the new field then its an issue if your landscape follow separate customizing and workbench clients.AET generation fails in tis case and you need to release the transport that locks the objectand Re-generate the AET.
8) Though everything you get with AET table extension is in Z space, do not change the fields directly in ZTABLE or do not change domains, data element properties directly in SE11. It will give lot of inconsistencies even though SE11 and SE14 activation is successful. Always use the AET tool only to work upon anything generated by AET.
9) Do not change anything or try to modify the things in Z function modules AET generated for your component. If you need any special behaviors, then create your Z utility class and handle it in a custom method there with BOL programming & ABAP.
May be this blog is not for freshers as it does not give “how to” kind of stuff in great details with pictures etc but in my next blog i am going to do this detail work with a demo scenario so anyone can start from scratch.
All the best and keep exploring the new features of ehp 1. May be its a bit late as we have EhP2 now but Ehp 2 doesn’t have much in store for UI and ofcourse, it is better late than never 🙂
Thanks for you time,
– Suchita
Hey Suchita,
Very Good Document....expecting more such docs...
Thank You & Regards
Hi Suchitha,
Great work!!
regards,
ajay ram
Hi Suchita:
Excellent article.
Any way to add some more screen shots to better follow the theory?
I know it takes extra time because SCN is yet not user friendly to copy and paste everything in a single shot, but it is worthy.
Thanks,
Juan
Good work. Below is complete SAP CRM AET and SAP CRM EEWB step by step video.
http://www.youtube.com/watch?v=lsV4K9hFBr4
Hi,
Have created aet table after following the above steps and additionally have added buttons in OCA table.
On event of OCA button, have given a popup with the same fields of AET table so that the user can put the data in the popup and the same can be populated in the table.
But after doing this changes, saved records are displayed in the AET view and the Popup always shows the data of the last record selected. Can u please tell what would have gone wrong.??
Thanks,
akshay ruia
Hi Suchita,
Will the data in fields be available to BI also. I am not able to see the application specific settings for the fields created like this(BW check etc).
Thanks.
Hi Suchita,
My problem is...I have created Form view through AET ..in this form form view i have added 4 search help fields ..i have selected ORDERADM_H.. so after generating form view...this 4 fields are not available in crmd_orderadm_h table....AET it self created separete table for this 4 fieldd flavour of orderadm_h..
but iwant to save thesi 4 fields in to orderadm_h only..how to do it..please help ASAP..
Thanks®ards
kalpana
@kalpana
then u should not use this feature. U create fields separately for ORDERADM_H.
Then u create ur custom UI component to use them. now u have to delete this AET with View and then create the AET fields seprately hope it helps. Btw you have to be very sure before you use this feature! 🙂
Well done..full points
Hi Team,
Once AET is generated ,fucntion module automatically created in back ground..where we need to find the function module? how to find the fucniton module once aet is generated?
Thanks
Kalpana
Hi Team,
How could i enable/check the below check boxes available while creating the AET Table.
Allow Sub Tables
Create Detail View
Field Extensive
Is it possible to create a detail view for the AET Table? Is so please tell me how to proceed further.
Regards,
Gopalakrishnan Selvaraj.
Hi Gopal,
Just check that check box Generate and click on generate thats it..not required to generate suitable and details view..once if you generate table it created automatically view ,either table view or form view .
just click that check box and generate.
Thanks
Kalpana
Hi Kalpana
Thanks for your reply. My query is that, how do I enable the other check boxes. Is there any purpose serviced for those check boxes while creating the AET table? If so can you provide the purpose of those check boxes which are disabled and how to enable them.
My thought on the 'Create Detail View' check box:
If I check the 'Create Detail View' check box means will it create detail view (like OVP) for each row in the table or it is different?
Correct me, if I am wrong.
My requirement is that, I need to create an AET table (1: N) on BP Overview page to capture the customers smart cards details. In this when I click on the smart card id on each row, whether the 'Create Detail View' check box option will create any navigation from table view row value to OVP which contain the details of the row?
Regards,
Gopalakrishnan Selvaraj.
Super Duper Suchitra...all the best for future Articles 🙂
Hi Suchitra,
I have a question that I'm stuck on. In summary, I added a custom assignment block (a "form" table) in the AET in tcode SM_CRM in ChaRM transaction type ZMCR linked to BTAdminH. The new custom fields are editable and saveable using the standard AET generated logic.
Following the same steps, I created another custom assignment block (also a form table) for ChaRM transaction type ZMAD - a Change Document, also linked to BTAdminH.
The standard AET generated logic does not allow edit or save on the CD. To allow the new fields to be editable, I generated the setter and getter methods and changed method GET_I_field. That works fine now.
I still can't get values entered on new field to be saved on the CD though because the Collection_wrapper->get_current is Initial. How do I bind the context node to the entity? I have tried a custom controller to try to bind it to BTAdminH, but that didn't work. What am I missing?
Researching on here, I'm finding several posts on the topic, but nothing that clearly details what is needed. Is a custom controller needed? Where is additional code needed? Can anyone explain in detail what is needed to allow the new field to be saved?
Thanks in advance for your help!