✒️La memoria en SAP y en ABAP
La memoria en SAP y en ABAP
Apuntes ING Ezequiel Hurtado Benitez
La memoria en SAP: Si en alguna ocasión ocurre que mientras ejecutamos un programa u objeto ABAP, necesitamos de datos que se obtengan en otro programa ABAP que se ejecutó previamente. Existen formas de solucionar esto, una de ellas es pasando parámetros de un programa a otro, si es que ambos objetos son programas y otro opción es utilizar la memoria para los datos entre programas. Cuando hablamos de memoria debemos hacer distinción entre: La memoria de SAP y la memoria de ABAP.
La memoria de 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 cuando hablamos de memoria SAP es 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 utilizar para pasar datos de un programa a otro, ya sea dentro de una sesión o en otra sesión.
Cuando se trata de la memoria de SAP implementamos SET PARAMETER ID y GET PARAMETER ID para intercambiar datos, de modo que con la sentencia SET vamos a asignar valores a los ID de parámetros de los campos de las pantallas de 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 interna utilizando las sentencias IMPORT y EXPORT. Los datos dentro de esta memoria permanecen intactos durante una secuencia de llamadas a programas.
La sentencia SET PARAMETER ID se utiliza para el envío de parámetros en la llamada a una transacción (SET PARAMETER ID<pid>FILED<f>. 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. Estos valores se conservan incluso cuando el usuario sale del programa. La transacción VA01 es obligatoria de ingresar en el campo clase de pedido. Si seleccionamos el campo clase de pedido y presionamos la tecla F1 vamos a visualizar la documentación del campo de la pantalla. Si hacemos clic en el botón de información técnica, entonces vamos a visualizar los datos técnicos y entre ellos encontramos que el ID de parámetro para el campo clase de pedido que es AAT. Vamos a utilizar 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. Para cumplir con este objetivo creamos el programa ABAP ZTEST_SET_PARAMETER. La sentencia SET PARAMETER ID'AAT' FIELD 'CMR' asigna al ID de parámetro 'ATT' el valor 'CRM'. 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. Si ejecutamos el programa ZTEST_SET_PARAMETER vamos a ver efectivamente acceder directamente a la segunda pantalla de la transacción VA01, habiendo cargado en la primer pantalla el valor CRM para el campo clase de pedido. Por otro lado, la sentencia 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. La sintaxis de la sentencia GET PARAMETER ID es: GET PARAMETER ID<pid>FIELD<f>. Para crear el programa ATEST_GET_PARAMETER y lo que hacemos es pasar el valor CMR al ID de parámetro AAT mediante la sentencia SET PARAMETER ID y luego recuperamos el valor que acabamos de pasar mediante la ejecución de la sentencia GET PARAMETER ID. Si ejecutamos el programa ZTEST_GET_PARAMETER vamos a ver impreso en la pantalla el contenido de la variable V_VALOR.
La memoria de ABAP, para subir o exportar datos a la memoria ABAP vamos a utilizar la sentencia EXPORT. (EXPERTO<campo>TO MEMORY ID <id_unico>. El ID que se utiliza debe ser único ya que identifica a ese dato de la memoria ABAP. Para bajar o importar los datos de la memoria ABAP utilizamos la sentencia IMPORT. (IMPORT<campo>FORM MEMORY ID<id_unico>. Se puede exportar e importar tanto 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 utilizada y esto lo hacemos con la sentencia FREE MEMORY. Para que la exportación e importación de datos funcione correctamente se debe utilizar la misma sesión de memoria o ejecución. ahora bien si pasamos datos entre programas entonces podemos utilizar la sentencia SUBMIT para poder llamar a un programa dentro de la ejecución de otro programa. Luego en el programa que importa los datos ejecutaremos la sentencia IMPORT.
 
 
 
Sobre el autor
Publicación académica de Ezequiel Hurtado Benitez, en su ámbito de estudios para la Carrera Consultor ABAP.
Ezequiel Hurtado Benitez
Profesión: Ingeniero Mecatrónico - Colombia - Legajo: FD18B
✒️Autor de: 45 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Ingeniero mecatrónico bilingüe con maestría en dirección de ventas y marketing empresarial, con conocimientos y experiencia en programación, diseño, elaboración y pruebas en proyectos de automatizació
Certificación Académica de Ezequiel Hurtado