Pasta física vs pasta lógica
Se num relatório chamado APP1 precisares de gravar um ficheiro numa determinada pasta do servidor (ex.: /export/app1/) e não quiseres que esta pasta seja um parâmetro, como fazes?
Se num relatório chamado APP1 precisares de gravar um ficheiro numa determinada pasta do servidor (ex.: /export/app1/) e não quiseres que esta pasta seja um parâmetro, como fazes?
Estas no editor. Introduzes um ( ou [ ou { ou ' e o SAP é mongo e não o fecha certo? Ora bem, Clica no ícone em baixo à direita que acede às opções do SAPGui onde adicionamos template. Na opção formatting , activas o Enable Auto Brackets e voilá, o SAP começa a fechar automaticamente as portas que tu abres. Mais valia que isto viesse activado de raiz.
Quem lê o Abapinho sabe quanto gosto de classes de excepções. No entanto, este não é o único mecanismo que o ABAP disponibiliza para controlo de erros. Há outro, chamado ASSERT, que devia ser mais usado, e que hoje trago à baila.
Estava a tentar actualizar uma linha de uma SORTED TABLE e não estava a conseguir.
No outro dia aconteceu-me uma coisa muito estranha. Estava eu a passar o SY-TABIX como parâmetro para dentro de um método quando reparei que cá fora era 1 mas quando lá chegava dentro era 0. Muitíssimo bizarro. o_coisificador->que_coisa_bizarra( sy-tabix ).
Há uns tempos escrevi um artigo a explicar uma forma de converter automaticamente excepções clássicas em classes de excepção. Hoje uso esta técnica em quase todas as classes de excepção que crio (e até já melhorei a coisa mas noutro dia falo disso). Esta dica explica exactamente o contrário.
Quando se compara versões por vezes aparecem várias diferenças mesmo quando não fizemos alterações ao código. Essas diferenças podem ser simplesmente consequência de um Pretty Printer que altera as indentações do código. Isto torna a comparação muito difícil e confusa. Mas o ABAP Workbench prevê isso e permite configurar o comparador de versões para ignorar indentações e até comentários. Basta carregares em F5 ou ires ao menu “Display Format > Settings” e adaptá-lo às tuas necessidades:
Quando queres usar a CL_GUI_ALV_GRID num CONTAINER tens de copiar um GUI Status standard de outro programa. Por exemplo o GUI Status “STANDARD" do grupo de funções SALV. E depois no PAI do ecrã chamas: SET PF-STATUS ‘STANDARD’. E lá aparecem os butõezinhos.
Quando estamos a programar é sempre bom ter formas de acelerar o que estamos a fazer. Uma delas é a geração automática de de padrões de chamadas de métodos e afins. Conheço 3 formas de o fazer.
Hoje em dia quando quero criar uma SALV defino sempre a estrutura dos dados no DDIC já com os elementos de dados com as descrições desejadas em vez de os forçar no código.
O editor de ABAP tem sempre coisas novas para descobrir. Quando faço CTRL-F para pesquisar texto a opção que costumo usar é a Continuar proc.
Toda a minha vida ABAPiana usei APPEND STRUCTURES para adicionar campos extra a tabelas standard. Mas aprendi recentemente que afinal servem para mais duas coisas:
Sabes que há uns anos atrás fizeste um método qualquer cujo nome tinha a palavra MALMEQUER. Mas, e agora? Como é que o encontras? Poderias usar a transacção SE24 para pesquisar uma a uma todas as classes alteradas por ti. Mas eras capaz de demorar algum tempo. Não faças isso. Experimenta antes usar a transacção SE84:
Imagina que queres chamar um método mas não sabem quais os seus parâmetros. O que fazes? Dantes tinhas de usar o pattern ou então abrir a classe numa janela ao lado para ver os parametros do método. Depois apareceu o auto-complete e tornou tudo mais simples. Mas há ainda outra forma.
Quando quero procurar uma determinada palavra num programa ABAP normalmente uso a função de pesquisa carregando em CTRL-F. E depois vou carregando em NEXT para ir encontrando as várias ocorrências da palavra que procuro. Mas há outra forma. E não é melhor nem pior. É simplesmente diferente: a pesquisa incremental.