✒️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
Unidad n°3: El diccionario de datos
Lección n°9: La actualización y la recuperación de una tbd
Cuando se hacen cambios en datos almacenados en las tablas que forman las tbd de SAP, estos no se materializan hasta ser confirmados.
Para finalizar una unidad de procesamiento lógico LUW de base de datos se usa la sentencia COMMIT WORK, que hace un update físico en la base de datos, haciendo irrevocable cualquier modificación en la misma.
Ejecutar esta sentencia, es sinónimo de confirmas los cambios hechos a las tbd.
Para deshacer todas las operaciones hechas sobre la base de datos desde la ejecución de la última sentencia COMMIT WORK, entonces ejecutaremos ROLLBACK WORK.
EJ: luego de insertar un registro en la tbd "ztabla_usuarios" hay que preguntar por el contenido de la variable sy-subrc, que será 0 si el registro se insertó bien y en caso de producirse un error al momento de insertar, la variable será distinta de cero:
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '21722765'.
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
ENDIF.
**Es recomendable que despues de ejecutar "INSERT, MODIFY, UPDATE o DELETE" realicemos un COMMIT WORK o ROLLBACK WORK para confirmar los cambios hechos a la base de datos.
Ahora veamos cuando ejecutemos la lógica anterior y analizamos el paso a paso de la actualización en modo debugging.
Colocaremos un breakpoint en la línea del código 25 del programa de prueba, que es donde se analiza el contenido de la variable sy-subrc, luedo de la ejecución de la sentencia INSERT.
- Al ejecutar el programa, se detiene en el breakpoint luego del INSERT, y verificamos que el contenido de sy-subrc sea cero.
- Si verificamos el contenido de la tbd "ztabla_usuarios" en la trans SE16, comprobamos que todavía el cambio no impactó en la base de datos a pesar de que se ejecutó el INSERT.
- Si hacemos clic en el ícono Refrescar comprobaremos que no se actualiza el contenido de la tbd con el nuevo registro. Ejecutamos paso a paso el programa hasta pasar la línea correspondiente al COMMIT WORK.
- Ahora volvemos a chequear el contenido de la tbd en la trans SE16 (Browser de datos) y verificamos si el registro que agregamos se visualiza en la tabla.
**Cuando el programa finaliza su ejecución, se ejecuta automáticamente COMMIT WORK por lo que en ese momento también se confirman los cambios de la base de datos.
Ahora veamos el ROLLBACK WORK:
Borramos de la tbd el 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 sy-subrc por debug y le asignaremos 4 en lugar de cero; que hará que se ejecute el ROLLBACK WORK.
Si ahora verificamos el contenido de la tbd en el browser de datos (tran SE16), veremos que no se actualizó el contenido de la tabla luego de la ejecución de la sentencia.
 
 
 
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