ABAP 코딩 (4) Internal Table 레코드 조회, 수정, 추가 명령어 , sy-subrc

빵섭·2024년 8월 4일
0

💻 SYNC-ABAP 코딩

목록 보기
4/9
post-thumbnail

🌞 Internal table 값 추가, 수정, 삭제


🌞 실습

💡 [ 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.
profile
ABAP / SAP

0개의 댓글