✒️La memoria en SAP y en ABAP
La memoria en SAP y en ABAP
Unidad n°4: Las subrutinas, los módulos de funciones y el procesamiento batch
Lección n°9: La memoria en SAP y en ABAP
La memoria:
A veces, cuando ejecutamos un programa/objeto, necesitamos datos que se obtengan de otro programa ejecutado antes.
Existen muchas formas de solucionar esto, una de ellas es pasando parám. de un programa a otro, si es que ambos objetos son programas; y la otra opción es usando la memoria para pasar los datos entre programas.
Cuando hablamos de memoria hay que diferenciar la memoria de SAP y la de ABAP; ya que la de ABAP es local y muy limitada debido a que solo se puede acceder a ella dentro de una sesión interna (sesión de usuario particular) y los programas que se ejecutan fuera de la sesión no pueden leer ni escribir en esta memoria.
En cambio, la memoria de SAP es global y accesible para todos los programas que se ejecutan en esa sesión. Esta memoria se puede usar para pasar datos de un programa a otro, ya se adentro de una sesión o en otra sesión.
Respecto a los usos, la memoria ABAP se usa para hacer que los datos sean accesibles para varios programas dentro de la misma sesión; la memoria SAP también hace esto pero para múltiples sesiones.
Para la memoria de SAP usaremos las sentencias SET PARAMETER ID (asignaremos valores a los ID de parám. de los campos de las pantallas) y GET PARAMETER ID (recuperaremos valores de los ID de parám. de los campos de las pantallas SAP).
Para que los programas puedan acceder a la memoria ABAP dentro de la misma sesión interna. usaremos las sentencias IMPORT y EXPORT. los datos dentro de esta memoria permanecen intactos durante una secuencia de llamadas a programas.
Diferencias entre las memorias:
- Memoria SAP:
Es global.
Todas las sesiones de SAP GUI de todos los usuarios tienen acceso a ella.
Hace que los datos estén disponibles en la sesión principal.
Los datos se pueden intercambiar usando GET / SET. - Memoria ABAP:
Es local.
Todos los programas dentro de una misma sesión tienen acceso a ella.
Hace que los datos estén disponibles en varias sesiones dentro de la misma sesión.
Los datos se pueden intercambiar usando IMPORT / EXPORT.
La memoria de SAP:
La sentencia SET PARAMETER ID: usada para el envío de param. en la llamada a una trans. Su sintaxis es:
SET PARAMETER ID <pid> FIELD <f>.
Ejecutando la sentencia, escribimos el contenido del campo f en la memoria global de SAP del usuario bajo el ID pid. Los ID de parám. pueden tener hasta 20 caracteres.
Los valores escritos en la memoria SAP se conservan incluso cuando el usuario sale del programa.
EJ de SET PARAMETER ID: supongamos que queremos acceder desde un programa a la trans. VA01 (donde se crean los pedidos de los clientes):
Una vez dentro de la trans, veremos que la Clase de pedido es obligatoria de completar. Si seleccionamos el campo y apretamos F1, veremos la documentación del campo de la pantalla. Nosotros haremos clic en y veremos los datos técnicos, en donde encontramos que el ID del parám. para el campo Clase de pedido es AAT.
Usamos esta ID para ejecutar la trans. Para ello, creamos el programa ZTEST_SET_PARAMETER:
La sentencia SET PARAMETER ID 'AAT' FIELD 'CMR' asigna al ID de param. 'AAT' el valor 'CMR'.
La sentencia CALL TRANSACTION ejecuta la trans. VA01 y el agregado de la cláusula AND SKIP FIRST SCREEN evita mostrar la 1er pantalla de la trans.
Si ejecutamos el programa vemos que efectivamente accedemos directo a la 2da pantalla de la trans VA01, habiendo cargado la 1er pantalla el valor CMR para el campo Clase de pedido.
La sentencia GET PARAMETER ID se usa para transferir el valor almacenado en un ID de param. de la memoria SAP a un campo o variable. Su sintaxis es: GET PARAMETER ID <pid> FIELD <f>.
EJ: creamos el programa ZTEST_GET_PARAMETER y pasamos el valor CMR al ID de param. AAT mediante la sentencia SET PARAMETER ID y luego recuperamos el valor que acabamos de pasar por medio de GET PARAMETER ID:
Si ejecutamos este programa, veremos por pantalla el contenido de la var. "v_valor":
La memoria de ABAP:
Sentencia EXPORT: para subir o exportar datos a la memoria ABAP.
EXPORT <campo> TO MEMORI ID <id_unico>.
EJ:
Sentencia IMPORT: para bajar o importar los datos de la memoria ABAP:
IMPORT <campo> FROM MEMORI ID <id_unico>.
EJ:
Sentencia FREE MEMORY: para liberar el área de la memoria usada, luego de bajar datos de la memoria:
Sentencia SUBMIT: la usamos si queremos pasar datos entre programas para poder llamar a un programa dentro de la ejecución de otro.
EJ:
Luego en el programa que importa los datos ejecutaremos IMPORT:
El ID que se usa debe ser único tanto para EXPORT como para IMPORT, ya que identifica a ese dato dentro de la memoria.
Se pueden exportar e importar variables, estructuras o tablas internas a la memoria.
Para que la exportación e importación de datos funcione bien, se debe usar la misma sesión de memoria o ejecución.
 
 
 
Sobre el autor
Publicación académica de Candela Estefanía Calzada, en su ámbito de estudios para la Carrera Consultor ABAP.
Candela Estefanía Calzada
Profesión: Técnica Electrónica - Argentina - Legajo: JW91W
✒️Autor de: 160 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Me encuentro estudiando la ingeniería en sistemas de información. poseo amplia experiencia en edición de videos. tengo bases entorno a la programación que quiero continuar consolidando.
Certificación Académica de Candela Calzada