Hello,

Sign up to join our community!

Welcome Back,

Please sign in to your account!

Forgot Password,

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

You must login to ask a question.

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

SAP EWM Help Latest Questions

  • 0
  • 0
admin

SAP ABAP 7.4 New syntax collection and cheat sheet

ABAP Old vs New Syntax Cheat Sheet

  1. Assigning Value to a Variable
*--Old Syntax
DATA var1 TYPE char5.
var1 = 'ABC'.

*--New Syntax
DATA(var1) = 'ABC'.

2. SELECT SINGLE INTO Work Area

*--Old Syntax
DATA wa TYPE ...
SELECT SINGLE fld1 fld2 FROM ...
  INTO wa
  WHERE fld1 = var1
    AND fld2 = var2.

*--New Syntax
SELECT SINGLE fld1, fld2 FROM ...
  INTO @DATA(wa)
  WHERE fld1 = @var1
    AND fld2 = @var2.

3. SELECT INTO Internal Table

*--Old Syntax
DATA itab TYPE TABLE OF ...
SELECT fld1 fld2 FROM ...
  INTO TABLE itab
  WHERE fld1 = var1
    AND fld2 = var2.

*--New Syntax
SELECT fld1, fld2 FROM ...
  INTO TABLE @DATA(itab)
  WHERE fld1 = @var1
    AND fld2 = @var2.

4. Declaration of Work Area in Loop/Read

*--Old Syntax
DATA wa TYPE structure.
LOOP AT itab INTO wa.
READ TABLE itab INTO wa WITH KEY field1 = var1.

*--New Syntax
LOOP AT itab INTO DATA(wa).
READ TABLE itab INTO DATA(wa) WITH KEY field1 = var1.

5. Copying One Table to Another

*--Old Syntax
DATA lt_tab LIKE itab.
lt_tab[] = itab[].

*--New Syntax
DATA(lt_tab) = itab[].

6. Assigning Field Symbols

*--Old Syntax
FIELD-SYMBOLS: <line> TYPE ...
LOOP AT itab ASSIGNING <line>.
READ TABLE itab ASSIGNING <line> WITH KEY fld1 = var1.

*--New Syntax
LOOP AT itab ASSIGNING FIELD-SYMBOL(<line>).
READ TABLE itab ASSIGNING FIELD-SYMBOL(<line>) WITH KEY fld1 = var1.

7. Table Expressions

*--Read by Key:
DATA(wa) = itab[ fld1 = var1 ].

*--Read by Index:
DATA(wa) = itab[ 1 ].

*--Get Single Field:
lv_var2 = itab[ fld1 = var1 ]-var2.

*--Check if Line Exists:
IF line_exists( itab[ fld1 = var1 ] ).
ENDIF.

*--Get Line Index:
lv_tabix = line_index( itab[ fld1 = var1 ] ).

*--Modify Table Entry:
itab[ fld1 = var1 ]-fld2 = 'Text'.
"Use TRY...CATCH cx_sy_itab_line_not_found when using table expressions.

8. Leading Zero Conversion

*--Old Syntax
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
  EXPORTING input = var1
  IMPORTING output = var1.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING input = var1
  IMPORTING output = var1.

*--New Syntax
var1 = |{ var1 ALPHA = OUT }|.
var1 = |{ var1 ALPHA = IN }|.

9. Conditional Assignment

*--Old Syntax
IF cond1.
  var1 = fld1.
ELSE.
  var1 = fld2.
ENDIF.

*--New Syntax
var1 = COND #( WHEN cond1 THEN fld1 ELSE fld2 ).

10. CASE to SWITCH

*--Old Syntax
CASE var1.
  WHEN cond1.
    var1 = fld1.
  WHEN cond2.
    var1 = fld2.
ENDCASE.

*--New Syntax
var1 = SWITCH #( var1
                 WHEN cond1 THEN fld1
                 WHEN cond2 THEN fld2 ).

11. Creating & Populating Internal Table

*--Old Syntax
DATA: itab TYPE TABLE OF structure,
      wa TYPE structure.

wa-fld1 = 1.
wa-fld2 = 'A'.
APPEND wa TO itab.
CLEAR wa.

*--New Syntax
DATA(itab) = VALUE structure(
  ( fld1 = 1 fld2 = 'A' )
  ( fld1 = 2 fld2 = 'B' ) ).

12. Append to Existing Internal Table

itab = VALUE #( BASE itab
  ( fld1 = 1 fld2 = 'A' )
  ( fld1 = 2 fld2 = 'B' ) ).

13. String Templates for Any Data Type

*--Old Syntax
CONCATENATE 'The Value in inr is' var1 INTO fld1.

*--New Syntax
fld1 = |The Value in inr is { var1 }|.

14. Merge Two Internal Tables

*--Old Syntax
LOOP AT itab1 INTO wa1.
  APPEND wa1 TO itab3.
ENDLOOP.

LOOP AT itab2 INTO wa2.
  APPEND wa2 TO itab3.
ENDLOOP.

*--New Syntax
itab3 = itab1.
itab3 = CORRESPONDING #( BASE (itab3) itab2 ).

15. MOVE-CORRESPONDING Alternative

*--Old Syntax
MOVE-CORRESPONDING itab1 TO itab2.

*--New Syntax
itab2 = CORRESPONDING #( itab1 ).

"With field mapping:"
itab2 = CORRESPONDING #( itab1 MAPPING
                         t1_fld1 = t2_fld1
                         t1_fld2 = t2_fld2 ).

"Excluding fields:"
itab2 = CORRESPONDING #( itab1 EXCEPT t1_fld3 t1_fld4 ).

16. Splitting Fields While Moving Between Tables

*--Old Syntax
TYPES: BEGIN OF gty_s_rseg_key,
         belnr TYPE belnr_d,
         gjahr TYPE gjahr,
       END OF gty_s_rseg.

TYPES: gty_rseg TYPE STANDARD TABLE OF gty_s_rseg_key WITH EMPTY KEY.

*--New Syntax
DATA(lt_awkey) = VALUE gty_rseg(
  FOR <lfs_bkpf> IN lt_bkpf
  ( belnr = <lfs_bkpf>-awkey+0(10)
    gjahr = <lfs_bkpf>-awkey+10(4) ) ).

17. Message With Variables

*--Old Syntax
DATA lv_output TYPE char20.
CONCATENATE 'The User ID is' lv_name INTO lv_output SEPARATED BY space.
MESSAGE lv_output TYPE 'E' DISPLAY LIKE 'E'.

*--New Syntax
MESSAGE |The User ID is { lv_name }| TYPE 'E' DISPLAY LIKE 'E'.

18. OO ABAP – Method Call

*--Old Syntax
DATA: binary_content TYPE solix_tab,
      xl_content TYPE xstring.

CALL METHOD cl_document_bcs=>xstring_to_solix
  EXPORTING ip_xstring = xl_content
  RECEIVING rt_solix = binary_content.

*--New Syntax
binary_content = cl_bcs_convert=>xstring_to_solix( ip_xstring = xl_content ).

19. Object Creation in OO ABAP

*--Old Syntax
DATA oref TYPE REF TO class.
CREATE OBJECT oref EXPORTING ...

*--New Syntax
DATA oref TYPE REF TO class.
oref = NEW #( ... ).

"or with inline declaration:"
DATA(oref) = NEW class( ... ).

Related Questions

Leave an answer

Leave an answer