✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
LECCIÓN 7 SENTENCIAS: INSERT – UPDATE – MODIFY – DELETE y ACTUALIZACIÓN Y RECUPERACIÓN DE LA BD.
7. 1 INSERT: permite el ingreso de registros a la BD.
Caso 1. Inserto un registro.
* Inserto 1 registro en ZTABLA_USUARIOS
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.
Caso 2. Inserto todos los registros de una tabla.
* Inserto en la ZTABLA_USUARIOS le contenido de TI_USUARIOS
INSERT ztabla_usuarios FROM TABLE ti_usuarios.
Si existe 1 registro con igual clave en la tabla interna al de la tabla BD (destino) se produce un error y SY-SUBRC será <> 0.
7.2 UPDATE: Permite actualizar el contenido de uno o varios registros de una tabla BD.
Caso 1. Actualizo un registro.
* Actualizo un registro de la tabla ZTABLA_USUARIOS
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '21727679'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'I'.
UPDATE ztabla_usuarios FROM wa_usuarios.
Caso 2. Actualizo un registro que cumpla cierta condición (UPDATE …. SET)
* Actualizo el nombre y apellido del usuario con Dni 23547312
UPDATE ztabla_usuarios SET nombre_ape = 'Ezequiel Fernandez'
WHERE dni = '23547312'.
Se debe utilizar el campo clave para la condición caso contrario la actualización podrá demorarse considerablemente.
Caso 3. Actualizo la Tabla BD con todos los registros de una Tabla Interna.
* Actualizo ZTABLA_USUARIOS con la tabla interna TI_USUARIOS
UPDATE ztabla_usuarios FROM TABLE ti_usuarios.
7.3 MODIFY: permite modificar el contenido de uno o varios registros de la BD.
Caso 1. Modifico un registro.
* Modifico un registro en ZTABLA_USUARIOS
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '21727679'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'N'.
MODIFY ztabla_usuarios FROM wa_usuarios.
Caso 3. Modifico todos los registros de una Tabla BD a partir de una Tabla Interna
* Modifico los registros de ZTABLA_USUARIOS con TI_USUARIOS
MODIFY ztabla_usuarios FROM TABLE ti_usuarios.
Si el registro no existe se crea.
7.4 DELETE: permite ELIMINARr el contenido de uno o varios registros de la BD.
Caso 1. Elimino un registro.
* Borro un registro de la tabla ZTABLA_USUARIOS
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '21727679'.
wa_usuarios-nombre_ape = 'Juan Graco'.
wa_usuarios-estado_usu = 'N'.
DELETE ztabla_usuarios FROM wa_usuarios.
La cantidad de registros borrados se guarda en SY-DBCNT
Caso 2. Elimino un registro que cumpla cierta condición.
* Borro de ZTABLA_USUARIOS el registro con dni = '23547312'
DELETE FROM ztabla_usuarios WHERE dni = '23547312'.
Caso 3. Elimino todos los registros de una Tabla BD a partir de una Tabla Interna
* Borro ZTABLA_USUARIOS con la tabla interna TI_USUARIOS
DELETE ztabla_usuarios FROM TABLE ti_usuarios.
7.4 ACTUALIZACIÓN – RECUPERACIÓN DE LA BD.
· Si se le agrega la cláusula AND WAIT el programa se para hasta que la tarea de actualización termina.
· Se debe tener en cuenta que si no se utiliza la sentencia COMMIT en el programa, el programa de todas formas va a realizar los cambios permanentes en la base de datos, la sentencia COMMIT se utiliza mas que todo para asegurar que se guarden los datos.
Código Ejemplo:
* Inserto en la ZTABLA_USUARIOS le contenido de TI_USUARIOS
INSERT into ztabla_usuarios values wa_usuarios.
IF sy-subrc EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de Gustavo Bolivar, en su ámbito de estudios para la Carrera Consultor ABAP.
Gustavo Bolivar
Profesión: Ing Sistemas - Chile - Legajo: EU47Z
✒️Autor de: 45 Publicaciones Académicas
🎓Egresado del módulo:
Presentación:
Enfocado en programación sap abap.
Certificación Académica de Gustavo Bolivar