Tutorial de subtelas ABAP: chamar subtela em SAP

Antes de ler este tutorial, certifique-se do que รฉ um programa de diรกlogoโ€ฆ

ASSINATURA DE CHAMADA

  • Uma subtela รฉ uma tela independente exibida em uma รกrea de outra tela (โ€œprincipalโ€).
  • As subtelas permitem incorporar uma tela dentro de outra em tempo de execuรงรฃo. Vocรช pode incluir vรกrias subtelas na tela principal.
  • O termo subtela se aplica tanto ร  tela que vocรช incorpora quanto ร  รกrea da tela principal em que vocรช a coloca. Este tutorial รฉ sobre รกreas de subtela. As telas reais criadas por meio da transaรงรฃo SE51 sรฃo chamadas de telas de subtela se definidas nos atributos da tela.
  • Quando vocรช usa uma subtela, a lรณgica de fluxo da tela incorporada tambรฉm รฉ incorporada na lรณgica de fluxo da tela principal. Portanto, usar subtelas em telas รฉ como usar inclusรตes em Programas ABAP.

Para usar uma subtela, vocรช deve seguir trรชs etapas simples

  1. Definir a(s) รกrea(s) da subtela em uma tela
  2. Defina telas de subtela adequadas
  3. Inclua a tela da subtela na รกrea da subtela.

Alรฉm disso, vocรช precisa ajustar o quadro da subtela e da tela principal. Vocรช precisa nomeรก-lo no campo de nome do campo.

Alรฉm disso, vocรช tambรฉm precisa ajustar os campos da subtela para que apareรงam na tela principal. Caso a subtela seja definida para ser maior que a รกrea disponรญvel na tela principal, ficarรก visรญvel apenas a parte da subtela que cabe na รกrea disponรญvel. A รกrea รฉ sempre medida a partir do canto superior esquerdo da tela. Portanto, vocรช deve tomar o cuidado adequado ao definir รกreas de subtela e criar subtelas.

EXEMPLO

Por exemplo, aqui definimos duas รกreas de subtela na tela principal e anexamos duas subtelas diferentes ร s รกreas correspondentes. Sempre que a tela principal รฉ chamada, o PBO da tela principal รฉ chamado. Mas antes da exibiรงรฃo, tambรฉm sรฃo chamados os PBOs de cada tela anexada ร s รกreas de subtela na tela principal.

Chamar subtela em SAP

Vocรช pode incluir uma tela de subtela usando a instruรงรฃo CALL SUBSCREEN na lรณgica de fluxo da tela principal.

Para incluir uma subtela na รกrea de subtela da tela principal e chamar sua lรณgica de fluxo PBO, utilize a seguinte instruรงรฃo no evento PBO da tela principal:

PROCESS BEFORE OUTPUT.

CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.

Esta instruรงรฃo atribui ร  tela subtela um nรบmero para a รกrea da subtela chamada . Vocรช tambรฉm pode especificar o programa no qual a tela secundรกria รฉ definida (opcional). Se o programa nรฃo for especificado explicitamente, o sistema procurarรก a tela secundรกria no mesmo programa ABAP que o programa principal. Se nรฃo encontrar uma subtela correspondente, ocorrerรก um erro de tempo de execuรงรฃo. A lรณgica de fluxo PBO da tela subtela tambรฉm รฉ incluรญda no mesmo ponto. Isto pode chamar mรณdulos PBO do programa ABAP nos quais a tela da subtela estรก definida. No final da subtela PBO, os campos globais do programa sรฃo passados โ€‹โ€‹para quaisquer campos de tela com nomes idรชnticos na subtela. A lรณgica de fluxo PBO da tela de subtela pode incluir outras subtelas.

O nome da รกrea da subtela devem ser inseridos diretamente, sem aspas. Vocรช pode especificar os nomes e seja como literais ou variรกveis. Se vocรช usar variรกveis, deverรก declarar e preencher variรกveis โ€‹โ€‹com nomes idรชnticos no programa ABAP. O nรบmero da tela deve ter 4 caracteres. Se vocรช nรฃo atribuir uma tela secundรกria a uma รกrea, ela permanecerรก vazia.

Para chamar a lรณgica de fluxo PAI da tela subtela, use a seguinte instruรงรฃo na lรณgica de fluxo PAI da tela principal:

PROCESS AFTER INPUT.

CALL SUBSCREEN <area>.

Esta instruรงรฃo inclui a lรณgica de fluxo PAI da tela da subtela incluรญda na รกrea da subtela no evento PBO. Isto pode chamar mรณdulos PAI do programa ABAP nos quais a tela da subtela estรก definida. Os dados sรฃo transportados entre campos com nomes idรชnticos na tela da subtela e no programa ABAP quando o evento PAI รฉ acionado ou nas instruรงรตes FIELD correspondentes na lรณgica de fluxo PAI da tela da subtela.

Pontos para lembrar

  • Os nomes dos elementos das subtelas dentro de uma tela devem ser exclusivos
  • Vocรช nรฃo deve ter OK_CODE ou FCODE anexado ร  subtela. O OK_CODE da tela principal em si รฉ OK_CODE da subtela
  • As subtelas nรฃo podem conter nenhum mรณdulo de diรกlogo contendo SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN ou LEAVE TO SCREEN. Isso causarรก erro de tempo de execuรงรฃo.
  • Vocรช precisa chamรก-lo na lรณgica de fluxo (PBO e PAI) da tela principal.
  • CALL SUBSCREEN nรฃo รฉ permitido nas instruรงรตes CHAIN..ENDCHAIN โ€‹โ€‹e LOOP ENDLOOP
  • Nรฃo รฉ possรญvel ter um mรณdulo AT EXIT-COMMAND
  • Os campos que vocรช usa sรฃo os campos globais. Eles devem ser declarados no topo incluem
  • Se estiver usando subtelas de outro programa de diรกlogo a transferรชncia de dados nรฃo acontecerรก a menos que vocรช adicione um cรณdigo especรญfico.

Resuma esta postagem com: