Catégories
SAP

VA01 – Données supplémentaires B & Screen Exit

Ce post permet de détailler l’implémentation des Screen  Exit pour customiser l’onglet « Données supplémentaire B » de la transaction VA01 (Création Commande). Les nouvelles zones seront enregistrées dans la table VBAK.

1 – Etendre VBAK avec des champs spécifiques :

VBAK pour les données d’entête et VBAP pour les données de postes.

Créer une nouvelle structure

Créer  « structure append »

Exemple d’une nouvelle structure ZHSS030 avec 8 nouveaux champs :

Activer la nouvelle structure ZHSS030 et la table VBAK.

SE51 & ScreenPainter

PROGRAM NAME: SAPMV45A
SCREEN NUMBER : 8309

Citation :

SAPMV45A 8309 : Header data – Additional data B

SAPMV45A 8459 : Item data – Additional data B

Cliquer sur le bouton

Et

Cliquer sur Fenêtre/zones du Dictionnaire ABAP

Recherche la table VBAK pour accéder aux nouveaux champs.

Sélectionner les champs à insérer sur la zone de travail.

Cliquer sur

Dans l’onglet « Log. Exéc. » insérer le code suivant dans le PBO (PROCESS BEFORE OUTPUT) :

MODULE Z_SET_SCREEN.

Et double cliquer sur le nom du module pour créer le module dans le programme SAPMV45A.

Par exemple pour rendre les champs non éditables en mode affichage :

LOOP AT SCREEN.
IF SY-TCODE = 'VA03'.
SCREEN-INPUT = 0.
SCREEN-OUTPUT = 1.
MODIFY SCREEN.
ELSE.
IF VBAK-ZZFIELD1 IS INITIAL.
SCREEN-REQUEST = 1.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.

Dans l’onglet « Log. Exéc. » insérer le code suivant dans le PAI (PROCESS AFTERINPUT) :

MODULE Z_CHECK_FIELDS ON INPUT.

Et double cliquer sur le nom du module pour créer le module dans le programme MV45AIZZ.



IF NOT VBAK-ZZTEST1 IS INITIAL.
RAISE ERROR…
ENDIF.

Renommer l’onglet « Données supplémentaire B » dans VA01

Transaction VFBS :

Modifier Données Supplémentaires B par « Infos monétiques »

Enregistrer les modifications.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *