Ⅰ. ERP/9. TIP
[ABAP_TIP] 데이터 저장할때 조금 더 안정적이고 효율적인 코드
초록활명수
2024. 1. 26. 09:55
728x90
나는 사실 아래처럼 코딩해왔었음.. 다 때려넣어..
WHEN 'SAVE'.
PERFORM save_data.
근데 많은 프로그램이 이렇게 하길래 나도 바꿔보려고 정리함.
"저장 전에 데이터 체크 (있는지~ 저장해도 되는지~ 저장하면 안될 경우 GV_EXIT에 X처리)
PERFORM PRE_CHECK_SAVE_DATA.
CHECK GV_EXIT IS INITIAL.
PERFORM POPUP_TO_CONFIRM USING TEXT-PT1
TEXT-QT1.
CHECK GV_ANSWER EQ '1'.
* 저장하는 perform
PERFORM SAVE_DATA_REQ.
FORM popup_to_confirm USING pv_title
pv_quest.
"-- call popup
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = pv_title "TEXT-PT1
* DIAGNOSE_OBJECT = ' '
text_question = pv_quest "TEXT-QT1
* TEXT_BUTTON_1 = 'Ja'(001)
* ICON_BUTTON_1 = ' '
* TEXT_BUTTON_2 = 'Nein'(002)
* ICON_BUTTON_2 = ' '
* DEFAULT_BUTTON = '1'
* DISPLAY_CANCEL_BUTTON = 'X'
* USERDEFINED_F1_HELP = ' '
* START_COLUMN = 25
* START_ROW = 6
* POPUP_TYPE =
* IV_QUICKINFO_BUTTON_1 = ' '
* IV_QUICKINFO_BUTTON_2 = ' '
IMPORTING
answer = gv_answer
* TABLES
* PARAMETER =
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " POPUP_TO_CONFIRM
저장하는 소스는 Try 문에 넣기 약속
TRY .
"__ 입력 데이터
INSERT zsdt123 FROM TABLE lt_123.
MESSAGE s000 WITH TEXT-s01.
CATCH cx_sy_open_sql_error INTO DATA(lr_error).
ROLLBACK WORK.
MESSAGE s000 WITH lr_error->get_text( ) DISPLAY LIKE 'E'.
gv_exit = abap_true. EXIT.
ENDTRY.
728x90