Category > Tips & tricks
Supported by
Supported by Inetum

No one cares for LISTBOX

images/thumbnail.jpg - Thumbnail

For some strange reason, LISTBOX is rarely used in report selection screens. Even though it’s widely used throughout the web. Who knows why.

Dear reader, I suggest you pay attention to its advantages:

SAParrot

images/thumbnail.jpg - Thumbnail

Go to SE38 and create a program with the code below. Then turn the computer sound on and press F8. INCLUDE ole2incl. DATA : ole TYPE ole2_object, voz TYPE ole2_object, texto TYPE string. CREATE OBJECT voz 'SAPI.SpVoice'. texto = 'Olá eu sou o SAP e falo português com sotaque estrangeiro'. CALL METHOD OF voz 'Speak' = ole EXPORTING #1 = texto. Note: the parrot not in the photo, just the macaw with which he was talking :)

Are you serious or just joking?

images/thumbnail.jpg - Thumbnail

Some things can only happen in production. While with some others it’s quite the opposite.

If you still don't use ABAP Objects you're chicken

images/thumbnail.jpg - Thumbnail

SAP has a book called Official ABAP Programming Guidelines which describes rules and best practices on how to program in ABAP. In there you can read: Page 42: Rule 3.1: Use ABAP Objects whenever possible for new and further developments. Classic processing blocks may be newly created in exceptional cases only. Page 45: Within such a [classic] processing block, however, you should immediately delegate the execution to a suitable method (see Rule 6.

Beautiful table relationships diagrams

images/thumbnail.jpg - Thumbnail

Nice relation diagrams for standard tables. Rui Dias revealed me a site where you can check the relation between any standard table with each other. For instance for T012. And if you try KNA1 it gets even better. Do you like it? I do. Thanks Rui Dias. Greetings from Abapinho.

Keyboard shortcut to transaction field

images/thumbnail.jpg - Thumbnail

And there you are madly typing with SAP when suddenly you need to go to the transaction field and write /OS37 or whatever. But you are writing with so much passion that the thought of leaving the keyboard for a moment to use your mouse seems catastrophic. Instead, you just press 3 keyboard keys: CTRL-SHIFT-7. Thank you Renato Sousa for the tip. Greetings from Abapinho.

Create sessions with the keyboard

images/thumbnail.jpg - Thumbnail

You need to start a new session but your mouse was stolen. No problem. Press CTRL and then the + key and you will see a new session coming in. Thank you Renato Sousa for the tip. And thank you freeimageslive / gratuit for the photo. Greetings from Abapinho.

Digital narcissism

images/thumbnail.jpg - Thumbnail

Reflection is the ability of a program to see itself. ABAP has a series of reflective capabilities, such as RTTS or the ability to dynamically generate code. There are also a few other so-and-so functions that do this and that. Today I present one of them to you:

GET_GLOBAL_SYMBOLS

Good program to find user-exits

images/thumbnail.jpg - Thumbnail

Every now and then we’ll be looking for user-exits and BADIs, BTEs and the like. SAP doesn’t help. But programs appear here and there, almost always called Z_USEREXIT, which help with this unappreciated search. Recently I learned of another one. I share it here because it is the best I have ever seen: https://wiki.sdn.sap.com/wiki/display/Snippets/Find+User-exits,+BADIs,+BTEs,+Etc+by+TCode+or+Program Thanks to Bruno Esperança for the tip. And thank you rverscha for the photo. Greetings from Abapinho.

Class for converting STRINGs

images/thumbnail.jpg - Thumbnail

You know how you sometimes have a STRING-type variable and you need to send it to a function that needs it in SOLIX-type? It often happens to me. Well, I have found this great class that converts strings into a wide range of formats:

CL_BCS_CONVERT

Jump The Wall

images/thumbnail.jpg - Thumbnail

Turn down the music. Close the door. Look around. Is anyone looking at you? Are you being watched? Are there any security cameras? If not, we can go on.

Preventing competition in an ABAP program

images/thumbnail.jpg - Thumbnail

They say that competition in trade is good. Good for consumers, that is. It lowers prices and so on. But inside computers it creates problems for those using them.

Usually, competition is contained in ABAP at the data level, blocking ( euqueue ) certain tables based on their key. But sometimes, something more violent may be required to ensure that a program may not run more than once at the same time. The ESINDX lock object can be used to do this.

Diving into Chaos with the CL_ABAP_RANDOM* classes

images/thumbnail.jpg - Thumbnail

ABAP programs are all too well behaved, too predictable.

As demiurges, we have a moral obligation to give them a little free will, give them a scent of chaos, show them the trees of life and of knowledge, and in a passage through kenosis , give them free reign to take a bite from the apple. Only in this way will we feel complete and fulfilled, only by this means will we be able to rest on the seventh day.

There is nothing better to achieve this than random numbers.

Complex parameters in remote functions

images/thumbnail.jpg - Thumbnail

Remote function calls (by RFC) do not support parameters with complex structures (deep structures). In other words, if any of the parameters has a structure in which one of the fields is another structure or an internal table then, hard luck, it won’t work.

Do you give up? No, you don’t. Abapinho provides the solution: serialization.

F1 in the selection screen fields

images/thumbnail.jpg - Thumbnail

You have just produced a wonderful report headed by a selection screen crammed full of very interesting fields. But usually those running the report will not know, if it has some complexity, what each of the fields does. There are, of course, the technical and functional specifications for this. But are there? And even if there are, wouldn’t it be easier if you could press F1 on top of each field and find out there and then what it’s for?

I’ll show you two possible ways to give individualized information about the fields of a selection screen.