셜록이2

VALUE #( FOR ) 본문

ABAP/New Syntax

VALUE #( FOR )

셜록누나 2026. 7. 9. 11:39

before

WHEN gv_all_node.
  LOOP AT gt_data INTO gs_data WHERE belnr IS NOT INITIAL.
    APPEND gs_data TO gt_data_disp.
  ENDLOOP.

WHEN gv_ar_node.
  LOOP AT gt_data INTO gs_data WHERE ar_ap = 'AR' AND belnr IS NOT INITIAL.
    APPEND gs_data TO gt_data_disp.
    gv_check_node = 'AR'.
  ENDLOOP.

WHEN gv_ap_node.
  LOOP AT gt_data INTO gs_data WHERE ar_ap = 'AP' AND belnr IS NOT INITIAL.
    APPEND gs_data TO gt_data_disp.
    gv_check_node = 'AP'.
  ENDLOOP.

 

After

WHEN gv_all_node.
  gt_data_disp = VALUE #( FOR ls IN gt_data
                           WHERE ( belnr IS NOT INITIAL )
                           ( ls ) ).

WHEN gv_ar_node.
  gt_data_disp = VALUE #( FOR ls IN gt_data
                           WHERE ( ar_ap = 'AR' AND belnr IS NOT INITIAL )
                           ( ls ) ).
  gv_check_node = 'AR'.

WHEN gv_ap_node.
  gt_data_disp = VALUE #( FOR ls IN gt_data
                           WHERE ( ar_ap = 'AP' AND belnr IS NOT INITIAL )
                           ( ls ) ).
  gv_check_node = 'AP'.

 

 

After (신문법 방식): VALUE #( FOR ... ) 문법은 결과값을 한 번에 생성합니다. 데이터를 한 줄로 정의하므로 가독성이 매우 높고, 무엇보다 gt_data_disp의 이전 데이터를 자동으로 초기화하고 새로운 데이터로 덮어쓰기 때문에 별도의 CLEAR나 REFRESH가 필요 없다.