Note: normally the AET enablement is done by SAP or Partner but not for customer, since if customers are able to build their own component by themselves, they can enhance it freely whenever they want without the help of AET.
Recently we got a requirement from customer that they want a non-extensible UI to be supported by Application extension tool ( AET ).
Since I found currently there is no detailed step by step about how to achieve this, I jsut create one.
AET is a powerful tool which could allow a user without any technical background to create new extension fields on UI in just a few seconds.
Equipped with AET, your application becomes more flexible since it allows your customer to create new fields by themselves which are missing in your standard application.
For demonstration usage I just use a component ZCRMSM which is copied from SAP standard genil component CRMSM for example. ( by the way, CRMSM is developed by us in CRM7.0 EHP3 which exposes the functionality to integrate social channel like twitter and facebook into CRM. )
The genil mode is very simple: It just have one Root object, one query object and one query result object.
Create a new structure as below. EEW standards for easy enhancement workbench and SMC for Social media cockpit.
This structure acts as a place holder to attach extension fields created by AET. the component EXT_SMC is just a dummy field tocircumvent the
restrict that netweaver does not allow you to activate an empty structure.
create a new dependent object SocialPostSetCRM_SMC to represent the extension fields belonging to a social post.
Of course a Aggregation must also be created to allow the navigation from SocialPost to this DO.
Now we have to create the key structure and attribute structure for DO.
create key structure for DO. Post ID is the unique identifier to identify a social post. UUID could also be used. Here I use post id since it is more human readable compared with UUID, which makes my trouble shooting easier.
for attribute structure, just include the key attribute above and the EEW structure created in step1, and that's all.
The EEW structure is included so that every time the extension fields are created, they will be attached to EEW structure and then would
also automatically appear in this attribute structure as well.
Now the enhancement for Genil component is finished, of course we need to implement the access logic on the DO as well. We will do this later and let's continue with our modelling task.
create a database table ZCRM_SOC_FE to store the transaction data of extension fields. Just the same logic in step3 of attribute structure: include key structure and EEW structure.
tcode AXTREG, register your genil component as extensible.
Create a new entry in "Extensible BOs". In this example I use ZSOCIALPOST. It is just an indicator, no need to equal with your Genil component name or model node name.
Navigate to BO Parts. Create a new entry. Specify "Part of a BO". Here I just use "HEADER", which tells AET framework I want to put my extension fields on "Header" level of the Social Post.
Maintain the Field Enhancement Place - the extension fields will be attached to the EEW structure maintained here.
So technically speaking, if customer choose HEADER in AET ui, the extension fields will be created on EEW structure ZINCL_EEW_SMC.
The remain settings could just be maintained as below:
create a new application group, or you can also reuse existing one if there is any which make senses for your business requirement.
Here I just create a new one "SOCIALMEDIA".
click "Places" and register your EEW structure ZINCL_EEW_SMC here. Special the max number of fields you allow to put into this structure.
And also the max bytes which are allowed for the total extension fields.
The sum of Percentage customer, partner and SAP should be 100, the rule of thumb value would be 60:20:20 ( customer : partner: SAP )
double click on the sub folder "BOL objects" and maintain the DO for extension fields and its BOL Path from Root object such as below:
You may observe there are some other folders like Search place and Table place. Those are places where the registration for table and search enhancement are done.
This is out of scope of this blog. Now all the necessary parts in AXTREG are done.
Tcode SM30, choose view BSPDLCV_OBJ_TYPE and click maintain button. Then create a new entry with object type CCRM_SMC
and maintain Genil component name, the root object name, the BOR object type and extension BO name, which is created in step 5.
step7: go to the view where you would like to display the extension fields, redefine method DO_CONFIG_DETERMINATION.
Now launch your UI, click configure icon to reach AET page, you should see "Create Field" button is enabled, which means all registration parts done currently are correct. Now the left task is doing enhancement on Genil implementation, which will be discussed in detail in part2.