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
'Ⅰ. ERP > 9. TIP' 카테고리의 다른 글
[SAP_TIP] LSMW로 데이터 쉽게 변경하는 방법 (1) | 2024.09.24 |
---|---|
[ABAP_TIP] Function TOP에 쓰면 좋은 Function들 (0) | 2024.09.24 |
[SAP ABAP_TIP] 데이터 로딩 시 아래 로딩 메시지 출력되는 구문 (0) | 2023.08.22 |
[SAP ABAP] FIELD SYMBOL써서 유동적으로 필드 변경해서 활용하는 방법 (0) | 2023.03.30 |
[SAP TIP] 알고 있으면 좋은 TCODE (0) | 2022.11.15 |