"
Apoiado por

Macros globais

Noutro artigo falámos de macros, uma funcionalidade relativamente obscura e pouco utilizada que tanto pode ser útil como criar uma grande salganhada. Mas estas não são as únicas macros do ABAP. Há outras, ainda mais obscuras e com ainda maior potencial de enfarelhamento de um sistema: as macros globais.

Nem sei se revele isto de tão esquisito que é…
Mas também não me parece bem escondê-lo…
Seja, revelarei.

É possível definir macros a nível global do sistema que podem ser utilizadas em qualquer programa ABAP. Para isso existe a tabela TRMAC:

A utilização é evidente: NAME é o nome do macro, NUMM é o número da linha e LINE representa uma linha de código. Um macro com 3 linhas deverá ter 3 entradas na tabela TRMAC.

Agora que já sabes da existência destas macros, faz o favor de te esquecer delas. E se para ti o perigo da utilização destes macros não é evidente então tu também és um perigo. Porque é que me dou então ao trabalho de falar sobre esta aberração? Acima de tudo porque isto revela que o famoso comando “BREAK user” não é mais do que uma macro global, como podem ver pela imagem da tabela. Muito curioso.

(Obrigado ao Bruno Filipa pela dica)

O Abapinho saúda-vos.

4 comentários a “Macros globais”

  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


Acerca do Abapinho
O Abapinho é suportado pelo WordPress
Artigos (RSS) e Comentários (RSS).