"
Categoria > Tips & Tricks
Supported by

Abracadabra reveals secret parameter

Here’s a not very orthodox wat to deal with a report’s selection screen.

Sometimes you may need to have a special parameter which you prefer to hide from normal users but still need access to. Example: a flag to activate a debug/trace mode. I’ll show you how you can do this by just typing the magic word, ABRACADABRA.

It goes like this:


DATA: unhide_parameters TYPE flag.

PARAMETERS: p_debug AS CHECKBOX.

AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'ABRACADABRA'.
      unhide_parameters = abap_true.
    WHEN 'NORMAL'.
      CLEAR unhide_parameters.
  ENDCASE.

AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF screen-name = 'P_DEBUG' AND unhide_parameters IS INITIAL.
      screen-active = 0.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

Just type ABRACADABRA when you’re at the selection screen and your secret parameter will magically show. If needed, you can then type NORMAL to make it disappear again.

O Abapinho saúda-vos.

Classe para garantir segurança em programação dinâmica

I recently found a program which was generating an SQL statement by concatenating several variables with fixed SQL parts. But, either by not paying attention or simple ignorance, the person who did it, thought it would make sense to associate a text-symbol to each of these variables with. Something like this:

Ler o resto do artigo! »

SALV consistency report

Sometimes a SALV has inconsistencies which can go unnoticed. For example, if its structure has an amount field which doesn’t have an associated currency field:

Ler o resto do artigo! »

Go into a transaction skipping its selection screen

Once again SAPGui surprises me with yet another obscure shortcut I didn’t know about.

Let’s use the customer display transaction XD03 as an example:

  1. Go into the transaction’s selection screen with /NXD03
  2. Fill in the customer number an press ENTER to display its details
  3. Do whatever it is you want to do there and get out of it
  4. Suddenly… you remember that you needed to do something else there
  5. Instead of /NXD03 type /*XD03
  6. You’re now automagically inside the transaction, already looking at the details of the last displayed customer

It’s surprising that no one ever told me about this before.

I also tried it with FB03 and it works so it probably works with most of the normal transactions. Unfortunately, it doesn’t work with the ones I use the most: SE24, SE38 e SE11. What a pity.

Now go and tell everyone about this!

Thank you Sérgio Fraga for the tip.

Photo credit: Leonard J Matthews.

Greetings from Abapinho.

Copy a Code Inspector variant to another system

In my current customer, I have three development systems. There used to be only one. And that’s where I customized and fine tuned the Code Inspector variant I use to run Abap Test Cockpit.

When the other two appeared, before manually copying the variant into them, I decided to investigate a little bit. Much to my surprise, I found in GitHun project upDOWNci which does exactly what I needed: export and import Code InspectorLars for making this small but useful tool. Actually, thank you for the dozens of useful tools you’ve already given us. They’re quite impressive.

Greetings from Abapinho.

Physical vs logical folders

If in your report called APP1 you need to save a file in a server folder (ex.: /export/app1/) and you don’t want it to be a selection screen parameter, how do you do it?

Ler o resto do artigo! »

Automatically close the doors you open

You’re in the editor. You type ( or [ or { or ‘ and SAP is dumb and doesn’t close it right away like a proper IDE would.

Well,

Click on the lower right corner icon which gives you access to the SAPGui options where you configure code templates.

In the formatting option, activate Enable Auto Brackets and voilá, SAP will now automatically close any doors you open.

I don’t see why this isn’t set by default.

Thank you, Sérgio Fraga for the tip.

Greetings from Abapinho.

The curious case of the partially protected structure

The other day I was trying (and failing) to modify a line of a SORTED TABLE.

Ler o resto do artigo! »

Weird things happen when you pass SY-TABIX as a parameter

The other day a very strange thing happened to me. I was sending SY-TABIX as a parameter into a method. Before the call it contained 1 but, once inside, the parameter’s value was 0. Weird.

 
o_thingalizer->very_strange_thing(sy-tabix).

I was hearing "Why?! Why?!" repeatedly inside my head.

But suddenly I understood it!

When you send some field of the SYST as a by parameter you have to pass it by value and not by reference. I was passing it by reference. But, inside the method, ABAP automatically cleaned the SY-TABIX because there it was no longer inside a loop.

Flagging it as a value parameter was all it took. The problem was solved.

It is logical but not at all obvious.

I hope someday this tip will be useful to someone.

Greetings from Abapinho.

Convert class exception to BAPIRET2

Some time ago I wrote an article explaining a way to automatically convert classic exceptions to exception classes. Today I use this technique in almost all the exception classes that I create (and I’ve even improved it, but I’ll leave that for another post).

This tip explains the exact opposite.

Ler o resto do artigo! »

Ignore indentions when comparing version

Sometimes, when comparing versions, several differences show up even when we did not make changes to the code. These differences may simply be a consequence of a Pretty Printer that altered code indentations. This makes comparing the versions confusing.

But ABAP Workbench lets you configure the diff tool to ignore indentations and even comments.

Just press F5 while there or go to the “Display Format> Settings” menu and adapt it to your needs:

diff

You’re welcome ;)

Greetings from Abapinho.

Use a Standadrd GUI status without copying it

When you want to use CL_GUI_ALV_GRID in a CONTAINER you must copy a standard Status GUI from another program. For example, the GUI Status “STANDARD” of the function group SALV. And then, in the screen’s PAI you do:

SET PF-STATUS ‘STANDARD’.

And thus the little standard buttons show up on your screen.

Ler o resto do artigo! »

Create templates in SE80 by dragging stuff into the code

While coding, it’s always good to have ways to speed up what we’re doing. A good one is automatic generation of templates for function and method calls.

I know 3 ways to achieve this.

Ler o resto do artigo! »

DDIC structure key

Today when I want to create a SALV I always create a DDIC structure with the data elements already set to show the texts I need. This avoids the need for code to manipulate the field catalog.

Ler o resto do artigo! »

Find everything at once

The ABAP editor is full of functionalities yet to be discovered.

When I do CTRL-F to search for text, the option I usually choose is “Find next”.

Ler o resto do artigo! »


About Abapinho
Abapinho runs on WordPress
Articles (RSS) e Comments (RSS).