Categoria > Artigos
Patrocinado por
Patrocinado por Inetum

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.

R3TR vs LIMU

images/thumbnail.jpg - Thumbnail

Espatifaste o sistema produtivo: fizeste uma alteração a um método de uma classe (ou a uma função, vá). Outra pessoa faz outra alteração a outro método da mesma classe (ou a outra função do mesmo grupo de funções, vá) e grava-a num transporte diferente. Quando transportas as tuas alterações para produtivo descobres que a classe (ou função, vá) agora tem um erro de sintaxe porque as alterações tinham dependências. Descobres também que agora, e até resolveres este problema, todos os teus colegas funcionais te odeiam.

O SAPlink

images/thumbnail.jpg - Thumbnail

O SAPlink é um programa Z que se instala no ambiente de desenvolvimento e que permite importar e exportar os mais variados tipos de objectos do Workbench.

Olha aqui exemplos de como o SAPlink pode ser usado:

  • Transferir uma tabela de um sistema SAP para outro

  • Partilhar uma classe na Internet

  • Fazer um backup local de segurança de um conjunto de programas antes de fazer uma alteração perigosa

  • Guardar um desenvolvimento no nosso repositório pessoal (no Evernote, claro) para o caso de vir a precisar dele mais tarde noutro projecto

  • Etc.

Olha pai, agora sem mãos

images/thumbnail.jpg - Thumbnail

Neste artigo vou mostrar-te (e explicar-te!) como podes fazer com que um ecrã de selecção de um programa se refresque periodicamente sem intervenção do utilizador.

Estás preparado?

Finalmente o ABAP sabe Excel

images/thumbnail.jpg - Thumbnail

Há várias formas de criar um Excel em ABAP. Umas mais masoquistas, outras menos masoquistas; umas mais foleiras, outras menos foleiras.

Mete variáveis dentro de textos standard

images/thumbnail.jpg - Thumbnail

Textos standard toda a gente usa. Mas sabias que os textos standard podem ter campos dinâmicos lá pelo meio? A SAP chama-lhes “símbolos de texto”. A forma de o conseguir é igual à dos velhos formulários da nefasta SE71, ou seja, envolvendo-os com o símbolo &. Assim: &KNA1-NAME1;&. Dá um jeitão. Vou mostrar-te como se faz.

Pesquisar por atributos de objectos em tabelas internas

images/thumbnail.jpg - Thumbnail

Há cada vez mais objectos em ABAP, cada vez menos medo deles e, vê só!, cada vez mais gente a escrevê-los e a usá-los. Ora, se começam a aparecer objectos por todo o lado, é normal e desejável que comecem a enfiá-los também dentro de tabelas internas. Também eu guardei há uns tempos um monte de objectos dentro de tabelas mas infelizmente na altura não sabia disto que vou ensinar aqui. Tinha-me dado jeito.

Mas afinal o que vou eu ensinar aqui?

Implementar métodos privados em BADIs

images/thumbnail.jpg - Thumbnail

Há uns tempos tive uma ideia meio estrambólica meio fantástica que hoje decidi partilhar aqui: criar métodos privados nas classes das BADIs.

Passo a explicar.

Como sabotar tabelas

images/thumbnail.jpg - Thumbnail

Mais um artigo em auxílio dos que buscam a subversão subreptícia. Espiões, reparem como editar uma tabela que não pode (e provavelmente não deve) ser editada. Apresento-vos 3 técnicas. A primeira já caducou há anos, a segunda está em vias de caducar e a terceira vamos ver quando caducará.

Enviar relatório ou ordem de spool por e-mail

images/thumbnail.jpg - Thumbnail

Este post inaugura uma nova categoria no Abapinho: Código. Os posts desta categoria apresentarão programas úteis prontos a correr.

Este serve para enviar por e-mail o resultado de qualquer relatório ou ordem de spool. O programa apresentado faz uso da nova BCS (Business Communication Services) através da classe CL_BCS em vez do velho e cansado SO_DOCUMENT_SEND_API1, paz à sua alma.

O conteúdo pode ser enviado no corpo do email, como um anexo TXT ou como um anexo HTML, sendo que este último até vai com as cores todas certinhas e tudo. Disfruta-o. Copia-o cegamente e usa-o ou disseca-o e aprende como usar a CL_BCS. Pelo meio, se te apetecer, ainda podes aprender como usar classes locais e como usar classes de excepção.

Automatizar catálogo de campos de ALV

images/thumbnail.jpg - Thumbnail

Às vezes pergunto-me qual será, no mundo, a percentagem de código ABAP desnecessário. Um exemplo paradigmático de como se pode desperdiçar tempo a escrever código que não serve para nada e só prejudica é a tão frequente definição das descrições dos campos de uma ALV directamente em ABAP.

As funções *_SINGLE_READ

images/thumbnail.jpg - Thumbnail

Quando se quer obter um único registo de uma tabela da base de dados é costume usar-se o SELECT SINGLE que, como toda a gente sabe, na sua forma mais básica reza assim:

SELECT SINGLE *
  FROM KNA1
  WHERE KUNNR = '1234567890'.

LOOP ASSIGNING em vez de LOOP INTO

images/thumbnail.jpg - Thumbnail

No princípio era o INTO. Aliás, no princípio nem sequer era o INTO.

Partida... lagarta... fugida!

images/thumbnail.jpg - Thumbnail

Senhoras e senhores, meninos e meninas, a corrida está prestes a começar.

Introdução

Apresento-vos as 4 participantes. São 4 tabelas internas, de diferentes raças e credos, que se vão pelejar pelo título atlético do LOOP em velocidade. Aqui estão elas:

Concorrente 1: DATA: LT_ITEM TYPE TABLE Concorrente 2: DATA: LT_ITEM_HASHED TYPE HASHED TABLE Concorrente 3: DATA: LT_ITEM_SORTED TYPE SORTED TABLE Concorrente 4: DATA: LT_ITEM TYPE TABLE + INTO INDEX

Como encavalitar tabelas

images/thumbnail.jpg - Thumbnail

Às vezes temos de criar uma tabela Z. Às vezes temos até de criar várias tabelas Z. Às vezes estas tabelas estão relacionadas de alguma forma. Como quando uma contém dados de cabeçalho e a outra dados de item, por exemplo. Ora se estão relacionadas pode dar jeito que sejam editadas em conjunto. É para isso que servem os Clusters de Visão (view cluster).