SAP ABAP 컴포넌트가 7.40 이상이라면 아래 New Syntax를 사용할 수 있습니다.
0. 버전 보는 방법
- 시스템 → 상태 → 제품버전내 세부사항

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. |
댓글