Categoria > Dicas
Patrocinado por
Patrocinado por Inetum

Pré-definir SELECT-OPTIONs

images/thumbnail.jpg - Thumbnail

O Abapinho recebeu uma carta.

Sr Abapinho,

Todos sabemos como colocar valores por defeito em select options usando o comando DEFAULT. O que nem toda a gente sabe é que podemos também definir por defeito a opção e o sinal e mesmo o botão para restingir o select options.

Ignorar excepções de um módulo de função

images/thumbnail.jpg - Thumbnail

Quando chamas um módulo de função que devolve excepções normalmente dás-lhes números sequenciais tipo isto:

CALL FUNCTION 'VAI_ALI_MAS_VOLTA'
  EXPORTING
    ali = 'Barreiro'
  EXCEPTIONS
    NOT_FOUND = 1
    GOT_LOST  = 2
    OTHERS    = 3.

Mas se a seguir não tiveres o cuidado de ter um IF ou um CASE a olharem para o SY-SUBRC o Code Inspector pode devolve-te um erro caso esteja configurado para tal.

Concatenemos

images/thumbnail.jpg - Thumbnail

Temos duas variáveis:

DATA palavra1 TYPE string.
DATA palavra2 TYPE string.
DATA: frase TYPE string.

palavra1 = isto.
palavra2 = aquilo.

E queremos concatená-las metendo entre elas a palavra ‘mais’ e, claro, separando-as por espaços.

Escrever em muitas linhas ao mesmo tempo

images/thumbnail.jpg - Thumbnail

O editor de ABAP tem coisas que não lembram ao diabo. Até dá para escrever ao mesmo tempo em várias linhas.

Onde está o booleano?

images/thumbnail.jpg - Thumbnail

Não está.

Mas eles - os senhores que fazem e refazem o ABAP propriamente dito - vão tentando remediar a situação.

Olha por exemplo esta nova funcionalidade.

LOOP at tbl ASSIGNING <linha> CASTING

images/thumbnail.jpg - Thumbnail

Sabias que podes fazer LOOP de uma tabela interna com uma estrutura A para dentro de uma estrutura do tipo B?

Indentar em bloco

images/thumbnail.jpg - Thumbnail

Para indentares um bloco de linhas só com teclas faz assim:

Limpar os buffers de uma sessão SAP

images/thumbnail.jpg - Thumbnail

Todos os dias aprendo novos comandos para introduzir no campo da transacção. Hoje aprendi uns que resolvem um problema que, ainda que raramente, já me aconteceu no passado.

Vê lá se isto já te aconteceu: fazes uma alteração a um texto de um elemento usado numa tabela que editas a partir da SM30. Mas quando vais à SM30 o texto antigo continua lá. Activas vezes sem conta, sais e entras da transacção e nada.

Modelo automático só com CTRL-SPACE

images/thumbnail.jpg - Thumbnail

Claro que já conheces o botão “Modelo” no editor de ABAP que permite introduzir automaticamente modelos para módulos de função, chamadas a métodos e outros.

Mas o novo editor agora cresceu um bocadinho (já só está 10 anos atrasado em relação ao Eclipse em vez de 20) e já permite completar automaticamente alguns comandos através do atalho CTRL-SPACE.

Desbloquear objectos numa ordem de transporte

images/thumbnail.jpg - Thumbnail

Quando alteras um objecto e o guardas numa ordem de transporte ele normalmente fica bloqueado. Dentro da ordem de transporte é podes bloquear objectos que não estejam já bloqueados que não estão já bloqueados noutra ordem. Mas, uma vez bloqueados, como é que se desbloqueiam?

Mete-o entre parêntesis

images/thumbnail.jpg - Thumbnail

Truquezito catita: quando na SE38 quiseres meter uma palavra ou expressão entre parêntesis ou aspas, basta seleccioná-la e carregar em ( ou [ ou ‘. E imediatamente isto fica (isto) ou [isto] ou ‘isto’. Obrigado Sérgio Fraga pela dica.

Contemplar o pacote

images/thumbnail.jpg - Thumbnail

Estás a contemplar uma classe na SE24, uma tabela na SE11 ou um programa na SE80. Agora queres ver o pacote desse objecto bem como o seu conteúdo. Até há pouco tempo eu faria assim: primeiro via nas características do objecto qual é o seu pacote, depois abria uma sessão nova, ia à SE80 e escrevia lá o pacote.

Agora aprendi uma forma muito mais simples.

Descobre quem transportou uma ordem

images/thumbnail.jpg - Thumbnail

No outro dia apareceram uma série de coisas espatifadas na nossa máquina de testes. De repente ninguém podia trabalhar na máquina. Na STMS encontrámos uma série de ordens de transporte indevidamente transportadas para lá. O utilizador que aparece associado a cada uma dessas ordens é o dono dela. Mas será que a culpa é dele? Não terá sido outra pessoa a fazer o transporte?

Como saber?

Vista técnica da SE16N

images/thumbnail.jpg - Thumbnail

Olá. Tudo bem? A vida? Flui? Esta dica é tão simples que mais vale conversarmos um bocado antes de eu a dizer senão nem dá para aquecer. Está sol. Choveu de manhã mas agora escampou. Siga. Sempre que vejo alguém a usar a SE16 pergunto-me porque é que o continua a fazer quando a SE16N é tão melhor e já existe há tanto tempo. Mas a dica não é isto.

Apagar pacotes que não querem ser apagados

images/thumbnail.jpg - Thumbnail

Quando tentas apagar um pacote no qual já criaste objectos que entretanto apagaste e o pacote aparente estar vazio quando visto na SE80, quando o tentas apagar não dá porque diz que o pacote ainda contém objectos.

Por alguma razão parva, a SE80 não mostra todo o tipo de objectos associados aos pacotes. Além disso, muitas vezes ao apagar um objecto a entrada desse objecto não é correctamente apagada. O SAP está cheio de falhas. Mas é o que temos, é ele que nos dá o pão, não vamos dizer muito mal dele.

O Abapinho dá-te a solução.