Tutorial de subtelas ABAP: Chamar subtela no SAP

Índice:

Anonim

Antes de ler este tutorial, certifique-se do que é um programa de diálogo ...

CALL SUBSCREEN

  • Uma subtela é uma tela independente exibida em uma área de outra tela ("principal").
  • As subtelas permitem incorporar uma tela em outra durante a execução. Você pode incluir várias subtelas na tela principal.
  • O termo subtela se aplica à tela que você incorpora e à á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 à 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. Defina a (s) área (s) da subtela em uma tela
  2. Definir telas de subtela adequadas
  3. Inclui 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 na subtela para que eles apareçam na tela principal. Caso a subtela seja definida para ser maior do que a área disponível na tela principal, apenas ficará visível a parte da subtela que se encaixa na área disponível. A área é sempre medida a partir do canto superior esquerdo da tela. Portanto, você deve tomar cuidado adequado ao definir áreas de subtelas 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, os PBOs de cada tela anexada com áreas de subtela na tela principal também são chamados.

Você pode incluir uma tela de subtela usando a instrução CALL SUBSCREEN na lógica de fluxo da tela principal.
Para incluir uma tela de subtela na área de subtela da tela principal e chamar sua lógica de fluxo PBO, use a seguinte instrução no evento PBO da tela principal:

PROCESSO ANTES DA SAÍDA.CALL SUBSCREEN <área> INCLUINDO [
] .

Esta instrução atribui a tela da subtela com o número à área da subtela chamada <área>. Você também pode especificar o programa no qual a tela de subtela é definida (opcional). Se você não especificar o programa explicitamente, o sistema procurará a tela de subtela no mesmo programa ABAP do programa principal. Se não encontrar uma tela de subtela correspondente, ocorre um erro de tempo de execução. A lógica de fluxo PBO da tela de subtela também está incluída no mesmo ponto. Isso pode chamar os módulos PBO do programa ABAP nos quais a tela de subtela é definida. No final do PBO da subtela, os campos globais do programa são passados ​​para quaisquer campos de tela com nomes idênticos na tela da subtela. A lógica de fluxo PBO da tela de subtela pode incluir outras subtelas.

O nome da área da subtela deve ser inserido diretamente, sem as vírgulas invertidas. Você pode especificar os nomes e como literais ou variáveis. Se você usar variáveis, deve 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 subtela a uma área, ela permanecerá vazia.
Para chamar a lógica de fluxo PAI da tela de subtela, use a seguinte instrução na lógica de fluxo PAI da tela principal:

PROCESSO APÓS ENTRADA.CALL SUBSCREEN <área>.

Esta instrução inclui a lógica de fluxo PAI da tela da subtela incluída na área da subtela <área> no evento PBO. Isso pode chamar os módulos PAI do programa ABAP nos quais a tela de subtela é definida. Os dados são transportados entre campos com nomes idênticos na tela da subtela e o 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 em 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 ter módulos de diálogo contendo SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN ou LEAVE TO SCREEN. Isso causará um 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 pode 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.