✒️La memoria en SAP y en ABAP
La memoria en SAP y en ABAP
Uso de la memoria en ABAP
Cuando mientras ejecutamos un programa u objeto ABAP necesitemos datos que se obtengan en otro programa ABAP que se ejecutó previamente, hay varias formas de solucionar eso, una de ellas es pasando parámetros de un programa a otro, so es que ambos objetos son programas. Otra opción es usar la memoria para pasar los datos.
En ABAP existen sentencias que nos permiten manipular fácilmente los datos que subimos y bajamos de memoria.
Para subir datos a memoria vamos a usar la sentencia EXPORT:
EXPORT <valor> TO MEMORY ID <id_unico>
El ID que se usa debe ser único; ejemplo:
*Exporto a memoria el estado del usuario
EXPORT v_estado_usu TO MEMORY ID 'Z_ESTADO'.
IF sy-subrc NE O.
MESSAGE e000 (z1) WITH 'Error al exportar'.
ENDIF.
El ID de memoria que se usa tanto para la sentencia IMPORT como para la sentencia EXPORT debe se único y representa una ubicacion escrita en la memoria ABAP. En el caso del ejemplo usamos el texto z_estado pero podriamos haber usado cualquier otro literal que represente de algún modo el valor exportado e importado de la memoria.
Para bajar o descargar los datos de memoria usamos la sentencia IMPORT, ejemplo:
IMPORT <valor> FROM MEMORY ID <id_unico>.
Ejemplo de como bajar datos de memoria:
*Importo de memoria el estado del usuario
IMPORT v_estado_usu FROM MEMORY ID 'Z_ESTADO'.
IF sy-subrc NE 0.
MESSAGE e000 (z1) WITH 'Error al importar'.
ENDIF.
Se pueden exportar e importar tanto variables como estructuras o tablas internas a memoria.
Luego de bajar los datos de memoria, es conveniente liberar el área de memoria utilizada. Esto se hace con la sentencia FREE MEMORY:
*Libero la memoria Abap
FREE MEMORY ID 'Z_ESTADO'.
Para que la exportación-importación de datos funcione correctamente se debe usar la misma sesión de memoria o ejecución.
Usaremos la sentencia SUBMIT para poder llamar a un programa dentro de la ejecución de otro programa. Ejemplo de un programa que exporta datos:
*&----------------------------------------------------------------------*
*& Report zprueba_abap_4_7
*&
*&-----------------------------------------------------------------------*
*&
*&
*&-----------------------------------------------------------------------*
REPORT z_prueba_abap_4_7.
*Declaración de datos
DATA: v_estado_usu TYPE char10.
**------------------------------------------------------------------------*
START OF SELECTION.
**------------------------------------------------------------------------*
* Exporto a memoria el estado del usuario
EXPORT v_estado_usu TO MEMORY ID 'Z_ESTADO'.
IF sy-subrc NE 0.
MESSAGE e000 (z1) WITH 'Error al exportar'.
ENDIF.
SUBMIT zprueba_abap_4_8 AND RETURN.
Luego en el programa que importa los datos haremos lo siguiente:
*&----------------------------------------------------*
*& Report zprueba_abap_4_8
*&
*&----------------------------------------------------*
*&
*&
*&----------------------------------------------------*
REPORT zprueba_abap_4_8.
*Declaración de datos
DATA: v_estado_usu TYPE char10.
*------------------------------------------------------*
START OF SELECTION.
*-----------------------------------------------------*
* Importo de memoria el estado del usuario
IMPORT v_estado_usu FROM MEMORY ID 'Z_ESTADO'.
IF sy-subrc NE 0.
MESSAGE e000 (z1) WITH 'Error al importar'.
ENDIF.
*Libero la memoria Abap
FREE MEMORY ID 'Z_ESTADO'.
 
 
 
Sobre el autor
Publicación académica de Diamela Serignese, en su ámbito de estudios para la Carrera Consultor ABAP.
Diamela Serignese
Profesión: Consultor Sap Crm / Solman - Argentina - Legajo: AA51D
✒️Autor de: 38 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Certificación Académica de Diamela Serignese