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 MAXid )
    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로 치면 바로 입력가능한 프로그램으로 연결된다.

AND