Inline Declaration
Inline Declaration
~Kalpesh Deore
Old Syntax.
DATA var1 TYPE char5.
var1 = ‘ABC’.
New Syntax.
DATA(var1) = ‘ABC’.
New Syntax.
SELECT SINGLE fld1, fld2, FROM ....
INTO @DATA(wa)
WHERE fld1 = @var1
AND fld2 = @var2.
New Syntax.
SELECT fld1, fld2 FROM ....
INTO TABLE @DATA(itab)
WHERE fld1 = @var1
AND fld2 = @var2.
Declaration of the work area while operation on Internal Table,
Old Syntax.
DATA wa TYPE structure
LOOP AT itab INTO wa.
or
READ TABLE itab into wa WITH KEY field1 = var1.
New Syntax.
LOOP AT itab INTO data(wa).
or
READ TABLE itab into data(wa) WITH KEY field1 = var1.
New Syntax.
DATA(lt_tab) = itab[].
New Syntax.
LOOP AT itab ASSIGNING FIELD-SYMBOL(<line>).
OR
READ TABLE itab ASSIGNING FIELD-SYMBOL(<line>) WITH KEY FLD1 =
VAR1.
~~ Table Expression~~
Get line from table to Work Area.
Old Syntax.
READ TABLE itab INTO DATA(wa) WITH KEY fld1 = var1.
New Syntax.
DATA(wa) = itab[ fld1 = var1 ].
New Syntax.
DATA(wa) = itab[ 1 ].
New Syntax.
lv_var2 = itab[ fld1 = var1 ]-var2.
New Syntax.
IF line_exists( itab[ fld1 = var1 ] ).
ENDIF.
Get Index Number of Particular Entry From Internal Table.
Old Syntax.
READ TABLE itab TRANSPORTING NO FIELDS fld1 = var1.
IF sy-subrc eq 0
lv_tabix = sy-tabix.
ENDIF.
New Syntax.
lv_tabix = line_index( itab[ fld1 = var1 ] ).
Old Synatx.
For Removing Leading Zeros
CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’
EXPORTING
input = var1
IMPORTING
OUTPUT = var1 .
For Adding Leading Zeros
CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’
EXPORTING
input = var1
IMPORTING
OUTPUT = var1 .
New Syntax.
For Removing Leading Zeros
var1 = |{ var1 ALPHA = OUT}|.
For Adding Leading Zeros
var1 = |{ var1 ALPHA = IN }|.
New Syntax.
var1 = COND #( WHEN cond1 THEN fld1 ELSE fld2 ).
Case Endcase.
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 ).
New Syntax.
itab2 = CORRESPONDING #( itab1 ).
Using Above Syntax only fields which are identical in the container will
be moved to move it to other fields this new syntax can be used.
itab2 = CORRESPONDING #( itab1 MAPPING t1_fld1 = t2_fld1
t1_fld2 = t2_fld2 ).
~~Object-Oriented~~
Old Syntax.
DATA: binary_content TYPE solix_tab.
DATA: 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 ).
Old Syntax.
DATA oref TYPE REF TO class.
CREATE OBJECT oref EXPORTING …
New Syntax.
DATA oref TYPE REF TO class.
oref = NEW #( … ).
or
with an inline declaration
DATA(oref) = NEW class( … )