SAP ABAP New Syntax 정리(After 7.40)

SAP ABAP New Syntax 정리(After 7.40)

Published
2020년 09월 03일
생성자
카테고리
SAP
태그
abap
SAP
new syntax
SAP_ABA 740
abap new syntax
sap new syntax
sap new abap
new abap
하위 카테고리
ABAP
SAP ABAP 컴포넌트가 7.40 이상이라면 아래 New Syntax를 사용할 수 있습니다.

0. 버전 보는 방법

  • 시스템 → 상태 → 제품버전내 세부사항
notion image

1. ABAP 7.40 Quick Reference

2. Data Statement 예제

Before 7.40
With 7.40
DATA text TYPE string. text = ABC.
DATA(text) = ‘ABC’.

3. Loop at into work area 예제

Before 7.40
With 7.40
DATA: ls_0001 TYPE pa0001. DATA: lt_0001 TYPE TABLE OF pa0001. LOOP AT lt_0001 INTO ls_0001. ENDLOOP.
DATA: lt_0001 TYPE TABLE OF pa0001. LOOP AT lt_0001 INTO DATA(ls_pa0001). ENDLOOP.

4. Loop at assigning 예제

Before 7.40
With 7.40
FIELD-SYMBOLS: TYPE any. DATA: lt_0001 TYPE TABLE OF pa0001. LOOP AT lt_0001 ASSIGNING . ENDLOOP
DATA: lt_0001 TYPE TABLE OF pa0001. LOOP AT lt_0001 ASSIGNING FIELD-SYMBOL(). ENDLOOP.

5. Read assigning 예제

Before 7.40
With 7.40
FIELD-SYMBOLS: TYPE any. DATA: lt_0001 TYPE TABLE OF pa0001 WITH HEADER LINE. READ TABLE lt_0001 ASSIGNING .
DATA: lt_0001 TYPE TABLE OF pa0001 WITH HEADER LINE. READ TABLE lt_0001 ASSIGNING FIELD-SYMBOL().

6. Read Table index 예제

Before 7.40
With 7.40
DATA: lt_0001 TYPE TABLE OF pa0001. DATA: ls_0001 TYPE pa0001. DATA: lv_index TYPE i. READ TABLE lt_0001 INDEX lv_index INTO ls_0001.
lv_index = 1. ls_0001 = lt_0001[ lv_index ].

7. Read Table with key 예제

Before 7.40
With 7.40
DATA: lt_0001 TYPE TABLE OF pa0001. DATA: ls_0001 TYPE pa0001. DATA: lv_pernr TYPE persno. DATA: lv_begda TYPE d. READ TABLE lt_0001 WITH KEY pernr = lv_pernr begda = lv_begda INTO ls_0001.
DATA: lt_0001 TYPE TABLE OF pa0001. DATA: ls_0001 TYPE pa0001. DATA: lv_pernr TYPE persno. DATA: lv_begda TYPE d. ls_0001 = lt_0001[ pernr = lv_pernr begda = lv_begda ].

8. Does record exist? 예제

Before 7.40
With 7.40
DATA: lt_0001 TYPE TABLE OF pa0001 WITH HEADER LINE. DATA: lv_pernr TYPE persno. READ TABLE lt_0001 INDEX 1 TRANSPORTING NO FIELDS. IF sy-subrc = 0. ENDIF.
DATA: lt_0001 TYPE TABLE OF pa0001 WITH HEADER LINE. DATA: lv_pernr TYPE persno. IF line_exists( lt_0001[ pernr = lv_pernr ] ). ENDIF.

9. Get table index 예제

Before 7.40
With 7.40
DATA: lt_0001 TYPE TABLE OF pa0001 WITH HEADER LINE. DATA: lv_tabix TYPE sy-tabix. DATA: lv_pernr TYPE persno. READ TABLE lt_0001 TRANSPORTING NO FIELDS. lv_tabix = sy-tabix.
DATA: lt_0001 TYPE TABLE OF pa0001 WITH HEADER LINE. DATA: lv_pernr TYPE persno. DATA(lv_tabix) = line_index( lt_0001[ pernr = lv_pernr ] ).

10. Conversion Operator 예제

