"
Apoiado por

Finalmente encadeiam-se expressões

Finalmente, com o SAP NetWeaver 7.0 Enhancement Package 2 o ABAP começa a parecer-se com uma linguagem de programação normal.

Até já dá para encadear expressões, vê lá tu!

É certo que o EhP2 já chegou há muito tempo, mas há muitos projectos que ainda não o têm. No meu, só chegou no mês passado. E mesmo aqueles que já o têm acredito que possam não fazer ideia das inúmeras possibilidades que o ABAP agora lhes põe à disposição.

Até aqui, quando querias encadear expressões umas nas outras, o ABAP dizia: syntax error. E lá tinhas tu de fazer as coisas às prestações. Tipo assim:


x = a + b
y = c + d
IF x > y.
  z = e + f.
  DO z TIMES.
    CONCATENATE g h INTO i.
  ENDDO.
ENDIF

Agora (ou melhor dizendo, quando no teu projecto fizerem upgrade para o EhP2) já podes fazer assim:


IF a + b > c + d.
  DO e + f TIMES.
    i = g && h.
  ENDDO.
ENDIF.

E em vez de teres de fazer isto:


DATA o_cl1 TYPE REF TO cl1.
o_cl1 = cl2=>da_cl1( ).
o_cl1->faz_algo( ).

já podes fazer isto:


cl2=>da_cl1( )->faz_algo( ).

E notaste ali em cima o && a faz as vezes do famigerado CONCATENATE? Há também inúmeras novidades na manipulação de strings, mas isso fica para outro artigo.

Se ainda não tens o EhP2, vai sonhando. Se já o tens, faz experiências, porque há muitas possibilidades novas destes género.

Obrigado KayVee.INC pela foto.

O Abapinho saúda-vos.

2 comentários a “Finalmente encadeiam-se expressões”

  1. Programista ABAP Diz:

    Well this is one of those “nice to know” but 90% of my clients are still using lower version than 7.0EP2 so to have elastic code it’s probably better to keep it in “non chain version”.

    Best regards,
    PG

  2. Nuno Godinho Diz:

    In generic code which can be reused in many systems, yes, better keep it in the old form. But since most of the code I write is specific, I’ll definitely start putting this chaining thing to good use.

Deixe um comentário


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