我有一个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.
答案 0 :(得分:0)
对于第一个问题,我建议在INSERT之前使用密钥进行SELECT,以确保记录存在于表中,如果它确实显示了消息,则进行INSERT。对于第二个问题,您应该使用&#34; IF lv_data IS INITIAL&#34;。
答案 1 :(得分:0)
1)您可以使用关键字OBLIGATORY来强制字段。
PARAMETERS:pa_id type c OBLIGATORY。
2)尝试使用id.if sy-subrc&lt;&gt;从数据库中检索记录。 0然后插入记录,否则引发错误消息。