天天看點

我ABAP開發生涯中搜集的一些有意思的資料庫表

Magic tables

CUS_IMGACH – IMG Activities

RFCATTRIB – Administration table for RFC destinations

SEOSUBCO – Class/interface subcomponent

TVIMF – User routines called from view maintenance

More to be added soon

Magic reports

RADPROTA – Display DDIC activation log

RSTABLESIZE – Determining Table Sizes

RSSDOCTB – export transparent table definition locally

4.A simple HTTP test tool RSICFCLTST01

During my daily work I get to know the existence of some magic tables and reports which can enable me to achieve some work more efficiently and conveniently. Now I shared them with you.

(1) CUS_IMGACH – IMG Activities

Suppose I know the BAdI definition CRM_PRODIL_ADD_DATA and I would like to find the customizing path in SPRO where I can also manipulate it. Unfortunately the where used list in SE18 does not support to search BAdI definition by customizing activities.

我ABAP開發生涯中搜集的一些有意思的資料庫表

Instead, I can query against IMG activity header table with field ATTRIBUTES = BAdI definition name, and I get the IMG activity description: BAdI: Maintenance of Additional Data in Product BOL.

我ABAP開發生涯中搜集的一些有意思的資料庫表

Now go to SPRO, I can use keyword function there now:

我ABAP開發生涯中搜集的一些有意思的資料庫表

And this is just what I am looking for:

我ABAP開發生涯中搜集的一些有意思的資料庫表

(2) RFCATTRIB – Administration table for RFC destinations

I would like to search all RFC destinations created or modified by me, unfortunately the search attribute there does not support “created by” or “changed by”.

我ABAP開發生涯中搜集的一些有意思的資料庫表

Such information is maintained in table RFCATTRIB,

as a result I write a simple report to search in that table.

Specify the user name:

我ABAP開發生涯中搜集的一些有意思的資料庫表

And it will return all RFC destinations created or changed by that user.

我ABAP開發生涯中搜集的一些有意思的資料庫表

(3) SEOSUBCO – Class/interface subcomponent

Suppose I only know there is one method which has a parameter named “it_ibintx_tab”. I would like to know which class/interface has such methods with this parameter defined in their signature.

Again the Repository information system for Method query does not support to query against method signature parameter name:

我ABAP開發生涯中搜集的一些有意思的資料庫表

In this case simply query table SEOSUBCO with field SCONAME = IT_IBINTX_TAB, then we get result that the method CHANGE_BEFORE_UPDATE defined in interface IF_EX_IBASE_SAVE has defined this parameter in its signature.

我ABAP開發生涯中搜集的一些有意思的資料庫表

(4) TVIMF – User routines called from view maintenance

Suppose I am a newbie for table maintenance generator, and I am now responsible to develop a validation logic defined in view event 01- Before saving the data in the database.

I would like to find a standard one done in system as example.

In this case query table TVIMF:

我ABAP開發生涯中搜集的一些有意思的資料庫表

Then I plan to study the source code in subrountine CHECK_ACTV_ACCOUNT for reference.

我ABAP開發生涯中搜集的一些有意思的資料庫表

In tcode SE54 I can find the function group for table CRMC_BUAG_ACTV is CRM_BUPA_BUAG_CD, and in that function group I can find the subroutine CHECK_ACTV_ACCOUNT.

我ABAP開發生涯中搜集的一些有意思的資料庫表

(1) RADPROTA – Display DDIC activation log

For example, check all activation log with type Error:

我ABAP開發生涯中搜集的一些有意思的資料庫表

Double click on a row in result list and detail reason for activation error is displayed:

我ABAP開發生涯中搜集的一些有意思的資料庫表

(2) RSTABLESIZE – Determining Table Sizes

If you need to have a overview of the number of table entries for a series of tables, you don’t need to check them one by one in SE16 manually.

Instead, run this report:

我ABAP開發生涯中搜集的一些有意思的資料庫表

Result is listed with number of lines and total memory consumption for each table:

我ABAP開發生涯中搜集的一些有意思的資料庫表

(3) RSSDOCTB – export transparent table definition locally

Suppose I need to export the definition information for table COMM_PRODUCT:

我ABAP開發生涯中搜集的一些有意思的資料庫表

The information is then displayed and could be saved locally via your preferred file format:

我ABAP開發生涯中搜集的一些有意思的資料庫表

(4) A simple HTTP test tool RSICFCLTST01

In Fiori development I tend to use Chrome extension postman or SAP gateway client ( tcode /IWFND/GW_CLIENT ).And there is also a more lightweight HTTP test tool:

Execute the report, create a new session:

我ABAP開發生涯中搜集的一些有意思的資料庫表

Select the created session, click Details tab,then execute send method.

我ABAP開發生涯中搜集的一些有意思的資料庫表

After send method is successfully executed, choose Receive method from drop down list and execute it as well.

我ABAP開發生涯中搜集的一些有意思的資料庫表

Once done, you can now see the response:

我ABAP開發生涯中搜集的一些有意思的資料庫表
我ABAP開發生涯中搜集的一些有意思的資料庫表

You can also directly execute some utility method in this client:

我ABAP開發生涯中搜集的一些有意思的資料庫表