"
Categoria > Tips & Tricks
Supported by

A comment on comments

We learn in school that all code should have comments. Then, in real life, we find that not everyone was paying attention to what was said in school. As a consequence, most code is obscure and without proper comments.

I was always careful to comment every relevant step of my code, specially the parts which are obscure or not self-explanatory.

But since I recently read Uncle Bob‘s Clean Code, my opinion on this changed. Today I believe that the less comments the better. And yet, I don’t see this as contradictory to what I used to think.

Ler o resto do artigo! »

The multiple clocks of your SAP system

Even though you look at an SAP system as a whole, it is composed by several distinct and interconnected parts. There is a small standard program which checks if each part’s clock is correct and synchronised.

It probably won’t be of much use for your daily work. Still, it’s an interesting curiosity.

Ler o resto do artigo! »

Inject ABAP commands into a productive system

The view below shows how simple it is to create the conditions to inject ABAP commands into programs in a productive system.

I considered whether to publish this. But, as it already happened in the past, I believe it is better for this to be known because it is very important for system administrators to be aware of this so they can protect their systems against this threat.

Thank you Ricardo Monteiro for the tip.

Greetings from Abapinho.

Transport a local table with its maintenance screens

Some time ago you created a table and its maintenance screens as local objects.

When, later, you regret it and decide to transport the table, how will you be able to also transport the maintenance screens?

Transporting the maintenance screens function group together with the table is not enough.

Ler o resto do artigo! »

Test a sequence of function modules in SE37

I was sure I had already posted about this before but I can’t find it so here it goes (again?).

Some function modules save global data which must then be used by another function module belonging to the same function group. So, if you need to test them, they must run in sequence inside the same transaction.

Everybody knows you can use SE37 to test a function module. What few people know is that you can also use SE37 to test a sequence of function modules inside the same transaction. Those who don’t know this end up creating a small program to call those functions in sequence and that’s also ok. But here’s how you can avoid that.

Ler o resto do artigo! »

Have extra control over your selection screen

The PARAMETERS and SELECT-OPTIONS already have some configuration options. But sometimes you need more control, more customising. Interestingly, although it’s not simple nor obvious, it can be done through a standard function module.

Ler o resto do artigo! »

Debug on a user without debug permissions

In a well protected system, normal users don’t have debug permissions. Very often, this makes it harder for ABAP programmers to help solve the users’ problems, not being able to debug directly in their session.

But there is a legit, albeit obscure, work-around for this problem.

Ler o resto do artigo! »

Edit standard programs without a key

Here we are again facing a dilemma: hide something because it is dangerous and someone can do bad things using this information or teach it because it would be condescending to presume the readers are not responsible enough to know it. Dictatorships usually go for the first: burning books, censorship, etc. Abapinho like to believe that its readers are responsible people and deserve the right to know.

Thus, here it is. No, it’s not a user manual on how to enrich uranium nor a formula for homemade nitroglycerin. But it’s something similar: a trick that allows you to change standard objects without the need for a key.

Ler o resto do artigo! »

Edit transport requests even if they don’t let you

As we all know, system adminstrators are very bad, cold blooded and cruel people. To prove it you just need to read the Bastard Operator from Hell.

We, ABAP programmers, are hopeless victims in the hands of these evil creatures.

But not always do we have to be smashed under their hairy fingers.

Ler o resto do artigo! »

Show values in SE16N without conversion exit

By default SE16N always shows the values in the external format, applying the conversion exit to all of them. Until recently, I used to go the ancient SE17 whenever I needed to see them in their internal format. But Rui Nunes told me how to do it in SE16N.

Ler o resto do artigo! »

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.


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