Tutorial de subpantallas ABAP: subpantalla de llamada en SAP

Tabla de contenido:

Anonim

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

LLAMAR SUBSCREEN

  • 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 inserta como al área de la pantalla principal en la que la coloca. Este tutorial trata sobre las áreas de la subpantalla. Las pantallas reales creadas a través de la transacción SE51 se denominan pantallas de subpantallas si se definen en los atributos de pantalla.
  • Cuando utiliza una subpantalla, la lógica de flujo de la pantalla incrustada también está incrustada en la lógica de flujo de la pantalla principal. Por lo tanto, el uso de subpantallas en pantallas es como utilizar inclusiones en programas ABAP.

Para utilizar una subpantalla, debe seguir tres sencillos pasos

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

Además, debe ajustar el marco de la pantalla secundaria y la pantalla principal. Debe nombrarlo en el campo de nombre de campo.
Además, también debe ajustar los campos dentro de la subpantalla para que aparezcan en la pantalla principal. En caso de que se defina que la subpantalla es 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 subpantallas y crear subpantallas.
EJEMPLO

Por ejemplo, aquí hemos definido dos áreas de subpantallas 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 subpantallas en la pantalla principal.

Puede incluir una pantalla de subpantalla utilizando la instrucción CALL SUBSCREEN en la lógica de flujo de la pantalla principal.
Para incluir una pantalla de subpantalla en el área de subpantalla de la pantalla principal y llamar a su lógica de flujo PBO, utilice la siguiente declaración en el evento PBO de la pantalla principal:

PROCESO ANTES DE LA SALIDA.LLAME A SUBSCREEN  INCLUYENDO [
] .

Esta declaración asigna la pantalla de la subpantalla con el número al área de la subpantalla llamada . También puede especificar el programa en el que se define la pantalla de la subpantalla (opcional). Si no especifica el programa explícitamente, el sistema busca la pantalla de la subpantalla 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 de PBO de la pantalla de la subpantalla también se incluye en el mismo punto. Esto puede llamar a los módulos PBO del programa ABAP en el que se define la pantalla de la subpantalla. Al final del PBO de la subpantalla, los campos globales del programa se pasan a cualquier campo de pantalla con el mismo nombre en la pantalla de la subpantalla. La lógica de flujo de PBO de la pantalla de la subpantalla puede incluir en sí misma otras subpantallas.

El nombre del área de la subpantalla debe ingresarse directamente sin comillas. Puede especificar los nombres y como literales o variables. Si usa 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 de subpantalla a un área, permanece vacía.
Para llamar a la lógica de flujo de PAI de la pantalla de la subpantalla, utilice la siguiente declaración en la lógica de flujo de PAI de la pantalla principal:

PROCESO DESPUÉS DE LA ENTRADA.LLAME A SUBSCREEN .

Esta declaración incluye la lógica de flujo de PAI de la pantalla de subpantalla incluida en el área de subpantalla en el evento PBO. Esto puede llamar a los módulos PAI del programa ABAP en el que se define la pantalla de la subpantalla. Los datos se transportan entre campos con nombres idénticos en la pantalla de la subpantalla y el programa ABAP, ya sea cuando se desencadena el evento PAI o en las declaraciones de CAMPO correspondientes en la lógica de flujo de PAI de la pantalla de la subpantalla.
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 con la pantalla secundaria. El OK_CODE de la pantalla principal en sí es OK_CODE de la subpantalla
  • Las subpantallas no pueden tener ningún módulo de diálogo que contenga SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN o LEAVE TO SCREEN. 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 las sentencias CHAIN… ENDCHAIN ​​y LOOP ENDLOOP
  • No se puede tener un módulo AT EXIT-COMMAND
  • Los campos que usa son los campos globales. Deben declararse en la parte superior incluyen
  • Si usa subpantallas de otro programa de diálogo, la transferencia de datos no ocurrirá a menos que agregue un código específico.