✒️ABAP / La memoria en SAP y en ABAP Por Juan Romero
La memoria en SAP y en ABAP

la memoria en SAP y ABAP
- En ABAP, a veces se necesita acceder a datos generados por un programa previo durante la ejecución de otro programa ABAP.
- Existen varias formas de transferir datos entre programas, como utilizar parámetros o aprovechar la memoria del sistema.
- Se distingue entre memoria de SAP (global) y memoria de ABAP (local), cada una con sus propias características y capacidades.
- La memoria de ABAP solo es accesible en la misma sesión interna de usuario y es limitada a esa sesión.
- La memoria de SAP es global dentro del entorno del usuario y puede utilizarse para transferir datos incluso entre diferentes sesiones principales.
Manejo de parámetros con memoria SAP
- Para transmitir datos usando la memoria de SAP, se emplean las sentencias SET PARAMETER ID y GET PARAMETER ID.
- SET PARAMETER ID asigna valores a un ID de parámetro en la memoria global del usuario.
- La información almacenada bajo un ID de parámetro puede mantenerse incluso después de abandonar el programa.
- Ejemplo presentado: al ejecutar SET PARAMETER ID con un valor de clase de pedido y luego llamar a una transacción (BA01), se puede saltar la pantalla inicial si el parámetro obligatorio ya está cargado.
- GET PARAMETER ID se utiliza para recuperar el valor almacenado en memoria y asignarlo a campos o variables en un programa.
Uso y ejemplos de memoria ABAP
- Para cargar (exportar) datos a la memoria ABAP se usa la sentencia EXPORT con un ID único que identifique los datos.
- Para recuperar (importar) los datos, se utiliza IMPORT, con la precaución de usar el mismo ID y dentro de la misma sesión de ejecución.
- Se pueden almacenar variables, estructuras o tablas internas en la memoria ABAP.
- Para liberar el área usada por la memoria ABAP se utiliza FREE MEMORY.
- Para pasar datos entre programas dentro de una misma ejecución, se puede usar SUBMIT para llamar programas y compartir datos mediante EXPORT e IMPORT.
Reflexiones y recomendaciones
- Es importante utilizar IDs únicos en la memoria ABAP para evitar conflictos de datos.
- La exportación e importación de datos sólo funciona correctamente si se mantiene la misma sesión o ejecución de memoria.
- Después de importar datos, siempre es buena práctica liberar el área de memoria utilizada.
Evaluación de sentencias SET y GET PARAMETER ID
- Es importante revisar el contenido de la variable de sistema sy-subrc después de ejecutar las sentencias set parameter id y get parameter id.
- Un valor distinto de cero en sy-subrc indica que el ID de parámetro no fue encontrado; un valor igual a cero indica éxito.
Particularidades del ID de memoria en ABAP
- El ID de memoria usado en las sentencias import y export debe ser único y representa una ubicación específica en la memoria ABAP.
- En el ejemplo, se usó el literal z_estado, pero se podría usar cualquier otro nombre literal representativo de la información que se exporta e importa.
Ejemplo práctico con memoria SAP
- Para trabajar con la memoria SAP, se emplean las sentencias set parameter id y get parameter id.
- En el caso de ejemplo, se setea el parámetro aat con valor cmr y luego se ejecuta la transacción VA01, agregando la instrucción skip first screen para saltar la primera pantalla.
- Se verifica en la transacción VA01 que el campo "clase de pedido" tenga el parameter ID aat, asegurando la coherencia del proceso.
- Al ejecutar el programa de ejemplo, se observa que efectivamente se saltea la primera pantalla al usar los valores previamente seteados.
Profundización en memoria ABAP y pasos de ejecución
- Se utiliza un programa de ejemplo Z_TEST_EXPORT_IMPORT.SUBMIT que exporta una variable (ve_estado_usu) a la memoria, utilizando un ID específico (z_estado).
- Si sucede algún error en la exportación, se muestra un mensaje correspondiente y luego con la sentencia submit ... and return se transfiere el control a otro programa.
- El programa llamado importa la variable de la memoria usando el mismo ID; si los IDs no coinciden, la importación falla.
- Si la importación es exitosa, el valor se imprime en pantalla y se libera la memoria utilizada.
- El uso del depurador (breakpoint y pasos con F5) permite verificar el valor exportado e importado, confirmando el buen funcionamiento de las sentencias.export e import en conjunto con submit.
Sugerencias
- Revisar el ejemplo presentado para el uso de SET y GET PARAMETER ID en memoria SAP.
- Implementar prácticas para liberar memoria ABAP con FREE MEMORY después de su uso.
- Asegurarse de emplear IDs únicos y consistentes al trabajar con EXPORT e IMPORT en la memoria ABAP.
- Verificar en cada implementación que los IDs de memoria utilizados tanto en export como en import coincidan exactamente.
- Emplear siempre la comprobación del valor de sy-subrc para validar la ejecución de las sentencias relacionadas con la memoria en SAP ABAP.
 
 
 
Sobre el autor
Publicación académica de Juan Ignacio Romero, en su ámbito de estudios para el Curso SAP ABAP.
Juan Ignacio Romero
Profesión: Ing. Sistemas Computacionales - Mexico - Legajo: LJ26F
✒️Autor de: 138 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Juan Romero






Disponibilidad Laboral: FullTime


















