Category > Tips & tricks
Supported by
Supported by Inetum

Hold on… but not yet

images/thumbnail.jpg - Thumbnail
You are doing a LOOP AT in a 1000-line table, and you know that you want line 853. Until recently, you had two options: either hit F8 852 times, running the risk of hitting it 853 times and having to start all over again, or create a watchpoint with the condition SY-TABIX = 852 or something close, and pray that it worked. Now you have a third option.

APPEND LINES OF class->method() TO itbl

images/thumbnail.jpg - Thumbnail
ABAP is getting smarter all the time. Back in my day, no one did anything with it. And now, slowly, more than a fifth of a century late, it’s trying to imitate C and Java, and becoming more flexible. I was going to do something like this:

Automatic keyboard

images/thumbnail.jpg - Thumbnail
Every programmer knows about the intimate relationship between batch-inputs and paperweights, staplers and similar heavy objects. These precious little helpers can keep us from spending up to eight hours hitting the “ENTER” key with one finger. Although these objects have a certain charm, the law of gravity - the same one that makes them useful - sometimes makes them fall over and stop pushing this key.

Adding values to a standard domain

images/thumbnail.jpg - Thumbnail
If you think it’s impossible to add values to a standard SAP domain without requesting an activation key, you’re wrong.

Always use message classes in exception classes.

images/thumbnail.jpg - Thumbnail
Exception classes let you state multiple texts describing the different possible errors that they can represent. However, there exists an option to associate it with a message class (SE91). This allows texts to be defined as classic SE91 messages instead of being defined directly in the exception class. And it has advantages.

The ABAP editor has a good memory

images/thumbnail.jpg - Thumbnail
Select a word in the ABAP editor and choose CTRL-C. Then select another word and choose CTRL-C again. Then another word and so on. You have copied words several times to the clipboard. Experience and common sense tells us that if you choose CTRL-V you can only paste the last word you copied to the clipboard. But that is not quite right. You may not be aware of it, but the ABAP editor has a good memory.

Compare a table across two systems

images/thumbnail.jpg - Thumbnail
The SCMP transaction compares the content of a table across two systems. It is very useful, especially for parameterization tables. It is very easy to use. It allows for the pre-selection of the registers and fields to compare. It also allows you to only display the differences, which is convenient for tables with lots of data. I don’t think any more explaining is required. Ite et videte. This tip recently appeared in the ex SAPtricks blog and I think it is so useful that I have reposted it here, in case you haven’t already seen it.

SELECT... ...ORDER BY PRIMARY KEY

images/thumbnail.jpg - Thumbnail
Although I have been using ABAP since 1998, I learn new features or options every week, and sometimes even new commands. It’s hard to believe. Today, I’ll share a little SQL option that I recently discovered. SELECT * FROM T001 INTO TABLE T_T001 ORDER BY PRIMARY KEY. I have known SELECT, FROM, INTO, TABLE and even ORDER BY for a long time. I just didn’t know of PRIMARY KEY. It orders the internal table by its key.

Function to create cartoons

images/thumbnail.jpg - Thumbnail
Cartoons always look good in a report. In a SAPGui that is boredom in blue, the more colours and cartoons there are the better it is. Luís Rocha showed me a very convenient function to fill up a report with icons.

SELECT comparing 2 fields of the same table

images/thumbnail.jpg - Thumbnail
This tip is simple and quick, but I bet 200.482 Portuguese escudos that few know it.

Syntax error when returning tables of a method

images/thumbnail.jpg - Thumbnail
When you create a return parameter in a method of a class that is a TABLE TYPE based on a type declared in the class proper, an error sometimes pops up that says: “Type of RETURNING parameters must be fully specified.”

/HS Command

images/thumbnail.jpg - Thumbnail
Most functionals, and even the hardcore functionals, knows that in order to start debugging an ABAP program, we use the /H command. But few programmers, even the hardcode programmers, will know the purpose of the /HS command.

Dynamically call classes and methods

images/thumbnail.jpg - Thumbnail
Now, learn how to dynamically invoke a method. Let’s go for it.

Don't mix Z functions with maintenance views!

images/thumbnail.jpg - Thumbnail
Today’s hint is not a hint - it’s an advice. After creating a table, you create its maintenance views. The maintenance views dwell within a group of functions. This group of functions is requested from you at the time of their creation. Since, after all, that’s no more than a set of generated code, and most of it is, nonetheless, standard includes. Loads. I give you the problem: there are those who create their own Z functions and put them in groups of functions with maintenance views. It’s true. Some do this.

I like LIKE

images/thumbnail.jpg - Thumbnail
In the ‘bad old days’ when the ABAP was even more old-fashioned than today, variable statements were all made through LIKE and were referenced to table fields: DATA: V_KUNNR LIKE KNA1-KUNNR.