Category > Tips & tricks
Supported by
Supported by Inetum

LOOP FROM INDEX

images/thumbnail.jpg - Thumbnail

It’s very easy to get tied up in knots where performance is concerned when you’re working with internal tables – especially when they’re getting really big. In fact these problems often only arise after a few months, when the tables tend to grow as time goes by. For example, when you’re looping two tables, one of headers and another of entries, do you do this? LOOP AT itab1 ASSIGNING <fs1>. LOOP AT itab2 ASSGNING <fs2> WHERE field1 = <fs1>-field1.

Progress indicator

images/thumbnail.jpg - Thumbnail

You know those progress bars that show how long it will take for a process to end? The ones that sometimes go back to the beginning when they reach the end and leave you frustrated and confused and wondering what use they are anyway? Here’s how you can use them in an ABAP program. DATA: lv_texto TYPE char40, lv_valor type i. DO 10 TIMES. WAIT UP TO 1 SECONDS. CLEAR lv_texto.

<!--:pt-->Executa um comando no teu computador<!--:-->

images/thumbnail.jpg - Thumbnail

Imagina que queres executar um programa no teu PC a partir de um programa ABAP. Não sei porque carga de água quererás tu fazer isto mas ok, se queres mesmo fazer, é assim: DATA: i_returncode TYPE i. CALL FUNCTION 'GUI_EXEC' EXPORTING command = 'Notepad.exe' parameter = 'eu_sou_um_texto.txt' IMPORTING returncode = i_returncode. É provável que dê para fazer coisas boas com isto. Mas está à vista a grande javardice que se pode fazer por isso pensa bem antes de começares para aí a escangalhar os computadores dos utilizadores todos.

SAT – The new execution analysis tool

images/thumbnail.jpg - Thumbnail

Since I was small I have been using the SE30 transaction for two different things: To analyze a (normally standard) program I don’t know in order to find out what functions it uses, what BADIs it offers, etc; To analyze a program of mine to search for performance problems. The simple truth is that the SE30 transaction is a total mess. It’s extremely limited and inflexible and it’s useless for any more complex analysis.

<!--:pt-->As estruturas PRE-a-porter<!--:-->

images/thumbnail.jpg - Thumbnail

Quantas vezes não é necessária uma pequena estrutura para guardar, por exemplo, uma lista que relacione materiais e centros. Mas perder tempo a inventar a roda é sempre de evitar. No reino do MM há uma pequena família de estruturas que uso amiúde: são elas as PRE*, uma série de estruturas que vai desde a PRE01 à PRE50, com uns saltos pelo meio. Embora sejam, na sua maioria, específicas demais para servirem algum propósito, há algumas úteis.

<!--:pt-->A Ressurreição de um programa<!--:-->

images/thumbnail.jpg - Thumbnail

Batendo impetuoso com seus braços no peito, o famoso guerreiro gritava desesperado: “Oh meu Zeus! Apaguei um grande programa , um programa precioso, feito de bronze, forjado por vós deuses no próprio Olimpo. Que será de mim quando isto for descoberto! Oh, ignomínia! Oh, funesto infortúnio! Zeus pai, não te enfureças com tal revés, Se és mesmo meu pai, acode-me ao invés.” Assim falou; e Zeus compadeceu-se dele que chorava, garantindo que seu programa se salvaria e não pereceria.

<!--:pt-->Imprimir para PDF local<!--:-->

images/thumbnail.jpg - Thumbnail

Receita rápida: Manda-se imprimir o que se quer, dizendo ao SAP para guardar a ordem de impressão no spool e não a imprimir imediatamente. Reserva-se o número da ordem de impressão num recipiente à parte. A seguir, corre-se o programa RSTXPDFT4 , junta-se-lhe o número da ordem de impressão, mistura-se bem e executa-se o dito. Por fim escolhe-se onde, no computador local, se quer desenformar o ficheiro PDF com o conteúdo da ordem de impressão.

<!--:pt-->Depuração telepática<!--:-->

images/thumbnail.jpg - Thumbnail

Imagine o seguinte cenário: um utilizador (ou utilizadora) está sentado no escritório dele, a correr uma transacção ou não sei o quê. Tem um problema e chama um programador (ou programadora) para o (ou a) ajudar a entender o que se passa. Normalmente o programador (ou programadora) teria de se deslocar lá, à sala do senhor utilizador (ou senhora utilizadora) e das duas uma: fazer debug no computador dele (ou dela) ou aprender como recriar o problema e depois fazer debug no seu computador.

<!--:pt-->SE37.com<!--:-->

images/thumbnail.jpg - Thumbnail

Neste site pode-se consultar documentação de módulos de função ABAP: www.se37.com Basta escolher continue as guest pois a inscrição só é necessária para edição ou adição de conteúdos. E depois é só introduzir um grupo de funções ou um módulo de função para ver a sua documentação. Actualização: já não existe. O Abapinho saúda-vos.

<!--:pt-->Pede ajuda aos PDFs da SAP<!--:-->

images/thumbnail.jpg - Thumbnail

A SAP disponibiliza uma série de documentos PDF que contém ajuda e informação preciosa nas mais variadas áreas. Estes PDFs estão dispersos pelos vários sites da SAP, mas alguém no site Easy Service Marketplace compilou todos numa conveniente lista: www.easymarketplace.de/online-pdfs.php Obriado Sérgio Fraga por este outro link com mais uma série de PDFs: sapignite.com/download-sap-pdf-material-abap/ Espero que vos ajude! Actualização: Isto parece já não existir. O Abapinho saúda-vos.

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

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

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

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

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