REPORT zdh_test_10day_2 MESSAGE-ID zpabap06_message.
*키값을 제외한 나머지 필드를 파라미터로 받음
TABLES : ztrecord_11.
*스트럭쳐선언
DATA : gs_list TYPE ztrecord_11.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-007.
PARAMETERS : p_name LIKE ztrecord_11-name,
p_post LIKE ztrecord_11-post,
p_erdat LIKE ztrecord_11-erdat,
p_pay LIKE ztrecord_11-pay,
p_waers LIKE ztrecord_11-waers DEFAULT 'KRW',
p_fee LIKE ztrecord_11-fee.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
CLEAR gs_list.
*가장최근에 생성한 아이디를 가져옴
SELECT SINGLE MAX( id )
INTO gs_list-id
FROM ztrecord_11.
IF sy-subrc = 0.
gs_list-id = gs_list-id + 1. "새로 생성된 사번
ELSE.
gs_list-id = '1'.
ENDIF.
*아이디 앞에 0을 붙여 자리수를 채운다
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = gs_list-id
IMPORTING
output = gs_list-id.
*받아온 파라미터값들을 스트럭쳐에 넣어줌.
MOVE : p_name TO gs_list-name,
p_post TO gs_list-post,
p_erdat TO gs_list-erdat,
p_pay TO gs_list-pay,
p_waers TO gs_list-waers,
p_fee TO gs_list-fee.
INSERT ztrecord_11 FROM gs_list.
IF sy-subrc = 0.
COMMIT WORK AND WAIT. "디비에 적용
MESSAGE s002 with 'table insert 성공'.
* write: '성공'.
ELSE.
ROLLBACK WORK. "디비적용취소
MESSAGE s002 with 'table insert 실패'.
* write : '실패'.
ENDIF.
위와 같이 프로그램을 만들고 트랜잭션을 추가한다.
프로그램 오른쪽 마우스 클릭 -> create -> transaction -> 코드를 알아서 쓰고 확인
t-code를 ZDH_BDC라 하였다. t-code입력폼에 /ozdh_bdc로 치면 바로 입력가능한 프로그램으로 연결된다.