Patrocinado por
Patrocinado por Inetum

Um mal que veio por bem

images/thumbnail.jpg - Thumbnail

Era uma vez um cliente com um sistema produtivo com 9 servidores mais rápidos que a própria sombra. Esses 9 servidores eram geridos por 4 administradores de sistema muito bons que os mantinham sempre oleados e a fluírem à velocidade máxima. Um dia tive de desenvolver um carregamento muito complexo que criava milhões de classificações. Quando se começou a testar o programa, constatou-se que algo estava muito lento, lento demais. Na maior parte do tempo o programa estava encalhado à espera de SELECTs sequenciais à tabela INOB, que era gigante.

Downloadar e uploadar programas e afins

images/thumbnail.jpg - Thumbnail

Há palavras em inglês que o português de Portugal não se dá ao trabalho de traduzir. O verbo inglês download vira downloadar ou fazer download. A seu tempo, há-de seguir o caminho que beef seguiu até conseguir chegar a bife , transformando-se lentamente em algo tipo daunelaudar. Mas até lá… fazem-se downloads. Já que a SAP nunca se preocupou em permitir o download e upload de objectos do DDIC e do ABAP Workbench, foram sempre aparecendo umas almas caridosas com uns programas mais ou menos medíocres que o permitiam.

Dar de beber à dor

images/thumbnail.jpg - Thumbnail

No Inverno de 2006 trabalhava no projecto SAP de um enorme retalhista internacional, com centenas de supermercados espalhados por todo um país. Uma bela manhã, pelas 11h45 comecei a ver várias pessoas com ar alarmado a correr de um lado para o outro no escritório. Perguntei o que se passava e se podia ajudar e explicaram-me que não conseguiam fazer a encomenda de leite para o dia seguinte que tinha de ser feita até às 12h15 mas que não tinha nada a ver comigo, que eu não podia ajudar.

Pesquisar em tabelas internas simplórias

images/thumbnail.jpg - Thumbnail

Imagina uma tabela interna tão simplória que nem sequer tem uma estrutura de dados com campos: DATA: t_simploria TYPE STANDARD TABLE OF char30. Agora imagina que queres fazer uma pesquisa nessa tabela para saber se contém o valor ‘sumo de melão’. mas como não tem campos, como a fazes? Normalmente usarias algo tipo WITH KEY campo = valor. Mas ela não tem campos. O ABAP disponibiliza uma palavra especial que resolve este problema: TABLE_LINE.

Transacção I18N = Internacionalização

images/thumbnail.jpg - Thumbnail

Os americanos são tão bons como os tibetanos a arranjar mnemónicas e abreviaturas para tornar as coisas fáceis de decorar. Internationalization é uma palavra inglesa com 20 letras. Então, a abreviatura adoptada foi I18N, constituida pela primeira e última letras entremeadas por um 18 que representa as 18 letras do meio. Meio maluco mas giro e a verdade é que pegou. Pegou tanto que o SAP tem uma transacção chamada I18N.

É meu, só meu e de mais ninguém

images/thumbnail.jpg - Thumbnail

Imagina que estás a trabalhar num sistema partilhado por muitos outros utilizadores que não conheces. Como no IDESACCESS por exemplo. Nada impede que, por distracção ou perfídia, algum desses outros utilizadores altere ou mesmo apague os teus programas. Na SE38, nas características técnicas do programa, existe um pisco chamado “Bloqueio do editor” que, se o activares, só tu próprio passarás a poder modificá-lo. O Abapinho saúda-vos.

Was ist ABAP?

images/thumbnail.jpg - Thumbnail

Mas afinal o que é que quer dizer ABAP? Em 1970 chamaram-lhe ABAP que queria dizer “Allgemeiner Berichts-Aufbereitungs-Prozessor”, ou em português “Processador de geração de reports genéricos”. Em 1990 mudaram-lhe o nome para ABAP/4 e disseram que afinal queria dizer “Advanced Business Application Programming”, ou em português “Programação avançada para aplicações de negócio”. Em 2000 largam o /4 e tornaram a chamar-lhe só ABAP e é o que ainda lhe chamam agora.

Import/Export = Contrabando

images/thumbnail.jpg - Thumbnail

