Já usaste expressões regulares?

images/thumbnail.jpg - Thumbnail

As expressões regulares já existem há que tempos. Mas ainda são muito pouco conhecidas e ainda menos usadas. São uma espécie de linguagem descritiva que permite efectuar pesquisas e substituições muito sofisticadas em cadeias alfa-numéricas.

Chama dinamicamente classes e métodos

images/thumbnail.jpg - Thumbnail

Ora aprende lá como invocar dinamicamente um método.

Vamos a isso.

Lê código da net e executa-o

images/thumbnail.jpg - Thumbnail

Este artigo é um dois em um. Ou seja, vais aprender duas coisas de uma só vez.

Mas prepara-te, o que vais aprender é dinamite e, nas mãos erradas, pode fazer implodir o teu universo.

Primeiro vais aprender a ir ler conteúdo à net. E logo a seguir, assumindo que esse conteúdo é código ABAP, aprendes de rajada a executá-lo.

Funções Z misturadas com vistas de manutenção, não!

images/thumbnail.jpg - Thumbnail

A dica de hoje não é uma dica. É um conselho.

Criada uma tabela, depois crias as suas vistas de manutenção. As vistas de manutenção vivem dentro de um grupo de funções. Grupo de funções esse que te é pedido aquando da criação delas. Porque afinal aquilo não passa de um conjunto de código gerado, sendo que a maior parte são ainda assim includes standard. Montes deles.

Apresento-te o problema: há quem crie funções Z suas e as coloque em grupos de função que contêm vistas de manutenção. É verdade. Há quem o faça.

Gosto do LIKE

images/thumbnail.jpg - Thumbnail

Nos maus velhos tempos em que o ABAP era ainda mais antiquado do que é hoje, as declarações de variáveis eram quase todas feitas com LIKE e referenciadas a campos de tabelas:

DATA: V_KUNNR LIKE KNA1-KUNNR.

Com muitos campos evita INTO CORRESPONDING FIELDS

images/thumbnail.jpg - Thumbnail

Já avisei aqui que, em tabelas com muitos campos, é sempre de evitar fazer SELECT *, devendo-se sempre seleccionar explicitamente apenas os campos necessários.

Mas não avisei ainda que há ainda outra optimização que merece ser feita: evitar o INTO CORRESPONDING FIELDS OF TABLE.

Curso grátis da SAP sobre HANA

images/thumbnail.jpg - Thumbnail

A SAP começou a semana passada a dar um curso grátis sobre HANA. Corram!

QUICKINFO: dica sobre como dar dicas

images/thumbnail.jpg - Thumbnail

Esta dica vem, no meu entender, uns anos tarde demais, visto ser já raro usar o comando WRITE para escrever directamente coisas para o ecrã. É, portanto, digamos assim, uma dica retro. Uma dica vintage. Mas vamos supor que estamos ainda no século XX a debater-nos com o comando mais barroco do ABAP, o WRITE.

Imagina-te então, sentado à frente do SAP, a ouvir Pearl Jam, com uns auscultadores de cor preta, e a escrever WRITEs de uma série de valores no ecrã sobre os quais gostavas que o utilizador pudesse ter mais informação. Mas não tens espaço no ecrã para lhe dar essa informação. A SAP pensou nisso:

Aquele sistema RFC está vivo?

images/thumbnail.jpg - Thumbnail

Queres invocar uma função RFC noutro sistema mas, porque não és necrófago, só o queres fazer se ele estiver vivo.

Precisas então de uma forma de saber se esse determinado sistema destino RFC está vivo.

Como fazes?

O Charles Santana faz assim:

DATA: rfcdest         TYPE rfcdest,
            ping_status TYPE /sdf/e2e_traffic_light_numeric.

CALL FUNCTION '/SDF/RFC_CHECK'
  EXPORTING
    iv_destination = rfcdest
    iv_ping        = 'X'
    iv_logon       = 'X'
    iv_latency     = 'X'
  IMPORTING
    ev_ping_status = ping_status.
if lv_ping_status <> 1.
* está morto.
endif.

Obrigado Charles.

O Abapinho saúda-vos.

A função existe?

images/thumbnail.jpg - Thumbnail

Chamas uma função. Imagina que ela não responde. Pode ser por ter ficado calada. Ou por ser tímida. Ou muda. Ou, ai tragédia!, por não existir.

Para teres a certeza e ficares descansado fazes assim: