"
Supported by

Global macros

In a previous article we talked about macros, a relatively obscure and little used feature that can be both useful as well as create a huge mess. But these aren’t the only ABAP macros. There are others that are even more obscure and with even greater potential to mix up a system: the global macros.

I don’t know if I should tell you this, as it’s so strange…
But, I don’t think it’s a good idea to hide it…
Therefore, I’ll tell all.

Macros can be defined for the entire system and can then be used in any ABAP program. The TRMAC table exists for this purpose:

Its use is obvious: NAME is the name of the macro, NUMM is the line number and LINE represents one line of code. A macro with 3 lines should have three entries in the TRMAC table.

Now that you know these macros exist, please forget about them. If the danger of using these macros is not obvious to you then you too are also a danger. Why then do I make the effort to talk about these freaks? Mainly because it shows that the famous “BREAK user” command is nothing more than a global macro, as you can see from the image in the table. Very strange.

(Thanks to Bruno Filipa for the tip)

Greetings from Abapinho.

4 comentários a “Global macros”

  1. Raphael Maia Diz:

    Muito bom mesmo!
    Obrigado pela dica.

  2. Carlos Valentini Diz:

    Uma coisa que ficaria muito bom.
    É um exemplo passo a passo de como criar e utilizar um
    macro global em um programa.

  3. Nuno Godinho Diz:

    Olá Carlos,

    Ao tentar actualizar a TRMAC através da transacção SM30 obtive a mensagem “Do not make any changes (SAP data)”. Como a actualização da tabela me pediu um “transport request” e neste sistema prefiro não o fazer, não te posso mostrar o exemplo.

    Mas é muito simples. Por exemplo, poderias adicionar as entradas para um macro chamado POPUPMSG com as seguintes linhas:

    000 CALL FUNCTION ‘POPUP_DISPLAY_MESSAGE’
    001 EXPORTING
    002 MSGID = &1
    003 MSGTY = &2
    004 MSGNO = &3.

    E depois em qualquer report deverás poder fazer:
    POPUPMSG ‘M3’ ‘E’ ‘002’.

    Acho eu :)

  4. Nuno Godinho Diz:

    Mas… isto é de tal forma central que, a usar, só mesmo com muitos critérios, senão acaba numa grande salganhada. Eu não sinto grande vontade de usar isto. Quem sabe um dia encontre uma situação em que isto faça mesmo sentido. Até lá, fica como curiosidade.

Deixe um comentário


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