O Java, uma linguagem de programação bem pensada, ajuda o programador a organizar o seu código obrigando-o a desenvolvê-lo de forma estruturada. A sua própria filosofia potencia o pensamento estruturado e promove coerência e arrumação.

Já o ABAP… promove o caos. Está cheio de caminhos perniciosos que levam direitinho a um inferno confuso e labiríntico. E geralmente são as coisas aparentemente mais convenientes que se revelam as mais perigosas.

Uma das conveniências piores é a parelha IMPORT e EXPORT.

Mensagens entre utilizadores

images/thumbnail.jpg - Thumbnail

Muitas vezes precisamos de aceder aos dados de uma tabela através da SM30 ou a um qualquer documento e esbarramos com uma mensagem a dizer que os dados estão bloqueados por outro utilizador. Há várias hipóteses: Ter muita paciência e esperar; Ter bastante paciência, enviar uma mensagem do SAPOffice e esperar que um dia o utilizador a vá ver; Ter alguma paciência, enviar um e-mail e esperar;

Dá e receberás

images/thumbnail.jpg - Thumbnail

Vivia-se o ano do Senhor de 1998. No século XX portanto, quando ainda se trabalhava de gravata. Estava eu com 1 mês de experiência em SAP e pela primeira vez sozinho num cliente, de gravata ao pescoço, num armazém gigante, a fazer formulários de WM e coisas do género ao serviço de um funcional de WM. Certo dia fui directamente abordado por um senhor condutor de um empilhador que me disse que o código identificador na etiqueta das paletes tinha letras muito pequeninas e ele tinha muita dificuldade em lê-lo.

Procurar uma BADI no palheiro

images/thumbnail.jpg - Thumbnail

O SAP é um enorme palheiro. E os ABAPers são pessoas que trepam por esse palheiro acima e nele vasculham e escarafuncham em busca de agulhas de todo o género. Às vezes, desesperados, deitam-se a descansar e vêm uma quantidade enorme de bicharocos que vivem no palheiro fazer-lhes comichão. Para evitar que isso aconteça, o Artur Moreira propõe-nos uma série de diferentes técnicas para procurar BADIs neste grande palheiro que é o SAP.

Enfiar um browser dentro do SAPGui

images/thumbnail.jpg - Thumbnail

Quem não gosta de uma promiscuidadezita de vez em quando? Até o Abapinho. É por isso que hoje vos sugerimos que se deleitem a enfiar um browser dentro do SAPGui. E para conseguir isso basta correr este programa na SE38: SAPHTML_R3HTTP_DEMO. Pronto, ficam a saber. E como há clientes para tudo, quem sabe não se encontre aí pelo mundo algum cliente que invente um problema para esta solução. O Abapinho saúda-vos.

ZTETRIS

images/thumbnail.jpg - Thumbnail

O Abapinho aconselha todos os ABAPers a, pelo sim, pelo não, instalarem o programa ZTETRIS no seu ambiente de desenvolvimento. A versão do Tetris para ABAP é da autoria de Sergey Shumakov. Quando te fartares de jogar podes sempre investigar como é que o programa faz para ir várias vezes ao servidor sem intervenção do utilizador. O Abapinho saúda-vos.

ALV Grid Control - Manuais de referência

images/thumbnail.jpg - Thumbnail

Os ALVs são poderosos. Mas esse poder vem à custa de alguma complexidade. Além disso, como quase tudo em SAP, funcionam de forma obscura. Aqui ficam dois manuais de referência em PDF. São muito parecidos mas suficientemente diferentes para referir os dois. Este chama-se BCSRVALV, é da SAP e data de 2001. No site da SAP encontra-se aqui. E aqui também se aprende sobre isto. Já este chama-se ALV_Grid_Control, é de 2004 e está assinado por um senhor chamado Serdar ŞİMŞEKLER que diz ser turco.

Transportar conteúdo de uma tabela

images/thumbnail.jpg - Thumbnail

Fazes assim: Vais à transacção SE01; Crias uma nova ordem de workbench; Editas a lista de objectos; Adicionas-lhe o objecto R3TR-TABU-[nome_tabela]; Clicas na chave que aparece na coluna a seguir; Metes um asterisco * na primeira linha; Gravas a ordem de transporte; Pedes a quem de direito para a passar para onde te aprouver;