✒️ABAP La actualización y la recuperación de una tabla base de datos
ABAP La actualización y la recuperación de una tabla base de datos
La actualización y la recuperación de una tabla base de datos
Cuando realizamos cambios a los datos que se encuantran almacenados en las tablas que forman la base de datos de SAP, estos cambios no se materializan en la base de datos hasta que son confirmados. Para finalizar una unidad procesamiento logico LUW de base de datos se utiliza la sentencia COMMIT WORK, que realiza un update en la base de datos, haciendo irrevocable cualquier modificación en la misma.
Ahora bien si desiamos deshacer todas las operaciones realizadas sobre la base de datos desde la ejecución en la última sentencia COMMIT WORK entonces ejecutamos la sentencia ROLLABACK WORK.
Luego de insertar un registro en la tabla base de datos ZTABLA_USUATIOS debemos debemos preguntar por el contenido de la variable del sistema SY-SUBRC, el cual sera cero si el registro se insertó correctamente y en caso de producirse un error al momento de incertar, el contenido del SY-SUBRC será distinto a cero.
* Isertamos 1 registro en ZTABLA_USUARIO
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni ='21727679'.
wa_usuarios-nombre_ape ='Juan Graco'.
wa_usuarios-estado_usu ='A'.
INSERT INTO ztabla_usuarios VALUES wa_usuarios.
IF sy-subrc EQ 0.
COMMIT WORK.
ELSE.
ROLLABACK WORK.
ENDIF.
Despues de ejecutar las sentencias INSERT. MODIFY, UPDATE o DELETE realizar un COMMIT WORK y ROLLBACK WORK para confirmar los cambios realizados de bese de datos, en caso que el contenido de la variable del sistema SY-SUBRC sera cero o para volver atrás los cambios realizados, en caso que el contenido de la variable del sistema SY-SUBRC sea distinto a cero.
Colocamos un breakpoint en la linea de código 25 del progama de prueba, que es donde se analiza el contenido de la variable del sistema SY-SUBRC, luego de la ejecución de la sentencia INSERT.
Al ejecutar el programa, el procesamiento se detiene en el breakpoint luego de la ejecución de la sentencia INSERT y verificamos que el contenido de la variable del sistema SY-SUBRC es cero por lo que la sentencia INSERT se ejecutó correctamente. Si ferificamos el contenido de la tabla base de datos ZTABLA_USUARIOS en la transación SE16 comprobramos que todavia el cambio no importó en la base de datos a pesar que ya se ejecutó la sentencia INSERT. Si hacemos clic en el icono refrescar comprobamos que no se actualiza el contenido de la base de datos con el nuevo registro. Ejecutamos paso a paso el programa hasta pasar la linea corrosponfiente al COMMIT WORK.
Ahora vamos a chequear el contenido de la tabla base de datos ZTABLA_USUARIOS en la transación SE16 correspondiente al browser de datos y verificamos que ahora sí, el registro que agregamos de visualiza en la tabla.
Comprobamos que los datos actualizan en la tabla base de datos ZTABLA_USUARIOS luego de la ejecución de la sentencia COMMIT WORK. Cuando un programa finaliza su ejecución se ejecuta automáticamente la sentencia COMMIT WORK por lo que en ese momento también se confirman los cabios a la base de datos.
Que sucede cundo se ejecutamos la sentencia ROLLBACK. Para ello barramos de la tabla base de datos ZTABLA _USUARIOS el nuevo registro que acabamos de insertar, volvemos a ejecutar el programa de prueba y detenemos su ejecución en el breakpoint. Vamos a modificar el contenido de la variable del sistema SY-SUBRC por debug y le vamos asigmar 4 en lugar de cero. Y esto hace que se ejecute la sentencia ROLLBACK WORK. Si ahora verificamos el contenido de la tabla base de datos ZTABLA_USUARIOS en el browser de datos correspondiente a la transacción SE16 veamos que no se actualizó el contenido de la tabla luego de la ejecución de la sentencia ROLLBACK WORK
 
 
 
Sobre el autor
Publicación académica de Javier Miguel Angel Barcelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Miguel Angel Barcelo
Profesión: Militar - Argentina - Legajo: DQ34X
✒️Autor de: 107 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: PartTime
Certificación Académica de Javier Angel