====== 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)