Categoria > Dicas
Patrocinado por
Patrocinado por Inetum

Debug de um job

images/thumbnail.jpg - Thumbnail

Para fazeres debug a um programa que faça parte de um job faz o seguinte:

Como perguntar se a linha existe sem parecer antiquado

images/thumbnail.jpg - Thumbnail

Há muito tempo atrás dizias “porreiro pá”. Depois começaste a dizer “baril”. Depois era “fixe”. Hoje dizes “altamente”. É importante não te baralhares para não dares mau aspecto.

E como perguntas a uma tabela interna se a linha existe?

Calem-se as mensagens das funções

images/thumbnail.jpg - Thumbnail

Há módulos de função standard que lançam mensagens e não deviam. Não deviam porque depois queremos usá-las em programas não interactivos e, em vez de devolverem o erro, atiram com uma mensagem para o ecrã que dá cabo do processo.

Mas, provavelmente por ter tomado consciência deste problema, a SAP disponibilizou uma forma elegante (mas muito mal documentada) de resolver o problema.

Fazer debug a um ciclo infinito já em execução

images/thumbnail.jpg - Thumbnail

Imagina que tens um programa a executar um ciclo infinito ou, pelo menos, um ciclo com 70x7 iterações. Nunca mais acaba e tu queres saber o que lá se passa.

No passado tinhas de ir à SM50, seleccionar o processo e escolher no menu “Administração | Programa | Depuração”.

Mas agora há uma forma muito mais simples.

De quantos includes é feita uma classe?

images/thumbnail.jpg - Thumbnail

Por muitas voltas que eles dêem no ABAP, acaba tudo por ir dar à SE38. Até os métodos das classes ABAP são guardados em includes.

Às vezes quando há um dump diz que o problema está, por exemplo, aqui: CL_MESSAGE_HELPER=============CM001.

Tornar a prender uma ordem de transporte liberada

images/thumbnail.jpg - Thumbnail

Liberaste uma ordem de transporte porque achavas que estava tudo pronto. Mas afinal ainda faltava fazer mais uma pequena modificação. E agora vais ter de criar uma nova ordem e transportar as duas. Que grande chatice.

Calma.

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.