"
Apoiado por

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?

Ler o resto do artigo! »

Fechar automaticamente as portas que tu abres

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.

Obrigado Sérgio Fraga pela dica.

O Abapinho saúda-vos.

Dantes o ABAP gostava de inverter datas

Todos os dias o ABAP me revela coisas novos. Às vezes coisas que mais valia eu nem saber que existem. Como esta.

A tabela T056P tem um campo com uma data. Fazendo um SELECT a esta tabela filtrando pela data não conseguia obter nada de jeito. Mas o código parecia correcto. Na SE16N descobri que o intervalo de datas também não funcionava conforme esperado: só apresentava resultados quando a data final era colocada no LOW e a inicial no HIGH. Bizarro.

Ler o resto do artigo! »

A transacção que queria chamar outra e não podia

O Manelinho criou a transacção ZFB01 associada ao programa ZFB01 que faz lá umas coisas e depois faz CALL TRANSACTION à FB01. A seguir veio o Joãozinho e correu a transacção ZFB01.

Conseguiu começar a corrê-la porque tem permissões para a transacção ZFB01. Mas a meio teve um erro porque não tem permissões para a transacção FB01.

Tanto o Manelinho como o Joãozinho sabiam que os administradores de sistema nunca na vida deles darão ao Joãozinho autorizações para correr a FB01.

Ler o resto do artigo! »

ASSERT vs Excepção

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.

Ler o resto do artigo! »

Obtém o texto mais profundo de cadeia de excepções

Nos dias que correm se não estás a usar objectos és totó.

Se usas objectos, espero que estejas a seguir a boa práctica de usar classes de excepções.

E se usas classes de excepção é bom que entendas a melhor forma de as usar, particularmente as vantagens de as encadear.

Com tudo isto esclarecido, chegamos ao que nos traz aqui hoje. No artigo sobre cadeias de excepções mostrei como, para obter o texto da excepção mais profunda, a que foi inicialmente espoletada, se pode fazer um DO WHILE:

Ler o resto do artigo! »

Como devolver um REF TO data sem fazer asneira

Tenho usado cada vez mais referências em ABAP.

Primeiro usava REF TO só para classes mas vou percebendo cada vez mais as vantagens de as usar também para estruturas de dados. Mas, tal como acontece em C++, há que ter cuidado quando se lida con referências para dados pois facilmente a coisa pode dar para o torto.

Neste artigo tento mostrar como usar e como não usar o REF TO data. Comecemos por ver um exemplo de como não usar:

Ler o resto do artigo! »

O estranho caso da estrutura parcialmente protegida

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

Ler o resto do artigo! »

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

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

Ler o resto do artigo! »

Converte classe de excepção numa BAPIRET2

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.

Ler o resto do artigo! »

Comparar versões ignorando as indentações

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:

diff

De nada ;)

O Abapinho saúda-vos.

Usa o GUI Status Standard sem o copiares

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.

Ler o resto do artigo! »

Provérbio ABAP

Não deixes para amanhã o que podes fazer SY-DATUM.

Cria modelos na SE80 arrastando coisas para o código

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.

Ler o resto do artigo! »

$PACOTES locais

Todos os objectos criados em SAP têm de estar associados a um pacote.

Até recentemente, quando eu queria fazer um teste rápido criava o objecto no pacote $TMP. Tinha assim a garantia de este nunca viria a ser transportado.

Mas por vezes há necessidade de criar coisas no sistema de desenvolvimento que não pretendemos nunca vir a transportar mas que queremos que lá existam eternamente. Como o ZSAPLINK e o abapGit, por exemplo. Mas se as associarmos todas as pacote $TMP fica uma valente confusão.

Ler o resto do artigo! »


Acerca do Abapinho
O Abapinho é suportado pelo WordPress
Artigos (RSS) e Comentários (RSS).