User Tools

Site Tools


abap:memory

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 (Sauce):

  1. la SAP memory, liée à une “session” de SAPLogon (donc partagée par tous les modes de la session)
  2. l'ABAP memory, liée à un mode de SAPLogon (donc partagée par toutes les internal sessions du mode)
  3. l'internal session, liée à un run de programme en particulier (les internal session sont stackées dans le mode)
  4. les FORM, MODULE, SCREEN, FUNCTION, METHOD, etc

Commandes ABAP

Les commandes ABAP correspondant à chaque niveau sont :

  1. les SPA/GTA pour la SAP memory
    SET PARAMETER ID <pid> FIELD <f>.
    GET PARAMETER ID <pid> FIELD <f>.
  2. les EXPORT/IMPORT pour l'ABAP memory
    EXPORT <f> TO MEMORY ID <pid>.
    IMPORT <f> FROM MEMORY ID <pid>.
  3. 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)
  4. les définitions dans le bloc particulier (DATA ou FIELD-SYMBOLS)

Durée de vie

  1. 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é)
  2. 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)
abap/memory.txt · Last modified: 2015/10/02 14:45 by ginko