Tutorial de subpantallas ABAP: Subpantalla de llamadas en SAP

Antes de leer este tutorial, asegúrese de saber qué es un programa de diálogo...

SUBPANTALLA DE LLAMADA

  • Una subpantalla es una pantalla independiente que se muestra en un área de otra pantalla (“principal”).
  • Las subpantallas le permiten incrustar una pantalla dentro de otra en tiempo de ejecución. Puede incluir varias subpantallas en la pantalla principal.
  • El término subpantalla se aplica tanto a la pantalla que insertas como al área de la pantalla principal en la que la colocas. Este tutorial trata sobre áreas de subpantalla. Las pantallas reales creadas a través de la transacción SE51 se denominan pantallas secundarias si se definen en los atributos de la pantalla.
  • Cuando usa una subpantalla, la lógica de flujo de la pantalla integrada también está integrada en la lógica de flujo de la pantalla principal. Por lo tanto, usar subpantallas en las pantallas es como usar inclusiones en programas ABAP.

Para utilizar una subpantalla, debes seguir tres sencillos pasos

  1. Definir las áreas de subpantalla en una pantalla
  2. Definir pantallas secundarias adecuadas
  3. Incluya la pantalla secundaria en el área de la pantalla secundaria.

Además, debe ajustar el marco de la pantalla secundaria y la pantalla principal. Debe nombrarlo en el campo de nombre del campo.

Además, también debe ajustar los campos dentro de la pantalla secundaria para que aparezcan en la pantalla principal. En caso de que la subpantalla esté definida para ser más grande que el área disponible en la pantalla principal, solo será visible la parte de la subpantalla que encaje en el área disponible. El área siempre se mide desde la esquina superior izquierda de la pantalla. Por lo tanto, debe tener el cuidado adecuado al definir áreas de subpantalla y crear subpantallas.

EJEMPLO

Por ejemplo, aquí hemos definido dos áreas de subpantalla en la pantalla principal y hemos adjuntado dos subpantallas diferentes a las áreas correspondientes. Siempre que se llama a la pantalla principal, se llama al PBO de la pantalla principal. Pero antes de la visualización, también se llaman los PBO de cada pantalla adjunta con áreas de subpantalla en la pantalla principal.

Subpantalla de llamada en SAP

Puede incluir una pantalla secundaria utilizando la instrucción CALL SUBSCREEN en la lógica de flujo de la pantalla principal.

Para incluir una pantalla secundaria en el área de pantalla secundaria de la pantalla principal y llamar a su lógica de flujo PBO, use lo siguientewing declaración en el evento PBO de la pantalla principal:

PROCESS BEFORE OUTPUT.

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

Esta declaración asigna la pantalla secundaria con el número al área de la subpantalla llamada . También puede especificar el programa en el que se define la pantalla secundaria (opcional). Si no especifica el programa explícitamente, el sistema busca la pantalla secundaria en el mismo programa ABAP que el programa principal. Si no encuentra una pantalla secundaria correspondiente, se produce un error de tiempo de ejecución. La lógica de flujo PBO de la pantalla secundaria también se incluye en el mismo punto. Esto puede llamar a los módulos PBO del programa ABAP en los que se define la pantalla secundaria. Al final de la pantalla secundaria PBO, los campos globales del programa se pasan a cualquier campo de pantalla con el mismo nombre en la pantalla secundaria. La lógica de flujo PBO de la pantalla secundaria puede incluir por sí misma otras pantallas secundarias.

El nombre del área de la subpantalla debe ingresarse directamente sin comillas. Puede especificar los nombres y como literales o variables. Si utiliza variables, debe declarar y completar variables con nombres idénticos en el programa ABAP. El número de pantalla debe tener 4 caracteres. Si no asigna una pantalla secundaria a un área, ésta permanece vacía.

Para llamar a la lógica de flujo PAI de la pantalla secundaria, use lo siguientewing declaración en la lógica de flujo PAI de la pantalla principal:

PROCESS AFTER INPUT.

CALL SUBSCREEN <area>.

Esta declaración incluye la lógica de flujo PAI de la pantalla secundaria incluida en el área de pantalla secundaria en el evento PBO. Este puede llamar a los módulos PAI del programa ABAP en los que se define la pantalla secundaria. Los datos se transportan entre campos con nombres idénticos en la pantalla secundaria y el programa ABAP cuando se activa el evento PAI o en las declaraciones de CAMPO correspondientes en la lógica de flujo PAI de la pantalla secundaria.

Puntos para recordar

  • Los nombres de los elementos de las subpantallas dentro de una pantalla deben ser únicos.
  • No debe tener OK_CODE o FCODE adjuntos a la pantalla secundaria. El OK_CODE de la pantalla principal en sí es el OK_CODE de la pantalla secundaria
  • Las subpantallas no pueden tener ningún módulo de diálogo que contenga ESTABLECER BARRA DE TÍTULO, ESTABLECER ESTADO PF, ESTABLECER PANTALLA, SALIR PANTALLA o SALIR EN PANTALLA. Esto provocará un error de tiempo de ejecución.
  • Debe llamarlo en la lógica de flujo (tanto PBO como PAI) de la pantalla principal.
  • CALL SUBSCREEN no está permitido en declaraciones CHAIN..ENDCHAIN ​​y LOOP ENDLOOP
  • No se puede tener un módulo AT EXIT-COMMAND
  • Los campos que utiliza son los campos globales. Deben declararse en la parte superior.
  • Si usa subpantallas de otra programa de diálogo la transferencia de datos no se realizará a menos que agregue un código específico.