我有一个ABAP程序将记录添加到数据库中。我想检查数据库中是否有相同的标识号,如果有,则会引发错误消息。第二件事,如果用户传递id字段为空,我想引发一个错误消息。
我的方法添加记录到数据库
METHOD add.
DATA: IT_E TYPE TABLE OF ZE.
DATA:WA_E TYPE ZE.
IF sy-subrc EQ 0.
WA_E-ID = C_ID.
WA_E-NAME = C_NAME.
APPEND wa_e TO it_e.
INSERT ZE FROM TABLE it_e.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
TITEL = 'Message2'
TEXTLINE1 = 'Record Added Successfully.'.
IF sy-subrc <> 0.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
TITEL = 'Message2'
TEXTLINE1 = 'YOu cant use this id no'.
ENDIF.
DATA : ref_obj TYPE REF TO LCL_E.
主要部分START-OF-SELECTION.
IF ra_add EQ 'X'.
IF pa_id eq space.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
TITEL = 'Message2'
TEXTLINE1 = 'You cant pass id field empty'.
else.
CREATE OBJECT ref_obj
EXPORTING
im_id = pa_id
im_name = pa_name
CALL METHOD ref_obj->add.
endif.
对于第一个问题,我建议在INSERT之前使用键进行SELECT,以确保记录存在于表中,如果它确实显示消息,则进行INSERT。对于第二个问题,您应该使用"IF lv_data IS INITIAL"。
1)您可以使用关键字mandatory设置该字段。
PARAMETERS: pa_id type c mandatory .
2)尝试使用id从数据库检索记录。如果sy- subc <> 0则插入记录,否则引发错误消息。