✒️ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
ABAP Las sentencias INSERT, UPDATE, MODIFY y DELETE
Programa de ejercicio:
*&---------------------------------------------------------------------*
*& Report YABAP_USUARIOS_3_8
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT yabap_usuarios_3_8.
* Pantalla de selección
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_dni TYPE y_dni OBLIGATORY,
p_nomape TYPE y_nombre_ape,
p_estusu TYPE y_estado_usu,
p_dir TYPE y_direccion,
p_fecha TYPE y_nacimiento,
p_estciv TYPE y_estado_civil.
"Radiobutton P_OPE.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) text-002. "Crear
SELECTION-SCREEN POSITION 33.
PARAMETERS x_fal1 RADIOBUTTON GROUP cust.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) text-003. "Modificar
SELECTION-SCREEN POSITION 33.
PARAMETERS x_fal2 RADIOBUTTON GROUP cust.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) text-004. "Borrar
SELECTION-SCREEN POSITION 33.
PARAMETERS x_fal3 RADIOBUTTON GROUP cust.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
* Tabla interna de usuarios
DATA: ti_usuarios TYPE STANDARD TABLE OF yytabla_usuarios,
wa_usuarios LIKE LINE OF ti_usuarios.
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
*----------------------------------------------------------------------*
clear wa_usuarios.
wa_usuarios = p_dni.
SELECT *
FROM yytabla_usuarios
INTO wa_usuarios
WHERE dni = p_dni.
ENDSELECT.
IF sy-subrc EQ 0.
IF x_fal1 = 'X'. "Op. Creación registro
MESSAGE s002(z_prueba) WITH 'El registro que intentas crear ya existe'.
ROLLBACK WORK.
ENDIF.
IF x_fal2 = 'X'. "Op. Modificación registro
CLEAR wa_usuarios.
wa_usuarios-dni = p_dni.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-nombre_ape = p_nomape.
wa_usuarios-estado_usu = p_estusu.
wa_usuarios-direccion = p_dir.
wa_usuarios-f_nacimiento = p_fecha.
wa_usuarios-estado_civil = p_estciv.
MODIFY yytabla_usuarios FROM wa_usuarios.
MESSAGE s011(z_prueba) WITH 'El registro se modifico correctamente'.
COMMIT WORK.
ENDIF.
IF x_fal3 = 'X'. "Op. Borrado registro
DELETE FROM yytabla_usuarios WHERE DNI = P_DNI.
MESSAGE s012(z_prueba) WITH 'El registro se elimino correctamente'.
COMMIT WORK.
ENDIF.
ELSE.
IF x_fal1 = 'X'. "Op. Creación registro
CLEAR wa_usuarios.
wa_usuarios-dni = p_dni.
wa_usuarios-mandt = sy-mandt.
wa_usuarios-nombre_ape = p_nomape.
wa_usuarios-estado_usu = p_estusu.
wa_usuarios-direccion = p_dir.
wa_usuarios-f_nacimiento = p_fecha.
wa_usuarios-estado_civil = p_estciv.
INSERT into yytabla_usuarios values wa_usuarios.
MESSAGE s010(z_prueba) WITH 'El registro se creo correctamente'.
COMMIT WORK.
ENDIF.
IF x_fal2 = 'X'. "Op. Modificación registro
MESSAGE s017(z_prueba) WITH 'El registro que intenta modificar no existe'.
ROLLBACK WORK.
ENDIF.
IF x_fal3 = 'X'."Op. Borrado registro
MESSAGE s018(z_prueba) WITH 'El registro que intenta borrar no existe'.
ROLLBACK WORK.
ENDIF.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de Lorena Amoretti, en su ámbito de estudios para la Carrera Consultor ABAP.
Lorena Amoretti
Profesión: Profesor Sup. Informática Aplicada - Argentina - Legajo: DE30K
✒️Autor de: 7 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: PartTime
Certificación Académica de Lorena Amoretti