Categoria > Dicas
Patrocinado por
Patrocinado por Inetum

Eu chamo-te e tu chamas-me

images/thumbnail.jpg - Thumbnail
Quando chamas uma função por RFC tens de lhe dar a RFC DESTINATION do sistema remoto: CALL FUNCTION ‘ZESPIRREI’ DESTINATION ’sistema_longe_daqui’. E se, por alguma razão, precisares que a função que corre no sistema remoto chame uma função no sistema original. Sabes fazê-lo?

Desfazer alterações no ecrã do depurador

images/thumbnail.jpg - Thumbnail
Embora uma parte substancial do trabalho de um ABAPador seja depurar código, a maior parte dos ABAPadores que eu conheço investem muito pouco em explorar a ferramenta que o permite, o depurador. Talvez por terem passado anos a aturar um depurador arcaico e limitado. Mas o novo pode fazer muito mais do que lhe costuma ser pedido. E o Abapinho vai tentar ensinar como. Hoje ensina-te apenas uma pequena tecla.

Dar passos de bebé no debug

images/thumbnail.jpg - Thumbnail
Quando fazes debug usas a tecla F5 para avançar para a próxima instrução (ou entrar para dentro de uma sub-rotina). Mas imagina um IF com várias condições: IF A = 1 AND B = 2 AND C = 3. WRITE 'Gosto da palavra glauco'. ENDIF. Ao fazeres debug àquele IF com F5 e alguma das expressões for falsa saltas logo para fora do IF e ficas sem saber qual delas falhou. Mas o novo debugger tem uma nova funcionalidade muito catita que te pode ajudar a entender melhor o que aconteceu ali.

O SAP ajuda-te a traduzir para qualquer lingua

images/thumbnail.jpg - Thumbnail
Volta não volta encontro mais uma virtude escondida do SAP. Então não é que fiquei a saber que existe uma transacção em que podemos introduzir uma determinada palavra numa determinada lingua e o SAP ajuda-nos a traduzi-la para outra lingua qualquer mostrando-nos noutras traduções que já existam para essa mesma palavra. Não é fixe? Ok, não é o Google Translate, mas é uma bela ajuda. Ah, já me esquecia, a transacção chama-se STERM.

SQL nativo

images/thumbnail.jpg - Thumbnail
Por vezes o SQL do ABAP não te permite fazer coisas que conseguirias fazer usando SQL nativo da base de dados. É possível fazê-lo. * Converte para maiúsculas e acrescenta wildcard TRANSLATE l_name1 TO UPPER CASE. CONCATENATE l_name1 '%' INTO l_name1. * Executa SQL nativo para fazer * uma pesquisa "case insensitive" pelo nome EXEC sql performing SAVE_ROW. SELECT kunnr INTO :l_kuune FROM kna1 WHERE kna1.mandt = :sy-mandt AND UPPER(kna1.name1) LIKE :l_name1 ENDEXEC.

Corrigir erro em código standard com enhancement implícito

images/thumbnail.jpg - Thumbnail
Descobriste um bug num FORM (ou Função ou método) standard: FORM EQUAL_VALUE CHANGING W_DATE TYPE SYDATUM. W_DATE = SY-DATUM - 1. ENDFORM. Reportaste o erro à SAP mas eles ainda devem demorar a responder e tu precisas da correcção urgentemente. Tens de agir. Sem demora usas o enhancement implícito do início do código para substituir o código original pelo teu (até a correcção chegar, claro): FORM EQUAL_VALUE CHANGING W_DATE TYPE SYDATUM.

Inibe o histórico de valores para um só campo

images/thumbnail.jpg - Thumbnail
Normalmente o SapGUI memoriza os últimos valores introduzidos em cada campo. E isso costuma ser bom. Mas podes muito bem não querer que isto aconteça. (ex: no caso, improvável eu sei, de quereres introduzir valores pornográficos num determinado campo). Uma hipótese é desligar globalmente esta funcionalidade nas configurações do SapGUI. Mas e se quiseres desligar apenas num campo? O Abapinho ensina-te.

Acrescenta parâmetros a métodos e funções standard

images/thumbnail.jpg - Thumbnail
Todos conhecemos as ampliações implícitas da SAP, que permitem adicionar código no início ou final qualquer blocos de código standard (funções, métodos, etc.). Já todos as usámos para alterar uma BAPI ou outro código standard qualquer. Mas só há pouco tempo é que descobri que também é possível usar ampliações implícitas para acrescentar parâmetros a funções e métodos ABAP standard.

ZTOAD - Editor de SQL

images/thumbnail.jpg - Thumbnail
O Toad é uma ferramenta muito famosa no mundo SQL que permite construir e executar queries SQL de forma fácil e interactiva. E agora, graças ao senhor Sébastien HERMANN, o SAP tem uma versão simplificada desta ferramenta maravilha. Ele explica. Obrigado Sérgio Fraga por descobrires isto. O Abapinho saúda-vos.

Programa a programação dos programas

images/thumbnail.jpg - Thumbnail
Uma das coisas que distingue o homem dos restantes animais é o facto de ser capaz de pensar o pensamento. Um pardal pode pensar “estou assustado, vou dizer piu piu piu” e, como consequência, quem estiver ao pé dele ouve “piu piu piu”.

Utilizar a lista de utilizações programaticamente

images/thumbnail.jpg - Thumbnail
A ferramenta “lista de utilizações” é uma das mais queridas de um programador ABAP. Através dela conseguimos saber onde é que um objecto é utilizado. Parece pouco mas sabemos que é muito.

A classe CL_GUI_FRONTEND_SERVICES

images/thumbnail.jpg - Thumbnail
A classe CL_GUI_FRONTEND_SERVICES é frequentemente usada para fazer upload e download de ficheiros de e para o computador local. Mas ela consegue fazer muitos mais coisas boas. Por exemplo:

O SAP sabe tirar <i>selfies</i>!

images/thumbnail.jpg - Thumbnail
Acabei de descobrir que o SAP consegue tirar selfies. Ainda não estou a ver para que é que isto possa servir. Mas não é grave porque na verdade também nunca vi para que é que servem as selfies tiradas por nós os humanos. Faz-se assim:

Nunca te lembras do código ASCII do CR_LF e seus amigos?

images/thumbnail.jpg - Thumbnail
Eu também não. Nem quero lembrar-me. Para quê gastar memória com códigos obtusos? E não é preciso porque o ABAP tem uma classe que ajuda.

SELECT de um conjunto de valores conhecidos

images/thumbnail.jpg - Thumbnail
Pedem-te para seleccionares registos cujo critério é um conjunto de meia dúzia de códigos que são conhecidos e nunca vão mudar. Sabias que podes fazer tudo logo no SELECT? SELECT * INTO T_T005T FROM T005T WHERE LAND1 = I_LAND1 AND SPRAS IN ( &#39;PT&#39;, EN&#39; ). Compete-me lembrar-te que fixar valores em programas não é a melhor das ideias por isso usa isto com tino. Obrigado Sérgio Fraga pela dica.