✒️ABAP / La memoria en SAP y en ABAP Por Lisimaco Prieto Herrera
La memoria en SAP y en ABAP

La memoria en SAP y en ABAP
La memoria
En ciertas oportunidades podría suceder que mientras ejecutamos un programa u objeto ABAP, necesitamos de datos que se obtengan en otro programa ABAP que se ejecuto previamente.
Existen varias formas de solucionar esto, una de ellas es pasando parámetros de un programa a otro, si es que ambos objetos son programas y otra opción es usar la memoria para pasar los datos entre programas.
Cuando hablamos de memoria debemos diferenciar entre:
La memoria de SAP.
La memoria de ABAP.
La memoria ABAP es una memoria local y es muy limitada, ya que solo se puede acceder a ella dentro de una sesión interna y los programas que se ejecutan fuera de la sesión no pueden leer ni escribir en esta memoria. Cuando hablamos de una sesión interna nos referimos a la sesión de un usuario de SAP en particular en el sistema.
En cambio la memoria SAP en una memoria global y es accesible para todos los programas que se ejecutan en esa sesión, así como en las diferentes sesiones principales. La memoria de SAP se puede usar para pasar datos de un programa a otro, ya sea dentro de una sesión o en otra sesión.
En términos de uso, el uso principal de la memoria ABAP es hacer que los datos sean accesibles para múltiples programas dentro de la misma sesión. Y en lo que respecta a la memoria SAP también hace que los datos estén disponibles en múltiples sesiones.
Cuando se trata de la memoria SAP usaremos las sentencias SET PARAMETERID y GET PARAMETER ID para intercambio de datos, de modo que con la sentencia SET vamos a asignar valores a los ID de parámetros de los campos de la pantalla SAP y con la sentencia GET vamos a recuperar los valores de los ID de parámetros de los campos de las pantallas de SAP.
Por otro lado, los programas ABAP pueden acceder a la memoria ABAP dentro de la misma sesión usando las sentencias IMPORT y EXPORT. Los datos dentro de esta memoria permanecen intactos durante una secuencia de llamadas a programas.
Diferencia que existe entre las memorias de SAP y las memorias de ABAP.
La memoria de SAP
La sentencia SET PARAMETER ID se usa para el envío de parámetros en la llamada a una transacción.
La sintaxis de la sentencia SET PARAMETER ID es la siguiente:
Con la ejecución de la sentencia anterior escribimos el contenido del campo f en la memoria global de SAP del usuario bajo el ID pid. Los ID de parámetro pueden tener hasta 20 caracteres.
Los valores escritos en la memoria SAP se conservan incluso cuando el usuario sale del programa.
Ejemplo: Transacción VA01
Como se ve la imagen anterior, en l pantalla inicial de la transacción VA01 es obligatorio el ingreso del campo Clase de pedido. Si seleccionamos el campo Clase de pedido y presionamos F1 vamos a visualizar la documentación dl campo de la pantalla.
Entonces vamos a visualizar los datos técnicos y entre ellos encontramos que ID de parámetro para el campo Clase de pedido es AAT.
Vamos a usar el ID de parámetro que acabamos de visualizar para ejecutar la transacción VA01, completar la pantalla inicial de la transacción y acceder directamente a la segunda pantalla de la transacción.
La sentencia SET PARAMETER ID 'AAT' FIELD 'CMR' asigna al ID de parámetro 'AAT' el valor 'CMR'.
La sentencia CALL TRANSACTION ejecuta la transacción VA01 y el agregado de la cláusula AND SKIP FIRST SCREEN evita mostrar la primera pantalla de la transacción.
Por lo tanto la primera pantalla que aparece es:
Por otro lado la sentencia GET PARAMETER ID se usa para transferir el valor almacenado en el ID de parámetro de la memoria SAP a un campo o variable.
Ejemplo sobre como usar la sentencia GET PARAMETER ID.
Si ejecutamos el programa vamos a ver impreso en la pantalla el contenido de la variable V_VALOR.
La memoria de ABAP
Tal como mencionamos anteriormente en ABAP existen sentencias que nos permite manipular fácilmente los datos que subimos y bajamos de la memoria.
Para subir o exportar datos a la memoria ABAP vamos a usar la sentencia EXPORT tal como mostramos en la siguiente imagen:
El ID que se usa debe ser único ya que identifica a ese dato dentro de la memoria ABAP.
Ejemplo:
Para bajar los datos de la memoria ABAP usamos la sentencia IMPORT como se muestra:
Ejemplo:
Se puede exportar e importar tantas variables, como estructuras o tablas internas a la memoria ABAP.
Luego de bajar los datos de la memoria, es conveniente liberar el área de memoria usada y esto se hace con la sentencia FREE MEMORY.
Para que la exportación e importación de datos funcione correctamente se debe usar la misma sesión de memoria o ejecución.
Ahora bien si deseamos pasar datos entre programas entonces podemos usar la sentencia SUBMIT para poder llamar a un programa dentro de la ejecución de otro programa.
Ejemplo:
Luego en el programa que importa los datos ejecutaremos la sentencia IMPORT como vemos en la siguiente imagen:
 
 
 
Sobre el autor
Publicación académica de Lisimaco Prieto Herrera, en su ámbito de estudios para el Curso SAP ABAP.
Lisimaco Prieto Herrera
Profesión: Ingeniero de Sistemas - Colombia - Legajo: DV67X
✒️Autor de: 96 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Ingeniero de sistemas con amplia experiencia en el desarrollo de software para el sistema sap r/3 en lenguaje de programación abap.
Certificación Académica de Lisimaco Prieto






Disponibilidad Laboral: FullTime


















