Supported by
Supported by Inetum

<!--:pt-->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&hellip; 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.

<!--:pt-->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;

<!--:pt-->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.

<!--:pt-->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.

<!--:pt-->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.

<!--:pt-->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.

<!--:pt-->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.

<!--:pt-->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;

<!--:pt-->Glossário SAP<!--:-->

images/thumbnail.jpg - Thumbnail
É frequente em SAP cruzarmo-nos com um conceito desconhecido. Às vezes esqueço-me de que há ferramentas disponíveis muito fáceis de consultar. E o glossário SAP é um exemplo disso. Pode ser acedido de várias formas: No próprio SAP: através da transacção STERM; Online: num site da SAP: https://help.sap.com/saphelp_glossary/en/; No nosso computador: usando o programa ABAP GLOS_DOWNLOAD_HTML para fazer download de todo o seu conteúdo.

<!--:pt-->Evernote - No anotar é que está o ganho<!--:-->

images/thumbnail.jpg - Thumbnail
Il faut cultiver notre jardin - Voltaire No SAP fala-se muito de experiência. Fulano tem muita experiência, sicrano tem pouca experiência. Tenta-se com isso medir a capacidade que alguém tem de usar o seu passado para lidar com o seu futuro. Mas nem sempre ter experimentado uma coisa é sinónimo de ganhar experiência com ela. O exemplo paradigmático ao alcance de todos é o amor: quantos desgraçados, por muitas experiências desgraçadas que tenham tido, se continuam a desgraçar-se no amor! O SAP não é o amor. Ainda assim não nos faltarão exemplos de consultores que no CV descrevem muitas experiências e na prática se revelam uns grandes inexperientes. A Inteligência terá certamente muito peso nessa capacidade de sublimar as experiências, de as conservar, de fazer delas Compota de Experiência. Mas, pelo menos no que toca ao mirabolante mundo do SAP, quem tem também muito a dizer é a senhora Memória. Ou melhor dizendo, a falta dela. O mundo do SAP é horizontal e vasto. Para onde quer que se olhe é a perder de vista. E embora seja um mundo bastante populado e onde se viaja muito, não houve até hoje, que eu saiba, cartógrafos de jeito. Os mapas que dele se fizeram são parcos, pobres, distorcidos e normalmente ainda o julgam plano quando toda a gente já sabe há muito tempo que ele é curvo. Há que cartografar o nosso mapa.

<!--:pt-->Onde é que eu vi aquilo?<!--:-->


A pesquisa de objectos em ABAP e por todo o SAP é normalmente feita de duas formas: listando objectos de um tipo através de search helps ou procurando objectos em que um determinado objecto é usado, através da opção where used. Só que às vezes o que buscamos não se trata de um objecto mas sim de uma frase qualquer ou mesmo um comentário que sabemos existir no código mas não fazemos ideia de onde.

<!--:pt-->A técnica das Matrioskas<!--:-->


É sabido que quando é necessário fazer uma pequena alteração a uma função standard para a qual não há nenhum tipo de user-exit, o mais normal é fazer uma cópia dela para uma função Z e lá proceder à alteração necessária. No entanto, quando esta alteração pode ser feita no início ou no final do programa, há uma forma mais elegante de conseguir o mesmo resultado: a técnica das Matrioskas. Criar uma função Z com os mesmos parâmetros que lá dentro invoca a função standard e que, além disso, antes ou depois de a invocar, tem o código para implementar a alteração necessária.

<!--:pt-->O maravilhoso mundo do Application Log<!--:-->


Uma boa parte dos reports, interfaces ou jobs, têm de produzir algum tipo de relatório. É normal ver isso feito recorrendo ao comando WRITE. Ora nos dias que correm, usar o comando WRITE para isto é como recorrer a um par de pedras para acender uma fogueira. Afinal, porque não usar o Application Log que é muito mais simples e prático e standard e é só vantagens? O Application Log é um sistema standard do SAP para guardar logs aplicacionais e é usado por várias transacções standard. Ao utilizá-lo podemos simplificar e uniformizar os logs dos nossos programas. Vamos aprender aqui como é simples usá-lo nos nossos desenvolvimentos.

<!--:pt-->Macros - Velocidade de ponta<!--:-->


Normalmente quando há um pedaço de código que pretendemos reutilizar várias vezes, transformamo-lo numa sub-rotina que pode depois ser invocada repetidamente. Embora a SAP não saiba estruturar o seu próprio código, ainda assim, o ABAP, coitadinho, permite-o. E até disponibiliza várias alternativas para modularizar o código. Eu conto quatro alternativas que listo aqui, da mais rígida para a mais flácida: METHOD, FUNCTION, FORM, DEFINE. Se os 3 primeiros são já familiar de todos, o último - DEFINE - quase ninguém usa. O DEFINE permite definir macros em ABAP. E o que são macros? São sub-rotinas aparentes. Aparentes porquê?

<!--:pt-->Evitar mensagens dinâmicas<!--:-->


Qual é, digam lá, a melhor coisinha que o ABAP tem? É, digo eu, poder fazer where used em cima de tudo o que mexe. E no entanto, esta maravilhosa funcionalidade só funciona maravilhosamente quando as coisas não são invocadas dinamicamente. Eu uso o where used amiúde para descobrir onde uma determinada mensagem está a ser usada. Ora não é nada incomum encontrar chamadas dinâmicas a mensagens, principalmente em casos onde as mensagens não são enviadas directamente para o utilizador mas sim, por exemplo, para o Application Log.