Before 7.40
With 7.40
DATA: text TYPE c LENGTH 255 VALUE ‘반짝이’. DATA: helper TYPE string. DATA: xstr TYPE xstring. helper = text. xstr = cl_abap_codepage=>convert_to( source = helper ). WRITE:/ xstr.
DATA text TYPE c LENGTH 255. DATA(xstr) = cl_abap_codepage=>convert_to( source = CONV #( text ) ).

11. For Operator1 예제

Before 7.40
With 7.40
TYPES: BEGIN OF ty_ship, tknum TYPE tknum, “shipment NUMBER name TYPE ernam, “name OF PERSON who created the OBJECT city TYPE ort01, “starting city route TYPE route, “shipment route END OF ty_ship. TYPES: ty_ships TYPE SORTED TABLE OF ty_ship WITH UNIQUE KEY tknum. TYPES: ty_citys TYPE STANDARD TABLE OF ort01 WITH EMPTY KEY. DATA: gt_ships TYPE ty_ships. DATA: gt_citys TYPE ty_citys, gs_ship TYPE ty_ship, gs_city TYPE ort01. LOOP AT gt_ships INTO gs_ship. gs_city = gs_ship-city. APPEND gs_city TO gt_citys. ENDLOOP.
TYPES: BEGIN OF ty_ship, tknum TYPE tknum, “shipment NUMBER name TYPE ernam, “name OF PERSON who created the OBJECT city TYPE ort01, “starting city route TYPE route, “shipment route END OF ty_ship. TYPES: ty_ships TYPE SORTED TABLE OF ty_ship WITH UNIQUE KEY tknum. TYPES: ty_citys TYPE STANDARD TABLE OF ort01 WITH EMPTY KEY. DATA: ls_ships TYPE ty_ships. DATA(gt_citys) = VALUE ty_citys( FOR ls_ship IN gt_ships ( ls_ship-city ) ).

12. For Operator2 예제

Before 7.40
With 7.40
TYPES: BEGIN OF ty_ship, tknum TYPE tknum, “shipment NUMBER name TYPE ernam, “name OF PERSON who created the OBJECT city TYPE ort01, “starting city route TYPE route, “shipment route END OF ty_ship. TYPES: ty_citys TYPE STANDARD TABLE OF ort01 WITH EMPTY KEY. TYPES: ty_ships TYPE SORTED TABLE OF ty_ship WITH UNIQUE KEY tknum. DATA: gt_citys TYPE ty_citys, gs_ship TYPE ty_ship, gs_city TYPE ort01. DATA: gt_ships TYPE ty_ships. LOOP AT gt_ships INTO gs_ship WHERE route = ‘R0001’. gs_city = gs_ship-city. APPEND gs_city TO gt_citys. ENDLOOP.
TYPES: BEGIN OF ty_ship, tknum TYPE tknum, “shipment NUMBER name TYPE ernam, “name OF PERSON who created the OBJECT city TYPE ort01, “starting city route TYPE route, “shipment route END OF ty_ship. TYPES: ty_citys TYPE STANDARD TABLE OF ort01 WITH EMPTY KEY. TYPES: ty_ships TYPE SORTED TABLE OF ty_ship WITH UNIQUE KEY tknum. DATA: gt_ships TYPE ty_ships. DATA: ls_ship TYPE ty_ship. DATA(gt_citys) = VALUE ty_citys( FOR ls_ship IN gt_ships WHERE ( route = ‘R0001’ ) ( ls_ship-city ) ).

13. FOR with THEN and UNTIL|WHILE 예제

Before 7.40
With 7.40
TYPES: BEGIN OF ty_line, col1 TYPE i, col2 TYPE i, col3 TYPE i, END OF ty_line, ty_tab TYPE STANDARD TABLE OF ty_line WITH EMPTY KEY. DATA: gt_itab TYPE ty_tab, j TYPE i. FIELD-SYMBOLS TYPE ty_line. j = 1. DO. j = j + 10. IF j > 40. EXIT. ENDIF. APPEND INITIAL LINE TO gt_itab ASSIGNING . -col1 = j. -col2 = j + 1. -col3 = j + 2. ENDDO.
TYPES: BEGIN OF ty_line, col1 TYPE i, col2 TYPE i, col3 TYPE i, END OF ty_line, ty_tab TYPE STANDARD TABLE OF ty_line WITH EMPTY KEY. DATA(gt_itab) = VALUE ty_tab( FOR j = 11 THEN j + 10 UNTIL j > 40 ( col1 = j col2 = j + 1 col3 = j + 2 ) ).

14. Example for COND 예제

Before 7.40
With 7.40
ㅤ
DATA(time) = COND string( WHEN sy-timlo < ‘120000’ THEN |{ sy-timlo TIME = ISO } AM| WHEN sy-timlo > ‘120000’ THEN |{ CONV t( sy-timlo – 12 * 3600 ) TIME = ISO } PM| WHEN sy-timlo = ‘120000’ THEN |High Noon| ELSE | | ).

15. Concatenate 예제

Before 7.40
With 7.40
DATA lv_output TYPE string. CONCATENATE ‘Hello’ ‘world’ INTO lv_output SEPARATED BY space.
DATA lv_output TYPE string. lv_output = |Hello| & | | & |world|.

16. Select 예제

Before 7.40
With 7.40
ㅤ
Select SINGLE itpct FROM pa0541 INTO @DATA(lv_itpct) WHERE pernr EQ @i_struc-pernr.

댓글

guest