ABAP Tips and Tricks

ABAP Tips and Tricks

Retrieving the deleted program

I recently deleted a custom program (which is already transported to production) accidentally and was wondering if there is any method of retrieving the program back. After some research, I found a way of getting back the program. Following are the steps in getting back the program:
1) Create a program with the same name as earlier (which is deleted)
2) Click on “Utilities” –> “Versions” –> “Version Management”
3) Select the version of your earlier program and click on display.
4) Your earlier program is displayed here

Find out in what all Tables a specified field is available.

You can find out through transaction code SE15.
1) Give SE15 on command prompt.
2) Select ABAP Dictionary
3) Select “fields” folder
4) Click on table fields
5) Then you can enter the desired field name (In your case EKGRP)
6) Run OR press F8.
The system will list out all the tables which contain your desired field name.
1) using transactin Code SE11( ABAP Dictionary)
2) enter the Data table name where-in the respective field (EKGRP) is used eg; EKKO
3) Click the where -used list button
4) Check out the box(DB tables) Only .
There you can see entire list of tables containing the desired field.
Here the difficulty is that one should know at least the name of the one of the data tables which contain the desired field.

Find the Table Name For a Field.

I know couple of ways to find the table name for a field.
1. Part the cursor at the field and press F1 & F9.
2. se84 or se15
3. st05 (sql trace).
4. Setting Break point in ABAP.
If you will tell other methods it will be apreciate.

* How to print Apostrophe using the write statement

* For e.g. You’ll be there.
report zapostrophe message-id z1.
CONCATENATE ‘You”’ ‘ll be there.’ INTO LINE.

Given a transaction code, how can I find the menu path?

In 4.6c, you can used tcode search_sap_menu to find the SAP MENU tcode.
Please note that there are no tcode available to find the path of the IMG transaction.

How to un-encrypt SAP user password?

It is not possible to un-encrypt the SAP password, because a one-way encoding (with strong 1024 bit key) is used for this. The result is stored and each time one has entered the password the encoding result is checked.

When you delete an entry from an internal table in ABAP, the system has to re-generate the index for all entries after your delete, slowing the report if you have many records to eliminate.
It is much quicker to do an insert of the correct records into a second table than to delete entries from the first. The reason for this is because the index is only generated for the newest element.
If you want to protect a program against debugging, you just have to set the STATUS = S in the attributes view of the main program.


When You use a call transaction ,and populate the BDCDATA table.
Make sure you pass the “DATE FIELDS” of any transaction by formatting it as “XX/XX/YYYY” cos if you pick this data from database it will be of the format 20030505 or something like that. Make sure You pass this value as character field.
Same is true for the “Rate Fields”. Make sure you pass them as “Character Fields” by formatting them.
If you need to find out the Okcodes for BDC sessions, look for program RSBDCCUA and run it for any platform say ‘WN’ for windows or MC for Mac and it will generate list of function codes

To save the contents of an internal table as a Microsoft Excel Worksheet when debugging code in SAP R/3 Enterprise:

1. Click on the “Table” button
2. Type in the name of your internal table in the “Internal table” field and hit Enter.
3. Hit CTRL + F11 or click on the “Save as Excel Worksheet” button.
4. Type in the record numbers that you want to save. (Ex. From Line: 1 To Line: 10) Hit Enter.
5. Save your file.

Starts with a Z is homegrown program

You cannot be sure that anything which starts with a Z is a homegrown program.
SAP provide a number of correction programs, especially within the archiving area, which start with a Z.
For e.g. ZZSTOCKL from note 202345.

Can line-size of abap report large than 255?

You can have line-size upto 1023.
Along with Report statement pass the line-size as 1023. Ex. Report xyz line-size 1023.

How to find out the number of days between a given date, excluding Saturdays and Sundays and public holidays?

Try functions,

本文作者: GavinDong

版权属于: GavinDong博客

文章链接: https://www.gavindong.com/164.html

