Categoria > Dicas
Patrocinado por
Patrocinado por Inetum

INSERT dbtab ACCEPTING DUPLICATE KEYS

images/thumbnail.jpg - Thumbnail

Quando tentas inserir um registo numa tabela que já tenha outro registo com a mesma chave primária o programa faz dump. O que em alguns casos é uma chatice porque, mesmo que te estejas nas tintas, te obriga a verificar antecipadamente se aqueles chaves já existem na tabela. Mas o ABAP prevê esses casos e dá-te uma solução: INSERT dbtab FROM TABLE itab [ACCEPTING DUPLICATE KEYS]. Não te preocupes que quando acrescentas o ACCEPTING DUPLICATE KEYS não violas a primeira lei da termodinâmica: os registos não são inseridos.

Exporta e importa as configurações do ABAP Workbench

images/thumbnail.jpg - Thumbnail

Às vezes as coisas estão mesmo debaixo do nosso nariz e não as vimos. No meu cliente actual trabalho com um montes de sistemas diferentes. Quando altero a configuração num deles muitas vezes, por preguiça ou esquecimento, acabo por não o fazer nos restantes. Mas há uma forma simples de copiar de uma só vez todas as configurações do ABAP Workbench de um sistema para outro.

Usa o Editor de Tela Dividida na comparação de versões

images/thumbnail.jpg - Thumbnail

Por defeito a comparação de versões é horrível. Mostra as duas versões numa única coluna, com as diferenças destacadas, o que resulta numa grande confusão. É a coisa menos práctica de sempre. Mas não tem de ser assim.

Descobre as diferenças com a SE39

images/thumbnail.jpg - Thumbnail

Estava há pouco a fazer QC a um programa que criaram chamado ZSDFAKSPE com quase 1000 linhas e nenhum comentário. Uma óbvia cópia de um programa standard chamado SDFAKSPE. Decidi então usar o Editor ABAP de tela dividida (Split screen editor) que está na transacção SE39. Introduzi o nome do Z e do standard e depois pude compará-los lado a lado.

Programar classes baseado em texto fonte

images/thumbnail.jpg - Thumbnail

Estando habituado a programar em Java e C++, a forma como a SE24 obriga a navegar entre as várias partes de uma classe e o facto de cada método estar isolado no seu próprio include ao início fez-me muita confusão. Mas porque é que a SAP complica sempre tudo? Acabei por habituar-me. A dado momento a SE24 passou a permitir a opção Basedo em texto fonte que mostra a classe e os métodos todos ligados em texto corrido. Mas por alguma razão que nunca atinei com aquilo.

Saltar para a tua última alteração

images/thumbnail.jpg - Thumbnail

Imagina que estás a mexer num programa daqueles antigos que têm milhares de linhas (sim porque hoje em dia sabes que não modularizar é errado (pecado mesmo) e os teus métodos (sim porque hoje tu já só usas métodos) nunca passam das 200 linhas).

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.

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.