✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
INSERT, UPDATE, MODIFY, DELETE y actualización y recuperación de la BD
- La sentencia INSERT
INSERT: Permite introducir nuevos registros a una BD.
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '12345678'.
wa_usuarios-nombre_ape = 'Sandra Bernabe'.
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, si no, se produjo un error y el registro no se insertó.
Para introducir los registros de una tabla interna:
INSERT ztabla_usuarios FROM TABLE ti_usuarios.
Si hay algún registro de la BD con igual clave que un registro en la tabla interna se produce un error de ejecución en el programa.
- La sentencia UPDATE
UPDATE: Permite actualizar el contenido de uno o varios registros de una tabla BD.
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '12345678'.
wa_usuarios-nombre_ape = 'Sandra Bernabe'.
wa_usuarios-estado_usu = 'A'.
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 actualizó correctamente, si no, se produjo un error y el registro no se actualizó.
Si queremos actualizar los registros de la tabla en donde se cumplan determinadas condiciones:
UPDATE ztabla_usuarios SET nombre_ape = 'Sandra Bernabe' WHERE dni = '12345678'.
Si quisiéramos actualizar todos los registros de la tabla a partir del contenido de una tabla interna:
UPDATE ztabla_usuarios FROM TABLE ti_usuarios.
- La sentencia MODIFY
MODIFY: Permite modificar el contenido de uno o varios registros de una tabla BD.
Para modificar un registro de la tabla BD:
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '12345678'.
wa_usuarios-nombre_ape = 'Sandra Bernabe'.
wa_usuarios-estado_usu = 'A'.
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 modificó correctamente, si no, se produjo un error y el registro no se modificó.
Para modificar el contenido de una tabla a partir del contenido de una tabla interna:
MODIFY ztabla_usuarios FROM TABLE ti_usuarios.
Si el registro que se quiere modificar no existe en la tabla este se creará.
Al momento de impactar sobre una tabla BD no es necesario especificar el mandante, esto se lo hace automáticamente SAP. Si quisiéramos controlar el mandante utilizamos la cláusula CLIENT SPECIFY.
- La sentencia DELETE
DELETE: Permite borrar el contenido de uno o varios registros de una tabla BD.
Para borrar un resgistro de la tabla BD:
CLEAR wa_usuarios.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-dni = '12345678'.
wa_usuarios-nombre_ape = 'Sandra Bernabe'.
wa_usuarios-estado_usu = 'A'.
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 eliminó correctamente, si no, se produjo un error y el registro no se eliminó. La cantidad de registros borrados se guarda en SY-DBCNT.
Para borrar los registros de una tabla donde se cumpla cierta condición:
DELETEFROM ztabla_usuarios WHERE dni = '12345678'.
Para borrar todos los registros de la tabla a partir del contenido de una tabla interna:
DELETE ztabla_usuarios FROM TABLE ti_usuarios.
Es importante recordar que las instrucciones INSERT, UPDATE, MODIFY y DELETE deben de ser usadas lo menor posible, es recomendable realizar todas estas acciones mediante las transacciones estándar de SAP o mediante las técnicas de BATCH INPUT.
- Actualización y recuperación de una base de datos
PAra finalizar una unidad de procesamiento lógico (LUW) de BD se utiliza COMMIT WORK, que realiza un update físico en la BD, haciendo irrevocable cualquier modificación en la BD.
Para deshacer todas las operaciones realizadas sobre la BD desde el último COMMIT WORK realizamos un ROLLBACK WORK.
INSERT into ztabla_usuarios values wa_usuarios.
IF sy-subrc EQ 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
Es conveniente realizar un COMMIT WORK y ROLLBACK WORK después de un INSERT, UPDATE, MODIF o DELETE.
 
 
 
Sobre el autor
Publicación académica de Juan Rodrigo Meza Avina, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Rodrigo Meza Avina
Profesión: Lic. Diseño Gráfico - Mexico - Legajo: HV85J
✒️Autor de: 99 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado de los módulos:
Certificación Académica de Juan Meza