====== Zone mémoire ======
SAP possède plusieurs niveaux de zones mémoire qui définissent l'accès et la vie des données.
===== DB =====
La base de données est a priori accèssible de partout, sans limite de durée.
Pour stocker des données on passera par :
* Tables standard
* Tables spécifiques
* TVARVC
* Variables utilisateur
===== Mémoire vive =====
Il existe plusieurs zones en mémoire vive ou scopes, dans l'ordre du plus global vers le plus particulier ([[http://help.sap.com/saphelp_ehs27b/helpdata/en/fc/eb2d40358411d1829f0000e829fbfe/content.htm|Sauce]]):
- la SAP memory, liée à une "session" de SAPLogon (donc partagée par tous les modes de la session)
- l'ABAP memory, liée à un mode de SAPLogon (donc partagée par toutes les internal sessions du mode)
- l'internal session, liée à un run de programme en particulier (les internal session sont stackées dans le mode)
- les FORM, MODULE, SCREEN, FUNCTION, METHOD, etc
==== Commandes ABAP ====
Les commandes ABAP correspondant à chaque niveau sont :
- les SPA/GTA pour la SAP memory SET PARAMETER ID FIELD .
GET PARAMETER ID FIELD .
- les EXPORT/IMPORT pour l'ABAP memory EXPORT TO MEMORY ID .
IMPORT FROM MEMORY ID .
- les définitions dans le programme principal (le ''FUNCTION-POOL'' pour les FM, les attributs de classe, etc) pour l'internal session (''DATA'' ou ''FIELD-SYMBOLS'')
- les définitions dans le bloc particulier (''DATA'' ou ''FIELD-SYMBOLS'')
==== Durée de vie ====
- Les export dans l'ABAP memory semblent y vivre tant que l'internal session d'origine est dans la stack (ou qu'un ''FREE MEMORY'' est éxecuté)
- Les variables globales vivent tant que le programme principal est en cours d'éxecution (trivial ! sauf dans les cas des FM ! : l'internal session du FUNCTION-POOL reste dans la stack du mode)