Tutoriel sur les sous-écrans ABAP : appeler le sous-écran dans SAP
Avant de lire ce didacticiel, assurez-vous de ce qu'est un programme de dialogue…
SOUS-ÉCRAN D'APPEL
- Un sous-écran est un écran indépendant qui s'affiche dans une zone d'un autre écran (« principal »).
- Les sous-écrans vous permettent d'intégrer un écran dans un autre au moment de l'exécution. Vous pouvez inclure plusieurs sous-écrans sur l'écran principal.
- Le terme sous-écran s'applique à la fois à l'écran que vous intégrez et à la zone de l'écran principal dans laquelle vous le placez. Ce didacticiel concerne les zones de sous-écran. Les écrans réels créés via la transaction SE51 sont appelés écrans de sous-écran s'ils sont définis dans les attributs d'écran.
- Lorsque vous utilisez un sous-écran, la logique de flux de l'écran intégré est également intégrée dans la logique de flux de l'écran principal. Par conséquent, utiliser des sous-écrans sur des écrans revient à utiliser des inclusions dans Programmes ABAP.
Pour utiliser un sous-écran, vous devez suivre trois étapes simples
- Définir la ou les zones de sous-écran sur un écran
- Définir des écrans de sous-écran appropriés
- Incluez l’écran du sous-écran dans la zone du sous-écran.
En outre, vous devez ajuster le cadre du sous-écran et de l'écran principal. Vous devez le nommer dans le champ Nom du champ.
De plus, vous devez également ajuster les champs du sous-écran pour les faire apparaître sur l'écran principal. Dans le cas où le sous-écran est défini comme étant plus grand que la zone disponible dans l'écran principal, seule la partie du sous-écran qui correspond à la zone disponible sera visible. La zone est toujours mesurée à partir du coin supérieur gauche de l'écran. Par conséquent, vous devez faire preuve de prudence lors de la définition des zones de sous-écran et de la création de sous-écrans.
EXEMPLE
Par exemple, ici, nous avons défini deux zones de sous-écran sur l'écran principal et avons attaché deux sous-écrans différents aux zones correspondantes. Chaque fois que l'écran principal est appelé, le PBO de l'écran principal est appelé. Mais avant l'affichage, les PBO de chaque écran attachés aux zones de sous-écran sur l'écran principal sont également appelés.
Vous pouvez inclure un écran de sous-écran à l'aide de l'instruction CALL SUBSCREEN dans la logique de flux de l'écran principal.
Pour inclure un écran de sous-écran dans la zone de sous-écran de l'écran principal et appeler sa logique de flux PBO, utilisez l'instruction suivante dans l'événement PBO de l'écran principal :
PROCESS BEFORE OUTPUT. CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
Cette instruction attribue à l'écran secondaire un numéro à la zone de sous-écran appelée . Vous pouvez également spécifier le programme dans lequel l'écran du sous-écran est défini (facultatif). Si vous ne spécifiez pas explicitement le programme, le système recherche l'écran secondaire dans le même programme ABAP que le programme principal. S'il ne trouve pas d'écran de sous-écran correspondant, une erreur d'exécution se produit. La logique de flux PBO de l'écran secondaire est également incluse au même endroit. Celui-ci peut appeler les modules PBO du programme ABAP dans lequel l'écran sous-écran est défini. À la fin du sous-écran PBO, les champs globaux du programme sont transmis à tous les champs d'écran portant le même nom dans l'écran sous-écran. La logique de flux PBO de l'écran secondaire peut elle-même inclure d'autres sous-écrans.
Le nom de la zone de sous-écran doivent être saisis directement sans virgules. Vous pouvez spécifier les noms et soit sous forme de littéraux, soit de variables. Si vous utilisez des variables, vous devez déclarer et remplir des variables portant le même nom dans le programme ABAP. Le numéro d'écran doit comporter 4 caractères. Si vous n'attribuez pas de sous-écran à une zone, celle-ci reste vide.
Pour appeler la logique de flux PAI de l'écran secondaire, utilisez l'instruction suivante dans la logique de flux PAI de l'écran principal :
PROCESS AFTER INPUT. CALL SUBSCREEN <area>.
Cette instruction inclut la logique de flux PAI de l'écran de sous-écran inclus dans la zone de sous-écran lors de l'événement du DPB. Celui-ci peut faire appel aux modules PAI du programme ABAP dans lequel le sous-écran est défini. Les données sont transportées entre des champs portant le même nom dans l'écran secondaire et le programme ABAP, soit lorsque l'événement PAI est déclenché, soit au niveau des instructions FIELD correspondantes dans la logique de flux PAI de l'écran secondaire.
Points à retenir
- Les noms des éléments des sous-écrans au sein d'un écran doivent être uniques
- Vous ne devriez pas avoir OK_CODE ou FCODE attaché au sous-écran. Le OK_CODE de l'écran principal lui-même est OK_CODE du sous-écran
- Les sous-écrans ne peuvent pas contenir de modules de dialogue contenant SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN ou LEAVE TO SCREEN. Cela provoquera une erreur d’exécution.
- Vous devez l'appeler dans la logique de flux (PBO et PAI) de l'écran principal.
- CALL SUBSCREEN n'est pas autorisé dans les instructions CHAIN..ENDCHAIN et LOOP ENDLOOP
- Impossible d'avoir un module AT EXIT-COMMAND
- Les champs que vous utilisez sont les champs globaux. Ils doivent être déclarés en haut include
- Si vous utilisez des sous-écrans d'un autre programme de dialogue le transfert de données n'aura lieu que si vous ajoutez un code spécifique.