Category > Tips & tricks
Supported by
Supported by Inetum

Fill up the selection screen with cartoons

images/thumbnail.jpg - Thumbnail

Was SAP born miserable or are SAP-users simply unable to cheer it up?

The truth is that SAP GUI is no rainbow and neither does looking at it bring happiness. Even so, it puts at our disposal a bunch of cartoons that we may use to make it just a little more uplifting.

And take a look at just how easy it is.

Oh time turn back

images/thumbnail.jpg - Thumbnail

“Oh time turn back Give me everything I have lost Take pity and give me the life The life I have already lived Oh time turn backward Kill off my futile hopes Look how even the sun itself Returns every morning” – António Mourão

Hey Tony, right away. I will show you how you can turn back time.

F1 + F9 = Technical Information

images/thumbnail.jpg - Thumbnail

In a functional screen I often feel the need to see technical information about a particular field. I place the cursor on the field I want, then I click on F1 and a dialog screen will appear with help for that field. Then I click on the button that says “technical information”.But there is a quick way to do the same thing using only the keyboard. There are two possible ways for F1 to display the help for one specific field:

When an internal table is not structured

images/thumbnail.jpg - Thumbnail

When you want to select some lines in an internal table you normally do something like this: DATA: BEGIN OF itbl, campo1 TYPE c, campo2 TYPE c, END OF itbl. READ TABLE itbl WITH KEY campo1 = 'X' campo2 = 'Y'. LOOP AT itbl WHERE campo1 = 'X' and campo2 = 'Y'. COISO. ENDLOOP. But what if the table is not structured and you want to search on the line as a whole?

Create test variants within functions from the debugger

images/thumbnail.jpg - Thumbnail

Imagine that you are debugging a transaction, you enter into a function and find something interesting. So interesting that you have to debug it several times. The conventional way is to start the debug of the transaction again from the beginning. How tedious.

But there is a more direct route. When you are debugging a function you can create test data for this function directly from the debugger, using the values with which the function had been called at that time. For instance:

The SAPGui history does not work even when active?

images/thumbnail.jpg - Thumbnail

Has it ever happened to you that SAPGui does not store a history of values that you input to various fields even though the History option is actived in the settings?

SE80 has favourites

images/thumbnail.jpg - Thumbnail

The SE80 transaction contains everything. It seems like those village grocery stores crammed with junk where you can buy toothpaste, bread, shoes, perfume and rice in bulk. I like these grocery stores. But to go there you need to know where you are going, otherwise you’ll walk from pillar to post. But this is what it’s like in these grocery stores but in SE80…. there are favourites. Yes indeed there are.

If a stranger offers you values, this is Input

images/thumbnail.jpg - Thumbnail

In a report, the values are normally requested from the user at the first selection screen before the program is run. But what if you want to interactively ask for more values in the middle of running the program?

Selection screen with tabs

images/thumbnail.jpg - Thumbnail

The selection screens of ABAP programs have several features that, although complex and easy to use, are generally ignored. Here, I will show you how easy it is to create tabs to better organise the parameters of a program. This time though, and uncommonly, I’ll spare you the verbal onslaught. It’s a practical class.

Debugging while in modal dialogue boxes

images/thumbnail.jpg - Thumbnail

There are times when you can’t do /H to launch debugger. The most common one is when a pop-up window is open. However there is a simple, if Heath-Robinson, way to do it:

What does a message say?

images/thumbnail.jpg - Thumbnail

Do you want to obtain the text from a message when you only know the ID and the number, but you don’t know how? Find out here: DATA text TYPE string. MESSAGE ID '00' TYPE 'E' NUMBER '163' WITH '123' INTO text. That’s all it is. Now inside the text variable, you find the following text: “Client 123 does not exist in the system” Thanks to Peteris B for the photo.

Be lazy when you write in ABAPese

images/thumbnail.jpg - Thumbnail

To find out which professions attract the laziest people, I googled the following:

Profession Results

“médico preguiçoso (lazy doctor)"| 2,140,000

“advogado preguiçoso (lazy lawyer)"| 1,430,000

“gestor preguiçoso (lazy business administrator)"| 1,020,000

“engenheiro preguiçoso (lazy engineer)"| 647,000

“político preguiçoso (lazy politician)"| 602,000

“economista preguiçoso (lazy economist)"| 284,000

“pedreiro preguiçoso (lazy builder)"| 91,200

As this conclusively proves, engineers are not lazy enough as they are beaten by lawyers and doctors. This must change. And this tip will help. But not without making the following difference clear: lazy is not work-shy. I am talking here about noble laziness, the behaviour of those who like doing things but with the least possible effort. Lazy slobs are not included here.

SAP is something that evolves slowly, and it launched a new editor a few years ago that is full of capabilities many of which, while handy, are barely used. One of them is called ‘Code templates’ which I will now demonstrate:

Multiple choice ALV in a modal dialogue box

images/thumbnail.jpg - Thumbnail

Do you know how to present an ALV with a list of records in a dialogue box allowing multiple choice? I didn’t. But I do now. Let me explain how.

<!--:pt-->Pasta temporária do SAP Gui<!--:-->

images/thumbnail.jpg - Thumbnail

Sometimes a program wants to save a file locally on the user’s computer via the SAP Gui. In these cases it is usual that one of the fields of the selection screen is the location of the folder on the local disk. This is a way of initialising this field with the temporary folder of the SAP Gui: PARAMETERS: p_path TYPE string. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. CALL METHOD cl_gui_frontend_services=>directory_browse EXPORTING initial_folder = p_path CHANGING selected_folder = p_path.

Partial Analyses in SE30

images/thumbnail.jpg - Thumbnail

Obviously you already know the SE30 transaction (run time analysis) and obviously you use it often to analyse standard programs and to discover tables, functions, BADIs and similar contained within them. But if you are like me, then you have a love-hate relationship with this transaction – on the one hand you love it because it enables you to see the guts of a program without having to debug it, yet on the other hand you hate it because normally the list of guts tends to have thousands of lines and becomes unmanageable.