✒️La memoria en SAP y en ABAP
La memoria en SAP y en ABAP
A menudo sucede que mientras ejecutamos un programa u objeto ABAP necesitemos de datos que se encuentran en otro programa ABAP y que se ejecutó previamente. Una forma de solucionar esto es pasando parámetros si es que ambos objetos son programas. Otra opción es utilizar la memoria para pasar los datos.
Para esto, en ABAP existen sentencias que sirven para subir y bajar datos de la memoria, como la palabra EXPORT.
EXPORT <valor> TO MEMORY ID <id_unico>
El ID que se utilice debe ser único, ejemplo:
EXPORT v_estado_usu TO MEMORY ID ‘Z_ESTADO’.
IF sy-subrc NE 0.
MESSAGE e000 (z1) WITH ‘Error al exportar’.
ENDIF.
El ID de memoria se utiliza tanto para la sentencia IMPORT como para la sentencia EXPORT debe ser único y representa una ubicación escrita en la memoria ABAP. En este caso en el que vemos en el ejemplo utilizamos Z_ESTADO pero pudimos haber utilizado cualquier otro literal que represente del algún modo el valor importado y exportado de la memoria.
Para bajar o descargar los datos de memoria utilizamos la sentencia IMPORT:
IMPORT <valor> FROM MEMORY ID <id_unico>.
Un ejemplo complete de esto:
IMPORT v_estado_usu FROM MEMORY ID ‘Z_ESTADO’.
IF sy-subrc NE 0.
MESSAGE e000 (z1) WITH ‘Error al exportar’.
ENDIF.
Se pueden importar y exportar tanto variables como estructuras o tablas internas a memoria.
Luego de bajar los datos de memoria es conveniente liberar el área de memoria utilizada. Eso lo hacemos mediante la sentencia FREE MEMORY, como en el siguiente ejemplo.
FREE MEMORY ID ‘Z_ESTADO’.
NOTA: Para que la exportación-importación de datos funcione correctamente se debe utilizar la misma sesión de memoria o ejecución.
También utilizaremos la sentencia SUMBIT para poder llamar a un programa dentro de la ejecución de otro programa:
REPORT zprueba_abap_4_9_2.
Declaración de datos
DATA: v_estado_usu TYPE char10.
START-OF-SELECTION.
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. 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'. ELSE. WRITE:/ v_estado_usu. ENDIF. Libero la memoria Abap FREE MEMORY ID 'Z_ESTADO'.
 
 
 
Sobre el autor
Publicación académica de Jose Alberto Rivera Gonzalez, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Alberto Rivera Gonzalez
Profesión: Técnico Informático - Mexico - Legajo: LG32F
✒️Autor de: 102 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jose Rivera