SAP ABAP/ABAP Dictionary

ABAP - ITAB에서 레코드 삭제

Hyeon IT 2024. 6. 10. 18:20

 

위 코드는 gs_sbook에 담긴 데이터 중 Custtype이 P인 레코드를 찾아 삭제하는 코드다.

LOOP AT gt_sbook INTO gs_sbook WHERE invoice = 'X'
			    	  OR smoker  = 'X'.
                                  
"Custtype P인 레코드 삭제"
  CASE 'P'.
  	WHEN gs_sbook-custtype.
  	   DELETE gt_book INDEX sy-tabix.
       CONTINUE.
  ENDCASE.
  
  gs_sbook-billing = 'X'.
  
  MODIFY gt_sbook FROM gs_sbook INDEX sy-tabix.
  Transporting billing.
  
ENDLOOP.

 

gt_sbook의 데이터를 invoice 혹은 smoker의 조건 값을 찾아 gs_sbook으로 하나 씩 읽는다.

 

CASE문에  DELETE를 추가해서 일치하는 값을 찾아 삭제한다.

 

더 적은 로직 수행을 위해 미리 삭제하고 조회한다.

 

Continue를 넣어서 해당 조건에 대한 작업을 Skip한다.

DELETE gt_sbook WHERE invoice = 'X'
		   OR smoker  = 'X'.

만약 DELETE에 조건을 추가하고 싶다면 WHERE 조건문을 추가할 수 있다.