✒️La memoria en SAP y en ABAP
La memoria en SAP y en ABAP
Uso de la memoria en ABAP
1 La memoria en ABAP
En ciertas oportunidades, podría pasar que mientras ejecutamos un programa u objeto ABAP necesitemos de datos que se obtengan de otro programa ABAP que se ejecutó 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. Otra opción es utilizar la memoria para pasar datos.
En ABAP existen sentencias que nos permiten manipular fácilmente los datos que subimos y bajamos de memoria. Para subir datos a memoria vamos a utilizar la sentencia EXPORT tal y como se muestra:
<< imagen 1.1 >>
El ID que se utiliza debe ser único. Un ejemplo en el cual subimos la variable v_estado_usu a un ID de memoria Z_ESTADO sería:
<< imagen 1.2 >>
Para bajar o descargar los datos de memoria utilizamos la sentenica IMPORT tal y como se muestra a continuación:
<< imagen 1.3 >>
Un ejemplo en el cual descargamos el valor del ID de memoria Z_ESTADO al campo v_estado_usu, sería:
<< imagen 1.4 >>
=> Se pueden exportar e importar tanto variales, como estructuras o tablas internas a memoria, incluso utilizando el mismo ID para diferentes objetos:
EXPORT ti_usuarios v_nombre_usuario TO MEMORY ID 'Z_MEMORIA'
IMPORT ti_usuarios v_nombre_usuario FROM MEMORY ID 'Z_MEMORIA'
Audio: El ID de memoria que se utiliza tanto para la sentencia IMPORT como para la sentencia EXPORT, de ser único y representa una ubicación escrita en el memoria ABAP. En el ejemplo anterior utilizamos el texto Z_ESTADO, pero podríamos haber utilizado cualquier otro literal que represente "de algún modo" el valor importado o exportado de la memoria.
Después de bajar los datos de memoria, es conveniente liberar el área de memoria utilizada. Esto podemos hacerlo con la sentencia FREE MEMORY como vemos a continuación:
<< imagen 1.5 >>
=> Para que la exportación-importación de datos funcione correctamente, se debe utilizar la misma sesión de memoria o ejecución.
Utilizaremos la sentencia SUBMIT para poder llamar a un programa dentro de la ejecución de otro programa, y que este puede utilizar la exportación de datos del programa llamante. Vemos un ejemplo de un programa zprueba_abap_4_7 que exporta el dato 'Z_ESTADO' y llama a otro programa zprueba_abap_4_8 que importa el dato 'Z_ESTADO'.
<< imagen 1.6 >>
El programa siguiente importa el dato de memoria y después libera la memoria.
<< imagen 1.7 >>
Supongamos que tenemos un programa P1 que exporta a memoria una variable V1 y un programa P2 que necesita utilizar esa variable.
Lo correcto seria colocar dentro de P1 un EXPORT de la variable V1, y luego dentro de P1 ejecutar un SUBMIT al programa P2.
Esta secuencia de trabajo es la correcta ya que estamos trabajando dentro de lo que denominamos la misma sesión de memoria.
Distinto seria ejecutar P1 y luego abrir otro modo de SAP y ejecutar P1, ya que en este caso no estariamos utilizando la misma sesión de memoria.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Eric Rivas Rivas
Favorito:
Está publicación ha sido agregada a sus favoritos por: Lorena Amoretti
Sobre el autor
Publicación académica de José Antonio Saavedra Rodríguez, en su ámbito de estudios para la Carrera Consultor ABAP.
José Antonio Saavedra Rodríguez
El Salvador - Legajo: SX28V
✒️Autor de: 166 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial