✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
UNIDAD 3: DICCIONARIO DE DATOS
LECCIÓN 7: INSERT, UPDATE, MODIFY, DELETE y actualización y recuperación de la BD.
1) La sentencia INSERT.
La sentencia INSERT permite introducir nuevos registros a una base de datos. Por ejemplo, si quisiéramos introducir un nuevo registro en la tabla ZTABLA_USUARIOS haríamos lo siguiente:
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.
NOTA: 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:
INSERT ztabla_usuarios FROM TABLE ti_usuarios.
Si existe algún registro en la base de datos con igual clave que un registro en la tabla interna se producirá un error (SY-SUBRC distinto de cero).
2) La sentencia UPDATE.
La sentencia UPDATE permite actualizar el contenido de uno o varios registros de una tabla base de datos registros de una tabla base de datos. Por ejemplo, si quisiéramos actualizar un registro de una tabla base de datos haríamos lo siguiente:
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.
NOTA: Siempre después de un UPDATE se debe preguntar por el SY-SUBRC. Si es cero, el registro 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 que cumplan determinada condición, haríamos lo siguiente:
UPDATE ztabla_usuarios SET nombre_ape = 'Ezequiel Fernandez'
WHERE dni = '23547312'.
AUDIO: Al utilizar la sentencia UPDATE, es importante que ingresemos la clave de la tabla como condición de la actualización, ya que si no es probable que la actualización demore mucho tiempo.
Si quisiéramos actualizar todos los registros de la tabla ZTABLA_USUARIOS a partir del contenido de una tabla interna haríamos lo siguiente:
UPDATE ztabla_usuarios FROM TABLE ti_usuarios.
3) La sentencia MODIFY.
La sentencia MODIFY permite modificar el contenido de uno o varios registros de una tabla base de datos. Por ejemplo, si quisiéramos modificar un registro de una tabla base de datos haríamos lo siguiente:
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.
NOTA: Siempre después de un MODIFY se debe preguntar por el SY-SUBRC. Si es cero, el registro se actualizo correctamente, caso contrario, se produjo un error y el registro no se actualizo.
Si quisiéramos modificar todos los registros de la tabla ZTABLA_USUARIOS a partir del contenido de una tabla interna haríamos lo siguiente:
MODIFY ztabla_usuarios FROM TABLE ti_usuarios.
NOTA: Si el registro que se intenta modificar, no existe en la tabla, este se creará.
AUDIO: Al momento de impactar sobre una tabla base de datos, no es necesario de especificar el mandante, ya que este control es realizado en forma automática por SAP, siempre se procesara el mandante en uso. Si quisiéramos controlar manualmente el mandante en una actualización de una tabla base de datos utilizaremos la cláusula CLIENT SPECIFIED.
4) La sentencia DELETE.
La sentencia DELETE permite borrar el contenido de uno o varios registros de una tabla base de datos. Por ejemplo, si quisiéramos borrar un registro de una tabla base de datos haríamos lo siguiente:
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.
NOTA: Siempre después de un DELETE se debe preguntar por el SY-SUBRC. Si es cero, el registro se borró correctamente, caso contrario, se produjo un error y el registro no se borró. La cantidad de registros borrados se guarda en SY-DBCNT.
Si quisiéramos borrar los registros de la tabla ZTABLA_USUARIOS que cumplan determinada condición, haríamos lo siguiente:
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 haríamos lo siguiente:
DELETE ztabla_usuarios FROM TABLE ti_usuarios.
AUDIO: Es importante que las instrucciones INSERT, DELETE, MODIFY y UPDATE deben ser utilizada lo menor posible, siempre se deben intentar insertar o modificar datos mediante transacciones estándar de SAP o mediante las técnicas de BATCH INPUT o BAPIS, esto se debe que no siempre es fácil conocer toda la estructura de la base de datos de SAP.
5) Actualización y recuperación de una base de datos.
Para finalizar una unidad de procesamiento lógico LUW (unidad lógica de procesamiento de una base de datos) de base de datos se utiliza un COMMIT WORK (se utiliza para confirmar los cambios realizados sobre una base de datos. Si se le agrega la cláusula AND WAIT el programa se para hasta que la tarea de actualización termina), que realiza un update físico en la base de datos, haciendo irrevocable cualquier modificación en la base de datos.
Si deseamos deshacer todas las operaciones realizadas sobre la base de datos desde el último COMMIT WORK, realizaremos un ROLLBACK WORK (se utiliza para deshacer los cambios realizados sobre una base de datos. Si se le agrega la cláusula AND WAIT el programa se para hasta que la tarea de actualización termina).
INSERT into ztabla_usuarios values wa_usuarios.
IF sy-subrc EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
NOTA: 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 Jesus Robinson Cruz Monroy, en su ámbito de estudios para la Carrera Consultor ABAP.
Jesus Robinson Cruz Monroy
Profesión: Ingeniero de Sistemas - Peru - Legajo: RP21W
✒️Autor de: 74 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado del módulo:
Certificación Académica de Jesus Cruz