Introduction à l’ABAP Objet

Historique des langages de programmation
abapoo-1

Programmation analytique
abapoo-2

Les fonctions sont définies indépendamment des structures de données

  • Accès direct aux données
  • Toute modification rend nécessaire de tester à nouveau tous les traitements
  • Les systèmes d’information étaient généralement définies par leurs fonctions : les données et les fonctions étaient stockées séparément et reliées à l’aide de relations entrée–sortie

Utilisation des groupes de fonction
abapoo-3

Lors de l’utilisation d’un groupe de fonction, il y a chargement en mémoire de tout le groupe de fonction avec les modules et les données.

Limite de la programmation analytique
abapoo-4

Si l’on définit un pool de fonction avec 3 fonctions pour définir les comportement d’un compteur : initialisation, incrémentation, récupération.

On peut alors utiliser ces fonctions pour créer et faire vivre un compteur :
abapoo-5

Dans le cas précédent, le résultat donne 7.
Essayons maintenant de créer plusieurs compteurs :
abapoo-6

Dans ce cas, le résultat donne 10.

On se rend compte qu’il est alors impossible d’utiliser des groupes de fonctions si l’on souhaite faire plusieurs appels et créer plusieurs compteurs.

Il faudrait donc pouvoir créer plusieurs instances, plusieurs objets du type compteur.

Programmation orientée objet
abapoo-7

L’orientation objet est basée sur des objets représentatnt des éléments abstraits ou concrets dans le monde réel. Ces objets sont représentés en premier lieu par leurs caractéristiques qui sont mises en correspondances avec la structure interne de l’objet et les attributs (données). Le comportement d’un objet est décrit à l’aide de méthodes et d’évènements (fonctionnalité).

Exemple pratique du compteur
abapoo-8
abapoo-9

Dans ce cas, le premier compteur contient la valeur 7 et le deuxième 10.

Exécuter un programme ABAP depuis Excel

Outil très pratique pour simplifier l’exécution d’un programme et la récupération de son spool par RFC.

Télécharger et installer dans SAP le module fonction RFC YY_RFC_ABAP_RUN

Télécharger l’outil Excel RFC_ABAP_RUN.xls

L’utilisation est très simple, il suffit de renseigner le nom du programme a exécuter et la variante associée.

L’outil offre également la possibilité de saisir la liste des paramètres de sélection du programme.

Option 1
RFC_ABAP_RUN-1

RFC_ABAP_RUN-2

Option 2
RFC_ABAP_RUN-3

RFC_ABAP_RUN-4

Récupérer le contenu des variantes SAP depuis Excel

L’outil proposé ici permet d’extraire depuis Excel les attributs ainsi que le contenu d’un certains nombres de variantes.

Pré-requis :
Installer le module fonction spécifique YY_ASI_RS_VARIANT_CONTENTS.txt

Attention de ne pas oublier de cocher la case MF exécutable à distance dans l’onglet Propriétés.

YY_ASI_RS_VARIANT_CONTENTS

Télécharger l’outil RS_VARIANT_CONTENTS.xls

Pour utiliser l’outil, il suffit de renseigner une liste de programmes et leurs variantes associées dans l’oglet Variantes et de cliquer sur le bouton Go.

Les attributs et les contenus des variantes sont extraits respectivement dans les onglets Attributs et Valeurs.

Extraire la structure d’une table SAP depuis Excel

Cet outil permet d’extraire la structure d’une table SAP directement à partir d’Excel. Il utilise pour cela le module fonction RFC de SAP RFC_READ_TABLE.

RFC_READ_TABLE_FIELDS.xls

Extraire le contenu d’une table SAP depuis Excel

Cet outil permet d’extraire le contenu d’une table SAP directement à partir d’Excel. Il utilise pour cela le module fonction RFC de SAP RFC_READ_TABLE.

Il permet également de filtrer les champs à récupérer et de renseigner des critères de sélection complexes.

Télécharger l’outil

RFC_READ_TABLE.xls

Raccourci SAPGUI avec mémorisation du mot de passe

Par défaut, le mot de passe de connexion n’est pas sauvegardé lorsque l’utilisateur crée un raccourci avec le SAPGUI.

Avant tout, il faut enregistrer les paramètres du SAP Shortcut dans la base de registre en exécutant la commande sapshcut.exe -register
L’exécutable sapshcut.exe se trouve dans le répertoire d’installation du SAPGUI.

Via regedit, il faut ensuite renseigner la valeur 1 dans la clé :

HKEY_CURRENT_USER\Software\SAP\SAPShortcut\Security\EnablePassword

Le sapshcut.exe peut être exécuté directement en mode commande comme ceci :

start sapshcut.exe -user=MONUSER -pw=MONPWD -language=FR -system=SID -guiparm="xxx.xxx.xxx.xxx 00" -client=100 -maxgui

Il suffit de mettre la ligne ci-dessus dans un fichier .bat pour constiuer le raccourci.
Attention : en utilisant le paramètre -pw, il est impératif de mettre le raccourci dans un lieu sûr puisqu’il contient les mots de passe en clair.

Paramètres du Sapgui Shortcut, Version 620 Build 36

startup parameters:
-version display version information
-edit edit the shortcut via dialog
-register register the shortcut class to integrate into windows
-maxgui let GUI to be displayed in maximized window

logon parameters:
user identification
-user=userid to identify the user. (default is the windows user)
-pw=password to authorize the user
-language=E to set the prefered language

system identification
-system=DEV to identify the sap system
-client=032 to identify the client
-sysname="DEV [PUBLIC]" to identify the sap system using load balancing
-guiparm="sapserver 10" to identify the sap system without load balancing

function identification
-command="se38" to set the function to start
-type=Transaction to set the function type
-title="ABAP/4 Editor" to set the title to be displayed

Optimisation du nombre de work process

Je vous propose 2 méthodes simples pour déterminer le nombre optimal de processus DIA, BTC, UPD, …

1) Lancer la transaction AL12
Menu Statistics -> Cursor cache -> All servers
Si tous les WP ont des valeurs élevées au niveau de la colonne Requests, il faut rajouter de nouveaux processus.
Si un des processus a des Requests faibles comparé aux autres processus, cela signifie qu’il est utilisé de façon non régulière. Le nombre de processus de la même catégorie peut donc être diminué.
wp_al12

2) Lancer la transaction SM50 et afficher les temps CPU via CTRL+SHIFT+F6 ou menu List -> CPU
Les WPs avec des temps CPU inférieurs à 10 mn peuvent être retirés
Si tous les WPs ont des CPU supérieures à 50 mn, il faut rajouter des WPs supplémentaires.
wp_sm50