✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
INSERT
Introduce nuevos registros a una BD
Ejm, Insertando un registro en la tabla ztabla_usuarios
Clear wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '41314789'.
wa_usuarios-nombre_ape = 'Juan Grace'.
a_usuarios-estado_usu = 'A'.
INSERT Into ztabla_usuarios values wa_usuarios.
- Despues de ejecutar una sentencia Insert, Update, Modify o Delete se debe preguntar sl SY-SUBRC, si es 0 el registro se inserto o borro o actualizo , etc, de lo contrario no se graba y es diferente a 0
- Introduciendo todos los registros de una tabla interna.
INSERT ztabla_usuarios FROM TABLE ti_usuarios.
Si existe alguna clave igual en la bade de datos y la tabla interna , se producira un error de ejecución del programa.
UPDATE
Permite actualizar uno o varios registros de una tabla de BD , Ejmplo
Clear wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '41314589'.
wa_usuarios-nombre_ape = 'Diana Chumacero'.
wa_usuarios-estado_usu = '1'.
Update ztabla_usuarios From wa_usuarios.
*Actualizando el nombre y apellido del usuario con DNI 41314589
Update ztabla_usuarios set nombre_ape = 'Asucena del milagro' where dni = '41314589'.
- Actualizando todos los registros de la tabla ztabla_usuarios a partir del contenido de una tabla interna.
UPDATE ztabla_usuarios from Table ti_usuarios.
MODIFY
Permite modificar uno o varios registros de una tabla de BD , ejemplo.
Modificar un registro en Ztabla_usuarios
Clear wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '41314589'.
wa_usuarios-nombre_ape = ' diana chumacero'.
wa_usuarios-estado_usu = 'N'.
MODIFY ztabla_usuarios FROM wa_usuarios.
- Si quisiéramos modificar todos los registros de la tabla ztabla_usuarios a partir del contenido de una tabla interna .
MODIFY ztabla_usuarios from table ti_usuarios.
Si el registro que se intenta modificar no existe este se creara
- Al momento de impactar una BD no es necesario especificar el mandante ya que SAP realiza este control de forma automatica,
Client Specifique - Es una clausula que permite especificar el mandante, si queremos obtener datos de un mandante diferente al que estamos trabajando.
DELETE
PERMITE BORRAR UNO O VARIOS REGISTROS DE UNA TABLA DE BD, Ejemplo
Borrar un registro de la tabla Ztabla_usuarios
Clear Wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '41314589'.
wa_usuarios-nombre_ape = 'Diana chumacero'.
wa_usuarios-estado_usu = 'N'.
DELETE ztabla_usuarios From wa_usuarios.
- SY-DBCNT - Almacena la cantidad de registros borrados.
Borrar de ztabla_usuarios el registro con dni '41314589'.
DELETE FROM ZTABLA_USUARIOS WHERE DNI = '41314589'.
- Borrar todos los registros de la tabla ztabla_usuarios a partir de una tabla interna .
DELETE ZTABLA_USUARIOS FROM Table ti_usuarios.
- Insert, Modify, Delete, Update , se deben usar lo menor posible , se debe usar las transacciones estandar de SAP o las tecnicas bapis, ching imput, esto se debe a que no siempre se conoce la compleja estructura de la BD de SAP y asi nos aseguramos de no cometer una inconsistencia en la BD.
ACTUALIZACIÓN Y RECUPERACIÓN DE LA BASE DE DATOS
COMMIT WORK - Usado para finalizar una unidad de procesamiento lógico LUW de BD, Realiza un UPDATE fisico en la BD , haciendo irrevocable cualquier modificación en la base de datos.
ROLLBACK WORK - Deshace todas las operaciones realizadas sobre la base de datos desde el ultimo COMMIT WORK
Ejemplo
Insertar reguistros en la BD ztabla_usuarios.
INSERT into ztabla_usuarios values wa_usuarios.
if sy-subrc EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
- ES RECOMENDABLE USAR EL COMMIT WORK O EL ROLLBACK WORK DESPUES DE CUALQUIER SENTENCIA INSERT, UPDATE, MODIFY, DELETE.
 
 
 
Sobre el autor
Publicación académica de Victor Rodríguez Azcárate, en su ámbito de estudios para la Carrera Consultor ABAP.
Victor Rodríguez Azcárate
Profesión: Ingeniero de Sistemas - Peru - Legajo: AK14S
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Victor Rodríguez