Categoria > Dicas
Patrocinado por
Patrocinado por Inetum

Altera ordens de transporte mesmo que não te deixem

images/thumbnail.jpg - Thumbnail

Como todos nós sabemos os administradores de sistemas são pessoas más, insensíveis e crueis. A prová-lo está o incontornável BOFH.

Nós, programadores ABAP, somos vítimas indefesas nas mãos destas criaturas maléficas.

Mas nem sempre somos obrigados a deixar-nos esmagar pelos dedos peludos dos seus caprichos.

Mostra valores não convertidos na SE16N

images/thumbnail.jpg - Thumbnail

A SE16N mostra-te os valores dos campos no formato externo. Até há pouco tempo eu usava a arcaica SE17 para ver os valores no formato interno. Mas o Rui Nunes explicou que há uma forma de o conseguir fazer na SE16N.

Abracadabra revela parâmetro secreto

images/thumbnail.jpg - Thumbnail

Aqui está uma forma pouco ortodoxa de lidar com o ecrã de selecção de um programa. Se tiveres um parâmetro que pretendes manter escondido dos olhos dos utilizadores e mesmo assim poder ter acesso a ele (ex.: um pisco para entrar em modo de debug) podes usar a palavra mágica ABRACADABRA para lhe aceder. Funciona assim: DATA: unhide_parameters TYPE flag. PARAMETERS: p_debug AS CHECKBOX. AT SELECTION-SCREEN. CASE sy-ucomm. WHEN 'ABRACADABRA'. unhide_parameters = abap_true.

Classe para garantir segurança em programação dinâmica

images/thumbnail.jpg - Thumbnail

No outro dia encontrei um programa que gerava um comando SQL com base em várias variáveis fixadas no código. Mas, por distracção ou ignorância, a alminha que fez aquilo achou que fazia sentido associar essas variáveis a símbolos de texto. Algo assim:

Relatório de consistência da SALV

images/thumbnail.jpg - Thumbnail

Às vezes uma SALV pode ter inconsistências que passam despercebidas a quem as programa. Um exemplo é uma estrutura com um campo WRBTR sem um campo de moeda associado:

Entra numa transacção sem passar pelo ecrã de selecção

images/thumbnail.jpg - Thumbnail

Mais uma vez o SAPGui me surpreende com mais um atalho obscuro que desconhecia. Usemos a transacção de visualização de clientes XD03 como exemplo: Entras no ecrã de selecção da transacção escrevendo lá em cima /NXD03 Introduzes o número do cliente que queres visualizar e carregas em ENTER Fazes lá o que tens a fazer e depois sais da transacção Mas… de repente… precisas de ver mais qualquer coisa desse cliente

Copiar variante do Code Inspector para outro sistema

images/thumbnail.jpg - Thumbnail

No meu cliente tenho três ambientes de desenvolvimento. Dantes tinha só um. E foi nesse que configurei a variante do Code Inspector que uso para correr o Abap Test Cockpit. Quando apareceram os outros dois, antes de me decidir a replicar a variante à mão em cada um deles, decidi investigar um pouco. Para minha surpresa encontrei no GitHub o projecto upDOWNci que faz exactamente o que eu precisava: exportar e importar variantes do Code Inspector.

Pasta física vs pasta lógica

images/thumbnail.jpg - Thumbnail

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?

Fechar automaticamente as portas que tu abres

images/thumbnail.jpg - Thumbnail

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.

ASSERT vs Excepção

images/thumbnail.jpg - Thumbnail

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.

O estranho caso da estrutura parcialmente protegida

images/thumbnail.jpg - Thumbnail

Estava a tentar actualizar uma linha de uma SORTED TABLE e não estava a conseguir.

Passei-me ao passar o SY-TABIX por parâmetro

images/thumbnail.jpg - Thumbnail

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 ).

Converte classe de excepção numa BAPIRET2

images/thumbnail.jpg - Thumbnail

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.

Comparar versões ignorando as indentações

images/thumbnail.jpg - Thumbnail

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:

Usa o GUI Status Standard sem o copiares

images/thumbnail.jpg - Thumbnail

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.