如果使用过程中遇到问题,可 **点击此处** 交流沟通。




  • 给内表中的行生成有规律不重复的唯一编号


  • ABAP的structure类型


  • ABAP算字符数和字节数


  • ABAP Workbench

    1、ABAP Workbench。2、显示层—应用层—数据库。3、R/3 Basis系统包括三个组成部分:核心基本服务(Kerne and Basis Services)、ABAP…

  • ABAP管理SM37后台job

    job相关内置函数:JOB_OPEN:创建job,declare一个JOB并返回这个job的“内存ID”.JOB_SUBMIT:计划job,insert step for job,…

  • ABAP基础随笔

    abap一般可执行程序用report,交互式程序(只能用事物代码执行的)用program。 abap消息类管理:se91 REPORT ztest02 MESSAGE-ID zhq…

  • ABAP 7.5之数据结构巩固

    ABAP Data Dictionary章节知识点复习总结。

  • ABAP显示源代码函数

    某些时候我们可能需要点击按钮直接查看ABAP源代码或者借用include文件写一些说明文档等。 通过点击按钮显示ABAP源代码,可用函数EDITOR_PROGRAM,对于函数需要给…

  • 一个令人为之微微心动的写法

    今天看到一个abap dump,点进去看了下源代码(FM:CKML_F_POST_INDEX),看到第一句借用SY-TABIX存变量值的偷懒行为,没错、是心动的感觉。

  • 适合SAP内部顾问和开发工程师的ABAP入门教程

    熟悉或者至少能看懂SAP ABAP程序对于SAP内部顾问来说是非常重要的,其实网络上有很多很优秀、免费的SAP教程,跟着这些优秀的教程实操一遍能快速建立体系化的知识和自信心。 AB…





  • ag
    ag 2017.11.21 13:05

    1 FOR ALL ENTRIES in itab 不能为空,否则where条件不起作用。
    2 在使用FOR ALL ENTRIES之前应该排序,然后删除重复的项,否则重复读取数据库。

  • ag
    ag 2017.05.03 22:46

    Some Useful Tables and Functional Modules

    To find all the tables used in a transaction use table : D010TAB (Get the main program of the transaction from SE93)
    To find all the tables which contains a specific field use table : DD03L ( For text DD03T)
    To find all the segments that contains a specific fields use table : EDSAPPL
    To find all the Idoc basic type that contains a specific segment use table: IDOCSYN
    To find all the Idoc extensions that contains a specific segment use table: CIMSYN
    To find all the parameter Id Use table : TPARA
    To get the main program of a include use FM : RS_GET_MAINPROGRAMS
    To get Function Modules and Includes Belonging to a Function Group : FUNCTION_INCLUDE_INFO, FUNCTION_INCLUDE_SPLIT
    To get all the inactive object by username Use table : DWINACTIV
    To get all the includes for any main program: table D010INC
    To get relations between classes/interfaces: table SEOMETAREL
    To find call relations between programs – function module – external subroutine calls etc: Table CROSS
    To find EDI Custom Extension Types use table : EDCIM
    To find the IDoc types use table : EDIDO ( Value table for IDoc types )
    To find IDoc Assignment of Function Module to logical message and IDoc type use table : EDIFCT
    To find IDoc Function Modules for creating file names use table : EDIFM
    To find EDI Message Types and Assignment to IDoc Types use table : EDIMSG
    To find all EDI segments of current release use table : EDSEA
    To find Views of customer model use table : TBD00 ( ALE Models )
    To find Communication relation between systems in ALE use table : TBD03
    To find Process code for outbound processing ( EDI ) use table : TEDE1
    To find Process code for inbound processing ( EDI ) use table : TEDE2
    To find Function modules for inbound ALE-EDI use table : TBD52
    To find all Status of IDoc use table : TEDS1

  • ag
    ag 2017.05.03 22:45


  • ag
    ag 2017.05.03 22:45

    查询bdc的fucntion code:执行程序RSBDCCUA