Categoria > Dicas
Patrocinado por
Patrocinado por Inetum

Vantagens do LIKE LINE OF

images/thumbnail.jpg - Thumbnail
Partamos do princípio de que és uma pessoa com alguma dignidade e que por isso já não usas tabelas internas com HEADER LINE ;) Posto isto, imaginemos que declaras uma tabela interna:

Manter grupos de autorização de manutenção de tabelas

images/thumbnail.jpg - Thumbnail
Há alguns projectos em que o grupo de autorizações associados à manutenção de tabelas é sempre &NC;&, ou seja, &N;ão cuidado&. É sinal de que lá é tudo amigo e ninguém faz mal a ninguém. Mas há outros projectos em que os grupos de autorização são levados a sério. O que não é sinónimo de dizer que estão organizados. A sério ou não, o normal é acabar tudo uma grande salgalhada onde ninguém sabe quem é que está autorizado a fazer o quê. Esta dica talvez ajude.

INSERT e APPEND com ASSIGNING FIELD-SYMBOL

images/thumbnail.jpg - Thumbnail
A verdade nua e crua, custe o que custar, é que as estruturas estão fora de moda. Agora o que está em voga é FIELD-SYMBOLS. Quando fazes um LOOP a uma tabela interna, claro que também usas ASSIGNING FIELD-SYMBOL em vez de INTO estrutura, não é? Mas o que me lixava era o APPEND e o INSERT. Ainda não sabia como evitar usar uma estrutura para adicionar registos.

Ninguém liga ao LISTBOX

images/thumbnail.jpg - Thumbnail
Por alguma razão misteriosa, a LISTBOX é uma funcionalidade pouco utilizada nos ecrãs de selecção do SAP. E, no entanto, na web está por todo o lado. Vá-se lá saber porquê. Caro leitor, proponho que atentes nas suas vantagens:

SAPagaio

images/thumbnail.jpg - Thumbnail
Na SE38, e cria um programa com o seguinte código. Depois liga o som do teu computador e faz F8. INCLUDE ole2incl. DATA : ole TYPE ole2_object, voz TYPE ole2_object, texto TYPE string. CREATE OBJECT voz 'SAPI.SpVoice'. texto = 'Olá eu sou o SAP e falo português com sotaque estrangeiro'. CALL METHOD OF voz 'Speak' = ole EXPORTING #1 = texto. Nota: o papagaio ficou de fora na foto, só apanharam a arara com que ele estava a conversar :)

É a sério ou a brincar?

images/thumbnail.jpg - Thumbnail
Há coisas que só podem mesmo acontecer em produtivo. Outras há que muito pelo contrário

Se ainda não usas ABAP Objects és mariquinhas pé-de-salsa

images/thumbnail.jpg - Thumbnail
A SAP tem um livro chamado Official ABAP Programming Guidelines que descreve regras e boas práticas de como programar em ABAP. E lá diz assim (dizia em estrangeiro, eu traduzi): Pág. 42: Regra 3.1: Usa ABAP Objects sempre que possível para novos desenvolvimentos. Só podes criar blocos de processamento clássicos em casos excepcionais. Pág. 45: Num bloco de processamento clássico, deverás delegar imediatamente a execução para um método apropriado (ver Regra 6.

Belos diagramas de relações de tabelas

images/thumbnail.jpg - Thumbnail
O Rui Dias mostrou-me um site onde podes ver as relações que qualquer tabela standard tem com as outras. Por exemplo para a T012. E se experimentares com a KNA1 é ainda mais giro. Gostas? Eu gosto. Obrigado Rui Dias. O Abapinho saúda-vos.

Atalho para o campo da transacção

images/thumbnail.jpg - Thumbnail
Estás tu escrevendo furiosamente pelo SAP adentro qualquer quando de repente precisas de ir lá acima ao campo da transacção escrever /OS37 ou algo assim. Mas escreves com tanto tanto tanto fervor que a simples ideia de largar o teclado por um momento para ir com a mão ao rato te parece catastrófica. Então, em vez disso, carregas em 3 teclas: CTRL-SHIFT-7. Obrigado a Renato Sousa pela dica. O Abapinho saúda-vos.

Cria sessões com o teclado

images/thumbnail.jpg - Thumbnail
Queres criar uma nova sessão e roubaram-te o rato. Não faz mal. Carregas no CTRL e na tecla + e vais ver uma nova sessão a aparecer. Obrigado Renato Sousa pela dica. E obrigado a freeimageslive / gratuit pela foto. O Abapinho saúda-vos.

Narcisismo digital

images/thumbnail.jpg - Thumbnail
Chama-se reflexão à capacidade de um programa se ver a si próprio. O ABAP tem uma série de capacidades reflexivas como o RTTS ou a capacidade de gerar código dinamicamente. Além disso há mais umas funções assim e assado que fazem isto e aquilo. Hoje apresento-vos uma delas: GET_GLOBAL_SYMBOLS

Bom programa para encontrar user-exits

images/thumbnail.jpg - Thumbnail
Volta não volta lá andamos nós à procura de user-exits e BADIs, BTEs e quejandos. A SAP não ajuda. Mas vão aparecendo aqui e ali programas, quase sempre chamados Z_USEREXIT, que dão uma ajuda nessa ingrata busca. Pois recentemente fiquei a saber de mais um. Partilho-o aqui porque é o melhor que vi até hoje: https://wiki.sdn.sap.com/wiki/display/Snippets/Find+User-exits,+BADIs,+BTEs,+Etc+by+TCode+or+Program Obrigado Bruno Esperança pela dica. E obrigado a rverscha pela foto. O Abapinho saúda-vos.

Classe para converter STRINGs

images/thumbnail.jpg - Thumbnail
Sabes como às vezes tens uma variável do tipo STRING e precisas de a enviar para uma função que precisa dela no tipo SOLIX? Acontece-me frequentemente. Pois descobri esta classe óptima que permite converter strings entre os mais variados formatos: CL_BCS_CONVERT

Salta a parede

images/thumbnail.jpg - Thumbnail
Baixa a música. Fecha a porta. Olha à volta. Está alguém a olhar para ti? Não estás a ser observado? Nem câmaras de vigilância? Então, podemos continuar.

Evitando a concorrência num programa ABAP

images/thumbnail.jpg - Thumbnail
Dizem que a concorrência no comércio é boa. Boa para os consumidores, isto é. Faz descer os preços e assim. Mas dentro dos computadores prejudica quem os consome. Normalmente em ABAP combate-se a concorrência ao nível dos dados, bloqueando ( euqueue ) determinadas tabelas com base na sua chave. Mas por vezes pode ser necessário algo mais violento como garantir que um programa não pode correr mais do que uma vez ao mesmo tempo. Para fazer isso pode usar-se o objecto de bloqueio ESINDX.