기존 Source

LOOP AT lt_base INTO ls_base.
  
  MOVE-CORRESPONDING ls_base TO ls_data.

  READ TABLE lt_f4 INTO ls_f4 WITH KEY field1 = ls_data-field1

  MOVE ls_f4-field2 TO ls_data-field2

  APPEND ls_data TO lt_data

ENDLOOP.

New syntax 사용

  1. lookup table 은 sorted, hashed Table 이면서 Key 가 있어야함.
  2. BASE 사용 불가
  3. Lookup Table 에 있으면 값이 변경 되고 없으면 기존값 유지
  4. Lookup Table 에 있어도 전달할 Table 에 필드가 없으면 전달 불가
  5. Lookup Table 이랑 Mapping, Exact 사용 가능
lt_data = CORRESPONDING #( lt_base FROM lt_f4 USING field1 = field1 )


활용 예제

BEGIN OF line,
  carrid TYPE sflight-carrid,
  currency TYPE sflight-currency"
  text TYPE char100,
END OF line

DATA : It sflight TYPE STANDARD TABLE OF line WITH EMPTY KEY,
It scarr TYPE HASHED TABLE OE line WITH UNIQUE KEY carrid.

SELECT carrid,
                currcode AS currency,
               'ABC' AS text
   FROM scarr
WHERE carrid IN ( 'AA', 'AZ' )
INTO CORRESPONDING FIELDS OF TABLE It scarr.

SELECT carrid
   FROM sflight
ORDER BY carrid, connid, fldate
INTO CORRESPONDING FIELDS OF TABLE @lt sflight.

It sflight = CORRESPONDING #( lt_sflight FROM It _scarr USING carrid = carrid )


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기