✒️ABAP / Las sentencias INSERT, UPDATE, MODIFY y DELETE Por Mayra Pino Rodriguez
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE

INSERT, UPDATE, MODIFY, DELETE Y ACTUALIZACION Y RECUPERACION DE LA BD
1. LA SENTENCIA INSERT
Permite introducir nuevos registros a una BD.
Ej:
* 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.
Siempre después de un INSERT se debe preguntar por el SY-SUBRC.
Si es cero, el registro se insertó correctamente, caso contrario, se produjo un error y el registro no se insertó.
Si quisiéramos introducir todos los registros de una tabla interna haríamos lo siguiente:
* Inserto en la ZTABLA_USUARIOS el contenido de TI_USUARIOS
INSERT ztabla_usuarios FROM TABLE ti_usuarios.
2. LA SENTENCIA UPDATE
Permite actualizar el contenido de uno o varios registros de una tabla BD.
Ej:
* 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.
Siempre después de un UPDATE se debe preguntar por el SY-SUBRC.
Si es cero, se actualizo correctamente, caso contrario, se produjo un error y el registro no se actualizo.
- Si quisiéramos actualizar los registros de la tabla ZTABLA_USUARIOS q cumplan determinada condición:
Ej:
* Actualizo el nombre y apellido del usuario con DNI 23547312
UPDATE ztabla_usuarios SET nombre_ape = 'Ezequiel Fernandez'
WHERE dni = '23547312'.
Al utilizar la sentencia UPDATE para actualizar una tabla BD es importante q ingresemos la clave de la tabla como condición de la actualización ya q sino es probable q la actualización se demore mucho tiempo.
- Si quisiéramos actualizar todos los registros de la tabla ZTABLA_USUARIOS:
Ej:
* Actualizo ZTABLA_USUARIOS con la tabla interna TI_USUARIOS
UPDATE ztabla_usuarios FROM TABLE ti_usuarios.
3. LA SENTENCIA MODIFY
Permite modificar el contenido de uno o varios registros de una tabla BD:
Ej:
* 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.
Siempre después de un MODIFY se debe preguntar por el SY-SUBRC.
Si es cero, el registro se modifico correctamente, caso contrario, se produjo un error y el registro no se modifico.
- Si quisiéramos modificar todos los registros de la tabla ZTABLA_USUARIOS a partir del contenido de una tabla interna.
Ej:
* Modifico los registros de ZTABLA_USUARIOS CON TI_USUARIOS.
MODIFY ztabla_usuarios FROM TABLE ti_usuarios.
Si el registro q se intenta modificar, no existe en la tabla, esto se creará.
Al momento de impactar sobre una tabla BD no es necesario especificar el mandante ya q este control es realizado en forma automática por SAP, siempre se procesará el mandante en uso. Si quisiéramos controlar manualmente el mandante en una actualización de una tabla BD, utilizaremos la cláusula CLEAR SPECIFY, es decir, si queremos obtener o modificar datos de un mandante diferente al q estamos procesando.
4. LA SENTENCIA DELETE
Permite borrar el contenido de uno o varios registros de una tabla BD.
Ej:
* 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.
Siempre después de un DELETE se debe preguntar por el SY-SUBRC.
Si es cero, el registro se borro correctamente, caso contrario, se produjo un error y el registro no se borro.
La cantidad de registros borrado se guarda en SY-DBCNT.
- Si quiséramos borrar los registros de la tabla ZTABLA_USUARIOS q cumplan determinada condición:
Ej:
* Borro de ZTABLA_USUARIOS el registro con DNI = '23547312'.
DELETE FROM ztabla_usuarios WHERE dni = '23547312'.
- Si quisiéramos borrar todos los registros de la tabla ZTABLA_USUARIOS a partir del contenido de una tabla interna:
Ej:
DELETE ztabla_usuarios FROM TABLE ti_usuarios.
Es importante tener en cuenta q las instrucciones INSERT, DELETE, MODIFY, UPDATE deben ser utilizadas lo menor posible, siempre se debe intentar insertar o modificar datos mediante las transacciones estándar de SAP o mediante las tecnicas de BAPIS q aprenderemos mas adelante en el modulo de estudios, esto se debe a q no siempre es fácil conocer la compleja estructura de toda la BD de SAP y así nos aseguramos de no producir alguna inconsistencia en la BD.
5. ACTUALIZACION Y RECUPERACION DE UNA BD.
Para finalizar una unidad de procesamiento lógico LUW de BD se utiliza:
COMMIT WORK: q realiza un update físico en la BD, haciendo irrevocable cualquier modificación en la BD.
ROLLBACK WORK: para deshacer todas las operaciones realizadas sobre la BD desde el último COMMIT WORK.
Ej:
INSERT INTO ztabla_usuarios VALUES wa_usuarios.
IF sy-subrc EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
Es conveniente, después de un INSERT, MODIFY, UPDATE o DELETE realizar un COMMIT WORK Y ROLLBACK WORK.
 
 
 
Sobre el autor
Publicación académica de Mayra Maria Pino Rodriguez, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Mayra Maria Pino Rodriguez
Profesión: Licenciada Cibernética Matemática - Republica Dominicana - Legajo: RA62Z
✒️Autor de: 56 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Mayra Pino






Disponibilidad Laboral: FullTime


















