💡 [ APPEND ]
DATA : BEGIN OF gs_airline, "WA 선언 carrid(2), carrname(10), END OF gs_airline, gt_airline LIKE TABLE OF gs_airline. " 위에 선언한 WA를 참고한 ITAB CLEAR : gs_airline. REFRESH : gt_airline. gs_airline-carrid = 'AA'. " WA에 값을 넣는다고 해서 ITAB 에 레코드가 추가되는 것은 아니다. gs_airline-carrname = 'America'. APPEND gs_airline TO gt_airline. " 반드시 APPEND 가 있어야 레코드가 추가된다. CLEAR gs_airline. gs_airline-carrid = 'KA'. APPEND gs_airline TO gt_airline. CLEAR gs_airline. CLEAR gt_airline.
❗ WA의 값을 넣었다고 하더라도
APPEND
가 없으면 데이터가 추가된 것이 아니다.
💡 [ READ TABLE ]
위에서 선언한 레코드를 읽어온 뒤, 확인
READ TABLE gt_airline INTO gs_airline INDEX 1. " ITAB의 1번 레코드를 가져온다. BREAK-POINT.
❗ Debugger를 통해 해당 테이블의 1번 레코드를 가져온 것을 확인할 수 있다.
💡 [ 데이터를 넣었는지 확인하는 방법 ]
⭐ ITAB 이나 WA에 값을 넣었을 때, 값이 들어가는지 IF문을 통해 확인할 수 있다.
[ 1. INITIAL ]
IF gs_airline iS INITIAL. " gs_airline 의 값이 없을 때, No data. 를 보여준다. WRITE 'No Data.'. ENDIF.
[ 2. sy-subrc ]
IF sy-subrc <> 0. WRITE 'No Data.'. ENDIF.
sy-subrc
는 직전의 데이터 에 값이 들어왔다면 0 을 보여준다
💡 [ APPEND, READ 실습 ]
[ 문 제 ]
[ 코 드 ]
DATA : gs_fbooking TYPE zc516t0034, " WA 선언 gt_fbooking TYPE TABLE OF zc516t0034. " zc516t0034 를 참조한 ITAB 선언 CLEAR : gs_fbooking. " 선언 뒤에 WA, ITAB 초기화 REFRESH : gt_fbooking. gs_fbooking-mandt = '100'. gs_fbooking-carrid = 'AA'. gs_fbooking-connid = 'AFLIGHT'. gs_fbooking-fldate = '20240701'. gs_fbooking-bookid = '10000001'. gs_fbooking-price = 1000. gs_fbooking-currcode = 'KRW'. gs_fbooking-airpfrom = '서울'. gs_fbooking-airpto = '부산'. gs_fbooking-customid = '1'. gs_fbooking-luggweight = 10. gs_fbooking-wunit = 'KG'. APPEND gs_fbooking TO gt_fbooking. " INDEX 1 추가 CLEAR gs_fbooking. gs_fbooking-mandt = '100'. gs_fbooking-carrid = 'BB'. gs_fbooking-connid = 'BFLIGHT'. gs_fbooking-fldate = '20240702'. gs_fbooking-bookid = '10000002'. gs_fbooking-price = 2000. gs_fbooking-currcode = 'KRW'. gs_fbooking-airpfrom = '서울'. gs_fbooking-airpto = '김포'. gs_fbooking-customid = '2'. gs_fbooking-luggweight = 20. gs_fbooking-wunit = 'KG'. APPEND gs_fbooking TO gt_fbooking. " INDEX 2 추가 CLEAR gs_fbooking. gs_fbooking-mandt = '100'. gs_fbooking-carrid = 'CC'. gs_fbooking-connid = 'CFLIGHT'. gs_fbooking-fldate = '20240703'. gs_fbooking-bookid = '10000003'. gs_fbooking-price = 3000. gs_fbooking-currcode = 'KRW'. gs_fbooking-airpfrom = '서울'. gs_fbooking-airpto = '여수'. gs_fbooking-customid = '3'. gs_fbooking-luggweight = 30. gs_fbooking-wunit = 'KG'. APPEND gs_fbooking TO gt_fbooking. CLEAR gs_fbooking. gs_fbooking-mandt = '100'. gs_fbooking-carrid = 'DD'. gs_fbooking-connid = 'DFLIGHT'. gs_fbooking-fldate = '20240704'. gs_fbooking-bookid = '10000004'. gs_fbooking-price = 4000. gs_fbooking-currcode = 'KRW'. gs_fbooking-airpfrom = '서울'. gs_fbooking-airpto = '여수'. gs_fbooking-customid = '4'. gs_fbooking-luggweight = 40. gs_fbooking-wunit = 'KG'. APPEND gs_fbooking TO gt_fbooking. CLEAR gs_fbooking. gs_fbooking-mandt = '100'. gs_fbooking-carrid = 'EE'. gs_fbooking-connid = 'EFLIGHT'. gs_fbooking-fldate = '20240705'. gs_fbooking-bookid = '10000005'. gs_fbooking-price = 5000. gs_fbooking-currcode = 'KRW'. gs_fbooking-airpfrom = '서울'. gs_fbooking-airpto = '대구'. gs_fbooking-customid = '5'. gs_fbooking-luggweight = 50. gs_fbooking-wunit = 'KG'. APPEND gs_fbooking TO gt_fbooking. " INDEX 3 추가 CLEAR gs_fbooking. READ TABLE gt_fbooking INTO gs_fbooking INDEX 1. " 1번 데이터 확인 IF sy-subrc = 0. WRITE gs_fbooking-carrid. ENDIF. READ TABLE gt_fbooking INTO gs_fbooking INDEX 2." 2번 데이터 확인 IF sy-subrc = 0. WRITE gs_fbooking-carrid. ENDIF. READ TABLE gt_fbooking INTO gs_fbooking INDEX 4. " 4번 데이터 확인 IF sy-subrc = 0. WRITE gs_fbooking-carrid. ENDIF.