✒️La memoria en SAP y en ABAP
La memoria en SAP y en ABAP
9| MEMORIA EN SAP Y EN ABAP
Memoria de ABAP: Local, limitada, solo se accede dentro de una sesión interna
y los programas ejecutados por fuera no pueden leer ni escribir en memoria.
(sesión interna: sesión de un usuario SAP en particular en el sistema)
Datos accesibles para multiples programas dentro de UNA misma sesión.
Memoria de SAP: Global. Se utiliza para pasar datos de un programa a otro. Dentro
de una sesión o en otra sesión.
Datos disponibles en MULTIPLES sesiones.
MEMORIA DE SAP:
SET PARAMETER ID -> Asignamos valores a los ID
SET PARAMETER ID se utiliza para el envío de parámetros en la llamada a una transacción mediante la sentencia CALL TRANSACTION.
GET PARAMETER ID -> Recuperamos valores a los ID
MEMORIA DE ABAP:
IMPORT
EXPORT
1.1 memoria de SAP (estos valores se conservan cuando el usuario sale del programa)
+ SET PARAMETER ID -> se utiliza para el envio de parámetros en la llamada a una transacción
SET PARAMETER ID <pid>FIELD<f>.
cómo usar?
supongamos que queremos acceder a la transacción VA01
- dentro de la pantalla inicial de la tx es obligatorio el ingreso del
campo "Clase de pedido". Al seleccionar el campo y apretar "F1"
vamos a visualizar la doc. del campo de la pantalla.
- hacemos clic en el botón de información técnica (icono de herramientas)
- encontramos que el "ID parámetro" es "AAT".
REPORT ztest_set_parameter.
SET PARAMETER ID 'ATT' FIELD 'CRM'.
CALL TRANSACTION 'VA01' AND SKIP FIRST SCREEN.
ejecuta la tx y "skip first screen" evita mostrar la 1ra pantalla de la tx
ejecutamos ZTEST_SET_PARAMETER vamos a acceder directamente a la segunda pantalla
de la tx VA01, habiendo cargado en la primera pantalla el valor CMR para el campo
"Clase de pedido"
+ GET PARAMETER ID -> se utiliza para transferir el valor almacenado en un ID
de parámetro de la memoria SAP a un campo o variable.
GET PARAMETER ID <pid> FIELD <f>.
cómo usar?
- pasar el valor CMR al ID de parámetro ATT mediante la sentencia SET y
luego recuperamos el valor que acabamos de pasar mediante la ejecución de
la sentencia GET
DATA: v_valor(3) TYPE c.
CLEAR v_valor.
SET PARAMETER ID 'ATT' FIELD 'CMR'.
GET PARAMETER ID 'ATT' FIELD v_valor.
WRITE:/ v_valor.
al ejecutar vemos impreso el contenido de la variable v_valor.
----------------------------
1.2 Memoria de ABAP
EXPORT -> para subir o exportar datos a la memoria ABAP
EXPORT <campo> TO MEMORY ID <id_unico>.
El ID debe ser único ya que identifica a ese dato dentro de la memoria ABAP.
ej:
CLEAR v_estado_usu.
v_estado_usu = 'ACTIVO'.
*Exportamos a memoria el estado del usuario
EXPORT v_estado_usu TO MEMORY ID 'Z_ESTADO'.
IF sy-subrc NE 0.
MESSAGE e000 (zl) WITH 'Error al exportar'.
ENDIF.
IMPORT -> para bajar o importar los datos de la memoria ABAP
IMPORT <campo> FROM MEMORY ID <id_unico>.
*Importo de memoria el estado del usuario
IMPORT v_estado_usu FROM MEMORY ID 'Z_ESTADO'.
IF sy-subrc NE 0.
MESSAGE e000(zl) WITH 'Error al importar'.
ENDIF.
* se pueden exportar e importar tanto variables, como estructuras o tablas internas
a la memoria ABAP.
Al bajar los datos a memoria, es conveniente liberar memoria
esto lo hacemos con FREE MEMORY
FREE MEMORY ID 'Z_ESTADO'.
* Para que la exportación e importación de datos funcione correctamente se debe
utilizar la misma sesión de memoria o ejecución.
SUBMIT -> pasar datos entre programas, para llamar un programa dentro de la ejecución
de otro.
ej:
SUBMIT z_test_import_submit AND RETURN. "en el programa ztest_export_submit
-
IMPORT v_estado_usu FROM MEMORY ID 'Z_ESTADO'. "en el programa ztest_import_submit
-
 
 
 
Sobre el autor
Publicación académica de Maximiliano Andres Fraga, en su ámbito de estudios para la Carrera Consultor ABAP.
Maximiliano Andres Fraga
Profesión: Desarrollador - Argentina - Legajo: PX18Q
✒️Autor de: 20 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Maximiliano Fraga