PROGRAMMATION ABAP EVOLUEE

Dans SE38, créer un programme Y_HELLOSCREEN2

(bien commencer le nom du programme par Y, c'est important :

les programmes commencant par S_ sont considérés comme interne à SAP)

Puis choisir un programme exécutable avant de sauvegarder (save)

Et choisir un Local Object (ce qui évite de saisir une Development class)

Et on arrive à l'édition du programme (saisir les lignes écrites comme sur l'écran en photo)

Quand on double-clique sur le chiffre 100, SAP nous propose de créer l'écran (screen)

Et on sauvegarde au passage le programme qu'on était en train de créer.

On fait une boucle en laissant le Next screen à 100 : ça veut dire que le prochain écran sera l'écran 100 qui est notre écran : on a donc une boucle infinie sur notre écran.Puis on clique sur l'onglet Flow logic.

en cliquant sur l'onglet flow logic, on arrive sur l'interface ci contre.

et on arrive à la notion de PBO (Process Before Output : instructions déclenchées au chargement de la page)

et de PAI (Process After Input : instructions déclenchées après des saisies faites par l'utilisateur)

Et on charge des modules à partir de ces 2 process (on enlève les étoiles pour charger les modules proposés par défaut)

On clique sur le bouton save tout en haut (disquette) puis on clique sur le bouton Layout

On arrive enfin à l'interface de paramétrage graphique de notre écran

Appuyer sur la touche F6 pour faire apparaître l'interface des tables de base de données et saisir le nom de la table SPFLI donnée par défaut dans Mini SAP.

Sélectionner la ligne CARRID et valider en bas à gauche avec la touche de validation verte.

Puis on peut déposer son champ où on veut sur l'écran.

Il nous reste à sauvegarder (la disquette) et à tester notre écran avec la touche F8.

Pour quitter l'écran de test et revenir en mode édition, c'est F3

On insère un custom control qu 'on appelle LIST_AREA

Il faut double-cliquer sur le composer pour éditer ses propriétés (notamment son nom)

On choisit l'icône activate

Puis on définit les modules dans le programme

 

On rajoute une gestion de la fenêtre avec PF-STATUS et on double clique sur son nom 'SCREEN_100' pour créer l'interface.

On rajoute un petit commentaire avant de valider

Status pour gérer l'écran de saisie : On clique sur la 1ère icône de Function keys pour faire apparaître le menu d'icônes

Et on remplit les textes des 3 icônes suivantes

Puis on insère la gestion du code lié aux boutons dans le module qui gère les input utilisateurs

On peut enfin grâce à cette fonction arrêter la boucle infinie qui était créée sur l'écran qu'on avait créé.

 

Maintenant, il faut gérer notre champ pour le relier à la table SPFLI.

Il faut d'abord créer une variable dans les variables globales avec le même nom que le nom du champ créé dans l'interface

(les raisons de cette définition sont historiques dans le langage ABAP)

On définit la table qu'on utilise

Puis on rajoute une classe pour accéder aux données (2 parties : la définition et l'implémentation)

Puis on rajoute une donnée object de notre classe ("application")en définition qu'on crée ensuite dans le programme avant d'appeler l'écran.

 

Et on peut finalement gérer l'appel à notre objet pour lire les données de la table quand on valide l'écran de saisie.

 

On rajoute des membres dans notre classe locale application pour pouvoir gérer la liste de notre écran.

On double-clique sur cl_gui_custom_container pour arriver au Class Builder Tool.

On clique ensuite sur la ligne CONSTRUCTOR puis sur l'onglet Parameters en haut à gauche qui apparaît quand on clique sur CONSTRUCTOR

On voit qu'il y a le paramètre CONTAINER_NAME dans cette classe

On rajoute des méthodes dans notre classe.

Et il faut aussi implémenter pour que ce soit correct.

 

LA SUITE DE L'IMPLEMENTATION :

Si vous avez eu le courage de lire cette rubrique jusqu'ici, peut-être vous êtes-vous déjà aperçu de quelques erreurs (surtout si vous êtes déjà un programmeur ABAP expérimenté).

Ces erreurs sont volontaires pour vous faire manipuler l'outil de contrôle de syntaxe : faites CTRL F2 ou cliquez sur l'îcône en forme de balance avec 2 carrés :

Je vous laisse le soin de corriger les END CLASS en ENDCLASS, END METHOD en ENDMETHOD, END MODULE en ENDMODULE...

Sans oublier de rajouter tous les points "." qui manquent !!!

Une fois que vous avez un programme avec une syntaxe correcte, vous pouvez l'exécuter avec la touche F8

Et vous venez de finir votre premier programme ABAP évolué qui fait appel à un peu toutes les technologies de programmation ABAP.

Si vous n'avez aucune donnée dans votre base, il faut en générer avec le programme fourni par MiniSAP :

Si vous choisissez American Airlines, vous devez avoir le résultat ci-dessous en exécutant le programme :

 

Félicitations de la part de