"
Categoria > Artigos
Apoiado por

ABAP Code PushDown em HANA

[Artigo por Artur Moreira]

A SAP introduziu a partir da versão 7.4 do ABAP o conceito de Code PushDown, que significa utilizar mais a base de dados para cálculos (agregação de dados, somas e vários cálculos prévios).

Ler o resto do artigo! »

GROUP BY em LOOPs a tabelas internas

Todos já ordenamos tabelas internas e utilizamos a instrução AT NEW.
Mas a partir da 7.40, podemos utilizar GROUP BY no LOOP.

É fantástico a capacidade de agrupamento em que os valores do registo processado no loop podem ser comparados, recorrendo a expressões e  até métodos.

O agrupamento é realizado num primeiro LOOP e pode ser processado a seguir. Experimentem o seguinte código e, tal como eu, ficarão impressionados com o caminho que o ABAP está a seguir.

Ler o resto do artigo! »

SAABs ASSERTar à primeira?

Checkpoints é uma framework muito poderosa do ABAP que no entanto quase ninguém a usa. Porquê? Provavelmente pela mesma razão que quase ninguém ouve Sun Ra e que quase ninguém sabe que o Frank Zappa tem 102 álbuns. Porque embora seja bom, é obscuro e pouco comercial. Os checkpoints são, de facto bons e pouco comerciais. Mas deviam ser mais como o Mozart, que é bom e comercial.

Ler o resto do artigo! »

STA Ticket System acelera a resolução de incidentes SAP

Hoje temos um convidado, Tamás Holics. Ele é dono da STA Consulting, uma empresa Húngara que criou 2 produtos muito interessantes para SAP. Neste artigo o Tamás apresenta o STA Ticket System.

O Problema

Desperdiça-se muito tempo nos processos de teste e manutenção SAP dado que os relatórios de erros produzidos pelos utilizadores serem muitas vezes incompletos ou incorrectos. A resolução do problema reportado normalmente fica pendente até a informação estar toda completa. Ora como em boa parte dos incidentes reportados a equipa de manutenção (analistas, programadores) tem de pedir mais informação sobre o erro, há uma enorme perda de tempo valioso em iterações desnecessárias, tanto de quem reporta incidentes como de quem lhes dá suporte.

Ler o resto do artigo! »

Afinal a podridão é nobre

Durante anos queixei-me por o ambiente de desenvolvimento do SAP ser tão retrógrado e antiquado e por demorar tanto tempo a evoluir Sempre que mo ouvia dizer, um amigo meu avisava-me sabiamente: “não mordas a mão que te dá de comer”.

Mas como pode um homem ficar calado?

Ler o resto do artigo! »

Padrões de projecto de software em ABAP

Estamos em constante aprendizagem. Mas volta não volta aprendemos algo que nos obriga a dar um salto paradigmático na forma como olhamos para o que fazemos.

A última vez que isso me tinha acontecido foi quando comecei a usar OO em ABAP. OO não era novo para mim pois sempre programei em Java, C#, C++, etc. Mas poder finalmente aplicar os conceitos de OO em ABAP foi um alívio e um salto quântico na qualidade, flexibilidade e velocidade do meu trabalho.

Sinto-me neste momento a dar mais um salto. Porque estou finalmente a aprender a usar padrões de projecto (software design patterns). Desde sempre que ouvi falar neles mas nunca lhes dei a devida atenção. Por exemplo, o site de ABAP ZEVOLVING há muitos anos que fala neles e lembro-me de ter lido vários destes artigos. Mas de alguma forma ainda não tinha encontrado um texto que, para além de os explicar, mostrasse de forma clara as vantagens da sua utilização.

Agora, graças ao Miguel Jorge, encontrei: Head First Design Patterns. Além de cómico, explica de forma clara e simples as limitações dos paradigmas OO e como é que a utilização de padrões de projecto podem ajudar a contorná-las.

Este site tem links para vários textos interessantes, inclusive para o que parece ser uma versão PDF do livro acima referido. E também para esta página que os descrever e até critica.

A partir de hoje sempre que desenhar soluções OO tentarei ter presentes os vários padrões existentes e aplicá-los sempre que tiverem cabimento.

Obrigado Miguel Jorge!

O Abapinho saúda-vos.

Índices secundários em tabelas internas

Durante anos as tabelas internas eram declaradas assim:


DATA: itbl TYPE TABLE OF bkpf.

Ler o resto do artigo! »

Como sabotar textos standard

Às vezes não gosto dos nomes que a SAP deu às coisas. E então mudo-os.

Por exemplo, um dia estava muito zangado e achava que os clientes eram todos uns parasitas.

Então fiz o seguinte:

Ler o resto do artigo! »

Eu te baptizo em nome do ABAP

Quando aprendemos ABAP ensinam-nos uma série de regras sobre como dar nomes a variáveis. Ainda que nem todos acabem por dar nomes iguais, ainda assim partilham-se algumas ideias rígidas:

  • As variáveis locais começam por L: L_BUKRS;
  • As variáveis globais começam por G: G_MODE;
  • As tabelas internas têm de ter lá um T_: LT_MARA;
  • As estruturas têm de ter lá um S_: LS_MARA;
  • As referências para objectos começam por R_: R_CUSTOMER;
  • Os parâmetros input devem começar por I, os output por O, os changing por C e os returning por R.
  • E a mais estúpida de todas, os field-symbols devem começar por FS_: <FS_MARA>.

No início do século XXI isto até fazia sentido (excepto a dos field-symbols que já na altura era tão estúpida como escrever a palavra “lápis” em todos os lápis que tivermos). Hoje quase já não. Passo a explicar.
Ler o resto do artigo! »

DELETE vs CLEAR vs REFRESH vs FREE

DELETE
CLEAR
REFRESH
FREE

São várias maneiras de limpar os dados de uma tabela interna.
À partida parecem iguais.
Mas não são.

Ler o resto do artigo! »

Converter excepção em classe de excepção

Se ainda não usas classes de excepção fazes mal. Porque são muito boas para a saúde do código. Além de nutritivas, emagrecem-no e tornam-no mais resistente a doenças.

Mas há casos em que ainda é preciso lidar com as antigas excepções. Por exemplo quando se invoca um módulo de função.

Neste artigo apresento uma sugestão um bocado rebuscada mas que funciona muito bem para integrar as excepções antigas com classe de excepção de uma forma simples. A solução é rebuscada mas só tem de ser feita uma vez. Uma vez feita, a forma como se a usa não tem nada de rebuscado.

Ler o resto do artigo! »

Ensina o ABAP a fazer malabarismo

O que podemos fazer quando as noites não são suficientes para os processamentos diários?

Ler o resto do artigo! »

Procurar texto numa WebDynpro

A SAP não sabe fazer as coisas bem à primeira. As WebDynpros são um bom exemplo disso. Aquilo nem sequer permite pesquisar texto. É triste.

Felizmente o Sérgio Fraga descobriu uma forma, ainda que rebuscada:

Ler o resto do artigo! »

Cadeias de excepções

Hoje vou ensinar-te a encadear excepções. É uma solução muito práctica para um problema complicado mas pouco óbvio.

Começo por descrever o problema.

Imagina que estás na aplicação BANANA.
É uma aplicação bastante complexa.
Tem, aliás, três módulos. São eles BANANA1, BANANA2 e BANANA3.
Cada um tem a sua classe de excepção ZCX_BANANA1, ZCX_BANANA2 e ZCX_BANANA3.
E como a aplicação até está bem desenhada, todas as classes de excepção herdam da mesma ZCX_BANANA.
Agora imagina o seguinte cenário.
Estás no módulo BANANA1 a fazer não sei o quê.
E lá tens de chamar uma classe do módulo MORANGO
Ora essa classe lança, claro, excepções, do tipo ZCX_MORANGO.
Este é o contexto.

Tens várias hipóteses:

Ler o resto do artigo! »

Comunicação por evento entre programas

Na mitologia grega a forma de comunicação mais frequentemente utilizada pelos deuses para comunicar com os mortais era o estupro. Estupravam por dá cá aquela palha.

O mais parecido que temos com estupro no ABAP é o comando SUBMIT, que é também a forma mais comum de comunicação entre dois programas.

Ler o resto do artigo! »


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