Tutorial de subpantallas ABAP: llamada a subpantalla 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
- Definir las รกreas de subpantalla en una pantalla
- Definir pantallas secundarias adecuadas
- 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.
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 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:
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, utilice la siguiente 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.

