"
Apoiado por:

Cria variantes de teste em funções a partir do debugger

maquina_lavar_roupa

Imagina que estás a fazer debug de uma transacção e entras numa função e encontras algo interessante. Tão interessante que tens de lhe fazer debug várias vezes. A via convencional é tornar a iniciar o debug da transacção desde o início. Que seca.

Mas há uma via mais directa. Quando estás a fazer debug de uma função podes, directamente a partir do debugger, criar dados de teste para essa função com os valores com que a função tiver sido chamada nessa instância. É assim:

Ler o resto do artigo »

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

mac_mail_icon

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.

Ler o resto do artigo »

O histórico do SAPGui não funciona ainda que activo?

torre-belem

Já te aconteceu o SAPGui não guardar um histórico dos valores que vais introduzindo nos vários campos ainda que, nas configurações, a opção de Histórico esteja activa?

Ler o resto do artigo »

A SE80 tem favoritos

Marcador

Na transacção SE80 há de tudo. Parece aquelas mercearias de aldeia atafulhadas de tralha onde se compra pasta de dentes, pão, sandálias, perfume e arroz a granel. Eu gosto dessas mercearias. Mas para lá ir é preciso saber ao que se vai, senão anda-se ao tio ao tio.

Mas isso é nesses mercearias, porque na SE80… há favoritos.

Pois é. Só soube há uns dias que a transacção SE80 tem a capacidade de guardar favoritos. É um botãozinho logo ali à mão. Vejam a foto:

Favoritos na SE80

De cada vez que se visita um objecto que se acredita vir a visitar mais vezes no futuro, é só inseri-lo na lista de favoritos e assim nunca mais se tem de andar à procura dele.

Obrigado Nuno Morais pela dica.

E obrigado a ~suchitra~ pela foto.

O Abapinho saúda-vos.

Se um desconhecido te oferecer valores, isso é Input

Interrogação

Num relatório, os valores são normalmente pedidos ao utilizador no ecrã de selecção inicial, antes da execução do programa. Mas e se quiseres pedir-lhe mais alguns valores, interactivamente, a meio da execução do programa?

Uma forma de o fazer é criar um ecrã com os campos desejados e depois invocá-lo com CALL SCREEN. Mas desenhar o ecrã e definir o PAI e o PBO é uma valente maçada.

Outra solução é recorrer às funções POPUP_GET_VALUES ou POPUP_GET_VALUES_DB_CHECKED. São bastante versáteis mas ainda assim algo chatas de utilizar e com algumas limitações.

Mas há uma forma mais simples de o fazer. É através do CALL SELECTION-SCREEN. Passo a explicar:

Primeiro há que definir o ecrã de selecção. A sua definição é praticamente igual à do ecrã de selecção inicial de um relatório:


TABLES: t001.

SELECTION-SCREEN BEGIN OF SCREEN 3000.
PARAMETERS: p_uname TYPE syuname.
SELECT-OPTIONS: p_bukrs FOR t001-bukrs.
SELECTION-SCREEN END OF SCREEN 3000.

Depois, onde quer que te apeteça invocar o ecrã é só… invocares o ecrã:


START-OF-SELECTION.

* faz não sei quê antes

  CALL SELECTION-SCREEN 3000 STARTING AT 5 5.

* e mais não sei quê depois

E dá nisto:

CALL SELECTION-SCREEN

Se meteres o STARTING AT ele vai criar uma janela de diálogo modal. Se não meteres nada, o ecrã ocupará a janela toda. O ecrã de selecção pode ser tão complicado quanto quiseres, podendo incluir abas e tudo o mais. Além disso, porque para o SAP ele não passa de um ecrã de selecção como os outros, poderás gravar variantes e tudo.

Nota que esta abordagem pode também ser usada em transacções, sendo a única desvantagem o facto de exigir F8 em vez de ENTER para submeter os valores.

Obrigado a cristinacosta pela foto.

O Abapinho saúda-vos.

Ecrãs de selecção com abas

abas

Os ecrãs de selecção dos programas ABAP têm várias funcionalidades que, embora sofisticadas e simples de usar, são geralmente ignoradas. Aqui mostrar-te-ei quão simples é criar abas para melhor organizar os parâmetros de um programa. Desta vez, excepcionalmente, vou poupar-te à verborreia. É uma aula prática.
Ler o resto do artigo »

Debug em janelas de diálogo modais

atirar-para-cima

Há determinados momentos em que não é possível fazer /H para iniciar o debugger. O caso mais comum é durante uma janela de diálogo modal (aquilo que os estrangeiros chamam de popup). Mas há uma forma simples, ainda que rocambolesca, para o conseguires:

Ler o resto do artigo »

O que diz uma mensagem?

postit

Queres obter o texto de uma mensagem da qual só sabes o ID e o número e não sabes como? Aprende aqui:


DATA texto TYPE string.
MESSAGE ID '00' TYPE 'E' NUMBER '163' WITH '123' INTO texto.

É só isto. Agora do lado de dentro da variável texto encontras o seguinte texto:

“O mandante 123 não existe no sistema”

Obrigado a Peteris B pela foto.

O Abapinho saúda-vos.

Sê preguiçoso quando escreves em ABAPês

praia_bali

Para tentar determinar quais as profissões com gente mais preguiçosa fiz as seguintes pesquisas no Google:

Profissão Resultados
“médico preguiçoso” 2.140.000
“advogado preguiçoso” 1.430.000
“gestor preguiçoso” 1.020.000
“engenheiro preguiçoso” 647.000
“político preguiçoso” 602.000
“economista preguiçoso” 284.000
“pedreiro preguiçoso” 91.200

Como se pode concluir inequivocamente, os engenheiros não são suficientemente preguiçosos pois são ultrapassados pelos advogados e pelos médicos. Isto tem de mudar. E esta dica vai ajudar. Mas não sem deixar clara a seguinte diferença: preguiça não é ergasiofobia. Falo aqui da preguiça nobre, a de quem gosta de fazer as coisas mas procura fazê-las com o mínimo esforço possível. Já os preguiçosos mandriões, esses não são para aqui chamados.

O SAP, que lá vai evoluindo lentamente, lançou já há uns anos um editor novo que vem cheio de capacidades muitas das quais, ainda que convenientes, são pouco aproveitadas. Uma delas chama-se “Modelos de código” que passo a apresentar:

Ler o resto do artigo »

ALV com múltipla escolha num ecrã de diálogo modal

pipocas

Sabes apresentar, numa janela de diálogo, uma ALV com uma lista de registos permitindo escolha múltipla? Eu não sabia e agora já sei. Vou explicar como é.
Ler o resto do artigo »


Acerca do Abapinho
O Abapinho é suportado pelo WordPress
Artigos (RSS) e Comentários (RSS).