# ABAP dans Maguyva : des graphes de classes pour le code spécifique SAP

Canonical source: https://maguyva.ai/fr/languages/abap

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva prend en charge ABAP avec AST, symboles et graphe, pour que les agents IA cartographient classes, interfaces, redéfinitions et exceptions du code spécifique SAP.

## Aperçu du support

- Palier: Prise en charge de l’AST et des symboles
- Programmation
- Extensions: .abap
- Analyse AST réelle pour une recherche consciente de la syntaxe et un contexte structurel.
- Les symboles nommés alimentent la recherche sémantique et le référencement croisé. La navigation par graphe est disponible lorsque l’extraction de relations est activée.
- Ce langage fournit des symboles et des relations à la recherche tenant compte du graphe ; les types d’arêtes pris en charge varient selon ses constructions natives.
- L’analyse AST et l’extraction de symboles sont toutes deux disponibles.

## Idéal pour

- Les équipes SAP qui versionnent leur ABAP spécifique dans Git sous forme de fichiers source `.abap` et doivent le comprendre avant une migration ou une revue clean core.
- Les patrimoines ABAP orientés objet où hiérarchies de classes, interfaces et redéfinitions masquent l'implémentation réellement exécutée.
- Les analyses d'impact assistées par agent où la question est : « Qu'est-ce qui casse si cette classe change ? »

## Workflows d'agent

- Cartographier les classes qui héritent d'une classe de base et les méthodes qu'elles redéfinissent.
- Trouver toutes les classes qui implémentent une interface avant d'en modifier les signatures de méthode.
- Retracer où une classe d'exception est levée et où elle est interceptée.

## Pourquoi cartographier ABAP avant de le modifier

L'ABAP spécifique porte souvent des décennies de règles métier. Le code est orienté objet à certains endroits et procédural à d'autres, et c'est la structure d'héritage et d'interfaces qui décide quelle méthode s'exécute. Lire une classe après l'autre ne le montre pas.

Maguyva donne d'abord à l'agent le graphe des classes, de sorte qu'un plan de modification part de ce qui dépend d'une classe plutôt que d'une supposition.

## Ce que Maguyva extrait en ABAP

Maguyva analyse les sources `.abap` avec une grammaire ABAP dédiée. Les symboles comprennent les définitions et implémentations de classes, les interfaces, les déclarations et implémentations de méthodes, ainsi que les routines `FORM`.

Le graphe enregistre les relations qui comptent pour les développeurs ABAP :

- L'héritage issu de `CLASS ... INHERITING FROM`.
- L'implémentation d'interfaces issue de `INTERFACES`.
- Les surcharges issues de `METHODS ... REDEFINITION`.
- Les exceptions issues de `RAISE EXCEPTION` et `CATCH`.
- Les appels de méthode (`obj->m( )`, `cls=>m( )`, `CALL METHOD`), les références de type issues de `TYPE` et `TYPE REF TO`, et les exports de méthodes de la section publique rattachés à leur classe.
- Les lectures, écritures et le flux de contrôle (`IF`, `CASE`, `LOOP`, `TRY`) dans le corps des méthodes.

## Exemples de prompts pour agents

- « Quelles classes héritent de `zcl_order_base`, et lesquelles de ses méthodes redéfinissent-elles ? » (`find_symbol`, puis `dependency_search` en incoming)
- « Où `zcx_pricing_error` est-elle levée, et qui l'intercepte ? » (`dependency_search`)
- « Résume comment le flux de création de livraison passe du report à la classe de persistance. » (`get_task_context`)

## Limites connues

- Open SQL (`SELECT ... FROM ... INTO`), `EXEC SQL` et `AUTHORITY-CHECK` ne sont pas analysés par la grammaire ABAP actuelle ; les lectures de tables via SQL ne sont donc pas encore des arêtes du graphe. Utilisez `text_pattern_search` pour les noms de tables.
- Les clauses `INTERFACES` sont des relations d'implémentation, pas des imports. Seules les instructions `INCLUDE` sont sélectionnées comme imports dans la recherche structurelle.
- Maguyva indexe l'ABAP stocké dans un dépôt Git sous forme de fichiers `.abap`. Il ne se connecte pas à un système SAP.

## Étapes suivantes

Connectez un dépôt avec le [démarrage rapide](/fr/docs/quickstart), puis consultez la matrice de prise en charge sur la [page de compatibilité](/fr/docs/compatibility). Pour d'autres patrimoines historiques, voir le [guide COBOL](/fr/languages/cobol).

## Détails du moteur

- ABAP est analysé avec une grammaire dédiée. Les classes, interfaces, déclarations et implémentations de méthodes, et les routines `FORM` sont des symboles.
- Le graphe enregistre l'héritage `INHERITING FROM`, l'implémentation `INTERFACES`, les surcharges `REDEFINITION`, `RAISE EXCEPTION` et `CATCH`, ainsi que des appels comme `obj->m( )` et `cls=>m( )`.
- Open SQL, `EXEC SQL` et `AUTHORITY-CHECK` ne sont pas analysés par la grammaire actuelle ; les lectures de tables via SQL ne sont donc pas encore des arêtes du graphe.

## Points d'entrée MCP utiles

- `find_symbol`: Utilisez-le pour un nom de classe, d'interface ou de méthode quand vous avez besoin de sa définition et de ses références.
- `dependency_search`: Utilisez la traversée incoming sur une classe de base ou une interface pour trouver sous-classes, implémentations et appelants avant un changement.
- `text_pattern_search`: Utilisez-le pour les noms de tables et les instructions SQL que le graphe ne couvre pas encore.
