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:

Escrever dinheiro sem preocupações decimais

images/thumbnail.jpg - Thumbnail

Há quem leia a TCURX para descobrir o número de casas decimais de uma MOEDA quando precisa de escrever um campo endinheirado para uma variável ALFANUMERICA.

És assim? Não sejas.

Finalmente encadeiam-se expressões

images/thumbnail.jpg - Thumbnail

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!

Decimais para alfa-numéricos sem depender do utilizador

images/thumbnail.jpg - Thumbnail

Ao ler um ficheiro com valores numéricos para uma tabela interna ou vice-versa, o sucesso da conversão destes depende de o utilizador tem definido o ponto ou a vírgula como separador decimal. É costume ir então ler a configuração do utilizador e depois, adaptar os valores vindos do ficheiro com ponto ou vírgula conforme.

Mas isto é lamentável e pouco elegante. Devia haver uma forma de não fazer a coisa depender do utilizador.

E há.

SORTED em vez de STANDARD nas tabelas de cache

images/thumbnail.jpg - Thumbnail

Há bastante tempo atrás escrevi aqui um artigo demonstrando as vantagens de usar tabelas internas com índices definidos em vez de simples tabelas STANDARD.

Confissão: é tal o hábito instalado que desde então, quase todas as tabelas internas que criei continuaram a ser STANDARD TABLE.

É muito frequente criar tabelas internas para fazer cache de dados que sei que vou utilizar amiúde dentro de LOOPs para evitar fazer SELECT SINGLEs lá pelo meio.

Partilhar constantes entre várias classes

images/thumbnail.jpg - Thumbnail

Imagina que tens uma manada de classes relacionadas as quais partilham entre elas uma manada de constantes. Dizendo a mesma coisa de outra forma, gostavas que todas as classes da manada tivessem acesso de forma simples à manada de constantes.

(Se estás baralhado, fica sabendo que a manada era só para baralhar)

Continuando.

SAP de aluguer

images/thumbnail.jpg - Thumbnail

Se precisas mesmo de aceder a um SAP e ninguém te deixa e não tens um computador onde o possas instalar ou não tens ciência ou paciência para o fazer, podes sempre alugar.

Alucinação às cores

images/thumbnail.jpg - Thumbnail

Isto não é um artigo. Isto quase nem é uma dica. Isto aproxima-se mais de um desabafo em tom de arco-iris.

Criar RANGEs no DDIC sem ficar com os dentes a ranger

images/thumbnail.jpg - Thumbnail

Cada vez uso mais RANGEs. Uso-os ao pequeno-almoço, ao almoço, ao jantar e fora das refeições. É como o molho de soja. Umas colheradas daquilo e fica logo tudo mais saboroso.