Patrocinado por
Patrocinado por Inetum

Request Based Debugging

images/thumbnail.jpg - Thumbnail

Se em debug consultares a variável de sistema UNAME dentro de uma chamada RFC podes achar estranho encontrar um utilizador que não o teu. O que acontece é que o sistema adopta um utilizador específico a chamadas remotas e uma nova sessão é iniciada. Uma nova sessão implica um novo contexto de execução e, consequentemente, todos os nossos breakpoints , já estrategicamente colocados, não serão reconhecidos.

Este problema pode dificultar um debug simples obrigando-nos a percorrer o código à procura DAQUELA chamada remota ÀQUELE sistema em particular.

A SAP tem a solução.

Classe com montes de métodos para lidar com datas

images/thumbnail.jpg - Thumbnail

Há inúmeras funções standard para fazer cálculos com datas. São muitas, são demais, são redundantes e, em muitos casos, são obscuras ou impossíveis de compreender. Andava há que tempos para fazer um artigo aqui com uma lista das mais úteis. Mas agora já não é preciso.

Faz debug a um job

images/thumbnail.jpg - Thumbnail

Toma lá uma forma simples de começares a fazer debug a um job: Vai à transacção SM37; Clica no job a que queres fazer debug; escreve JDBG na linha de comando (sem /) e carrega em ENTER; e… zás! estás a fazer debug ao job. Obrigado Ricardo Monteiro pela dica. E obrigado Ingolf pela foto. O Abapinho saúda-vos.

Atalho para viajar no tempo

images/thumbnail.jpg - Thumbnail

Há uns meses atrás mostrei como transformar o debugger numa máquina do tempo. Hoje a dica é singela mas escorreita: há um atalho de teclado para tornar ainda mais simples este viajar enviesado: shift + F12 Pões o cursor na linha para onde queres viajar e depois… shift+F12. Obrigado Maxsuel Maia pela dica. O Abapinho saúda-vos.

Usa um gestor de passwords na tua vida

images/thumbnail.jpg - Thumbnail

E pronto, se leste o título, a dica está dada.

Agora umas dicas sobre a dica:

Tenho 5 anos!

Olá, chamo-me Abapinho e tenho 5 anos. Ainda estou em crescimento. Obrigado a todos os que me visitaram na minha curta vida e um obrigado especial àqueles que me enviaram dicas e ideias e em particular aos que já colaboraram com artigos. Eu, Abapinho, saúdo-vos.

Boas prácticas do Abapinho

images/thumbnail.jpg - Thumbnail

Ao longo dos últimos tempos compilei um conjunto de boas prácticas que fui adoptando para mim próprio. Resolvi partilhá-las aqui, criando para isso uma nova categoria (que aparecerá em breve no menu à esquerda) sob a qual serão agrupadas. A ideia original era fazer um PDF mas, como elas estão em constante revisão e ampliação, tornava-se pouco práctico. Como tal, serão publicadas uma a uma. O objectivo é que estas possam ser vistas no seu conjunto como uma referência acessível de fácil consulta.

O detective do ABAP

images/thumbnail.jpg - Thumbnail

Em SAP, quando um desenvolvimento está concluído, chega finalmente o momento de o enviar para outros sistemas onde pode ser devidamente testado e por fim executado pelos utilizadores. Mas antes disso, é crucial verificar se não existem lapsos, erros e afins que possam levar ao aparecimento de alguns comportamentos imprevisíveis por parte dos nossos programas. Existe uma ferramenta muito útil que permite filtrar alguns desses erros e lacunas. Chama-se ABAP Code Inspector.

Fecha a janela encalhada

images/thumbnail.jpg - Thumbnail

Quantas vezes te aconteceu ficar com uma janela “pendurada” quando terminas um debug?

Exemplar exemplo de SALV

images/thumbnail.jpg - Thumbnail

A não ser que queiras fazer edição dos dados, a única forma digna de usar ALVs nos dias que correm é através das classes SALV. São mais modernas, mais elegantes e permitem a quem as usa alcançar um estatuto social até aqui apenas ao alcance daqueles que são donos de uma matrícula de carro.

Pára lá mas não já

images/thumbnail.jpg - Thumbnail

Estás a fazer um LOOP AT a uma tabela com 1000 linhas e sabes que a linha que te interessa é a 853. Até há pouco tempo tinhas duas hipóteses: ou carregavas 852 vezes na tecla F8, arriscando-te a carregar 853 e teres de começar tudo de novo ou então criavas um watchpoint com a condição SY-TABIX = 852 ou lá perto e rezavas para que funcionasse.

Agora tens uma terceira alternativa.

APPEND LINES OF classe->metodo() TO itbl

images/thumbnail.jpg - Thumbnail

O ABAP anda cada vez mais esperto. Ainda sou do tempo em que não se fazia nada dele. E agora, lentamente, com mais de um quinto de século de atraso, lá vai tentado imitar o C e o Java e ficando mais flexível.

Eu ia fazer algo deste tipo:

Teclado automático

images/thumbnail.jpg - Thumbnail

Todos os programadores conhecem a relação íntima que há entre batch-inputs e pisa-papéis, agrafadores e outros objectos pesados do tipo. São ajudantes preciosíssimos que evitam passarmos por vezes 8 horas a empurrar uma tecla chamada ENTER com um dedo.

Ainda que esse tipo de objectos tenha algum encanto, por vezes a lei da gravidade - a mesma que os torna úteis - fá-los cair para o lado e pararem assim de pressionar a tal tecla chamada ENTER.

Adicionar valor a domínio standard

images/thumbnail.jpg - Thumbnail

Se julgas que não é possível acrescentar valores a um domínio SAP standard sem pedir uma chave de activação, estás enganado.

O ABAP suga

images/thumbnail.jpg - Thumbnail

Ora bem, este é o primeiro artigo do Abapinho em que o título se sente um bocado perdido na tradução. Mas mesmo tendo consciência de que não é semanticamente são, penso ser o único título à altura do que aqui vos apresento.