Dans cet article nous allons parcourir l’utilisation de 2 outils d’intelligence artificielle pour générer du code ABAP.
- SAP Joule
- Github Copilot
SAP Joule
Pour cet exemple, j’ai suivi le tutoriel mis à disposition par SAP.
Nous allons ici créer une application RAP qui permet de gérer une bibliothèque.
1/ Via BTP ABAP Environment, accéder à la fonctionnalité : Generate ABAP Repository Objects
2/ Accéder au générateur qui permettra de créer les objets RAP via AI : Odata UI Service Supported By AI
3/ Saisir le Prompt qui décrit votre besoin de business Object (Ici le prompt fourni pour la création du BO Bibliothèque)
4/ Cela va générer les objets nécessaires ( Database Table / CDS / Behaviors / Service Definition / Service Binding )
5/ Puis nous amener au niveau du service binding ou il sera possible de publier l’application
6/ On accède ensuite à la prévisualisation de l’application Fiori
Discussion :
Cette fonctionnalité représente une des 4 fonctionnalités que SAP Joule propose :
SAP Joule a donc également la possibilité de vous accompagner au quotidien dans votre développement comme si vous fonctionniez en Pair Programming.
Aussi, SAP Joule pour l’ABAP n’est pour le moment pas disponible sur les systèmes S/4 Hana On Premise et prévus pour Q1 2025 sur les systèmes Cloud ( Private / Public / BTP ).
Enfin, dernier point, pour avoir accès à SAP Joule il faut que l’environnement ABAP soit connecté au service SAP AI Core -> Coûts
Github Copilot
Pour l’installation et la configuration de Github Copilot for Eclipse, rdv ICI.
Github Copilot est à considérer comme un Pair Programmer qui aide à la rédaction de code, la résolution d’erreur, l’explication de code existant, la rédaction de tests, etc…
Nous allons voir ici quelques exemples en ABAP.
Avant toute chose vérifier que l’ABAP est activé dans les langages de Copilot4Eclipse :
1/ Aide à la rédaction de code
Ici, nous avons créé une classe abap et nous souhaitons ajouter une méthode qui divise un nombre par 2 :
- En saisissant le commentaire : *Create method to dive a number by 2
Github Copilot propose un code :
Qu’il est possible d’accepter en appuyant sur la touche TAB.
- Ensuite Github Copilot me propose également de remplir la partie DEFINITION de la classe
2/ Explication du code
Il est possible ensuite de sélectionner une partie du code pour demander une explication de ces fonctionnalités.
3/ Corriger les erreurs
On voit ici que Github Copilot explique et remonte une erreur. Nous pouvons donc demander la correction de l’erreur
Et ensuite copier-coller le nouveau code dans la classe
4/ Ajouter des références
Si le code qui doit être analysé, appelle des méthodes d’autres classes, il est possible d’ajouter ces dernières afin que Github Copilot ait connaissance de ces dernières.
5/ Génération de classes de tests
De la même manière que précédemment, il est possible de demander la création de classes de tests.
Ici, après un peu de retravaille de la proposition faite par Github Copilot :
Discussion :
- Copilot4Eclipse n’est pas une extension officielle d’Eclipse ( Alors que VS Code dispose de l’extension officielle ), il y a donc encore quelques problèmes liées à cette extension
- Il faut parfois référencer la classe que nous souhaitons analyser dans le chat et préciser dans la demande quelle partie du code nous souhaitons analyser plutôt que d’avoir la possibilité de faire clic droit -> Copilot4Eclipse -> Explain This comme montré dans l’exemple.
Erreur :
Plus d’erreur :
- Il faut disposer d’un abonnement à Github Copilot
- Très bon contextuellement puisqu’on peut lui préciser tous les fichiers/classes sur lesquels s’appuyer afin d’analyser le code.
Conclusion
Nous avons exploré 2 solutions d’IA pour le développement ABAP qui s’intègrent directement aux IDE, Une solution proposée par SAP et l’autre par Github.
Mais il existe encore beaucoup d’autres solutions pour aider au quotidien dans le développement.