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?