{"id":7483,"date":"2025-08-08T07:55:42","date_gmt":"2025-08-08T02:25:42","guid":{"rendered":"https:\/\/www.sapewmhelp.com\/?post_type=question&#038;p=7483"},"modified":"2025-08-08T07:55:43","modified_gmt":"2025-08-08T02:25:43","slug":"sap-abap-7-4-new-syntax-collection-and-cheat-sheet","status":"publish","type":"question","link":"https:\/\/www.sapewmhelp.com\/?question=sap-abap-7-4-new-syntax-collection-and-cheat-sheet","title":{"rendered":"SAP ABAP 7.4 New syntax collection and cheat sheet"},"content":{"rendered":"\n<p>ABAP Old vs New Syntax Cheat Sheet<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Assigning Value to a Variable<\/li>\n<\/ol>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nDATA var1 TYPE char5.\nvar1 = &#39;ABC&#39;.\n\n*--New Syntax\nDATA(var1) = &#39;ABC&#39;.<\/code><\/pre><\/div>\n\n\n\n<p>2. SELECT SINGLE INTO Work Area<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nDATA wa TYPE ...\nSELECT SINGLE fld1 fld2 FROM ...\n  INTO wa\n  WHERE fld1 = var1\n    AND fld2 = var2.\n\n*--New Syntax\nSELECT SINGLE fld1, fld2 FROM ...\n  INTO @DATA(wa)\n  WHERE fld1 = @var1\n    AND fld2 = @var2.<\/code><\/pre><\/div>\n\n\n\n<p>3. SELECT INTO Internal Table<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nDATA itab TYPE TABLE OF ...\nSELECT fld1 fld2 FROM ...\n  INTO TABLE itab\n  WHERE fld1 = var1\n    AND fld2 = var2.\n\n*--New Syntax\nSELECT fld1, fld2 FROM ...\n  INTO TABLE @DATA(itab)\n  WHERE fld1 = @var1\n    AND fld2 = @var2.<\/code><\/pre><\/div>\n\n\n\n<p>4. Declaration of Work Area in Loop\/Read<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nDATA wa TYPE structure.\nLOOP AT itab INTO wa.\nREAD TABLE itab INTO wa WITH KEY field1 = var1.\n\n*--New Syntax\nLOOP AT itab INTO DATA(wa).\nREAD TABLE itab INTO DATA(wa) WITH KEY field1 = var1.<\/code><\/pre><\/div>\n\n\n\n<p>5. Copying One Table to Another<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nDATA lt_tab LIKE itab.\nlt_tab[] = itab[].\n\n*--New Syntax\nDATA(lt_tab) = itab[].<\/code><\/pre><\/div>\n\n\n\n<p>6. Assigning Field Symbols<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nFIELD-SYMBOLS: &lt;line&gt; TYPE ...\nLOOP AT itab ASSIGNING &lt;line&gt;.\nREAD TABLE itab ASSIGNING &lt;line&gt; WITH KEY fld1 = var1.\n\n*--New Syntax\nLOOP AT itab ASSIGNING FIELD-SYMBOL(&lt;line&gt;).\nREAD TABLE itab ASSIGNING FIELD-SYMBOL(&lt;line&gt;) WITH KEY fld1 = var1.<\/code><\/pre><\/div>\n\n\n\n<p>7. Table Expressions<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Read by Key:\nDATA(wa) = itab[ fld1 = var1 ].\n\n*--Read by Index:\nDATA(wa) = itab[ 1 ].\n\n*--Get Single Field:\nlv_var2 = itab[ fld1 = var1 ]-var2.\n\n*--Check if Line Exists:\nIF line_exists( itab[ fld1 = var1 ] ).\nENDIF.\n\n*--Get Line Index:\nlv_tabix = line_index( itab[ fld1 = var1 ] ).\n\n*--Modify Table Entry:\nitab[ fld1 = var1 ]-fld2 = &#39;Text&#39;.\n&quot;Use TRY...CATCH cx_sy_itab_line_not_found when using table expressions.<\/code><\/pre><\/div>\n\n\n\n<p>8. Leading Zero Conversion<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nCALL FUNCTION &#39;CONVERSION_EXIT_ALPHA_OUTPUT&#39;\n  EXPORTING input = var1\n  IMPORTING output = var1.\n\nCALL FUNCTION &#39;CONVERSION_EXIT_ALPHA_INPUT&#39;\n  EXPORTING input = var1\n  IMPORTING output = var1.\n\n*--New Syntax\nvar1 = |{ var1 ALPHA = OUT }|.\nvar1 = |{ var1 ALPHA = IN }|.<\/code><\/pre><\/div>\n\n\n\n<p>9. Conditional Assignment<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nIF cond1.\n  var1 = fld1.\nELSE.\n  var1 = fld2.\nENDIF.\n\n*--New Syntax\nvar1 = COND #( WHEN cond1 THEN fld1 ELSE fld2 ).<\/code><\/pre><\/div>\n\n\n\n<p>10. CASE to SWITCH<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nCASE var1.\n  WHEN cond1.\n    var1 = fld1.\n  WHEN cond2.\n    var1 = fld2.\nENDCASE.\n\n*--New Syntax\nvar1 = SWITCH #( var1\n                 WHEN cond1 THEN fld1\n                 WHEN cond2 THEN fld2 ).<\/code><\/pre><\/div>\n\n\n\n<p>11. Creating &amp; Populating Internal Table<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nDATA: itab TYPE TABLE OF structure,\n      wa TYPE structure.\n\nwa-fld1 = 1.\nwa-fld2 = &#39;A&#39;.\nAPPEND wa TO itab.\nCLEAR wa.\n\n*--New Syntax\nDATA(itab) = VALUE structure(\n  ( fld1 = 1 fld2 = &#39;A&#39; )\n  ( fld1 = 2 fld2 = &#39;B&#39; ) ).<\/code><\/pre><\/div>\n\n\n\n<p>12. Append to Existing Internal Table<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>itab = VALUE #( BASE itab\n  ( fld1 = 1 fld2 = &#39;A&#39; )\n  ( fld1 = 2 fld2 = &#39;B&#39; ) ).<\/code><\/pre><\/div>\n\n\n\n<p>13. String Templates for Any Data Type<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nCONCATENATE &#39;The Value in inr is&#39; var1 INTO fld1.\n\n*--New Syntax\nfld1 = |The Value in inr is { var1 }|.<\/code><\/pre><\/div>\n\n\n\n<p>14. Merge Two Internal Tables<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nLOOP AT itab1 INTO wa1.\n  APPEND wa1 TO itab3.\nENDLOOP.\n\nLOOP AT itab2 INTO wa2.\n  APPEND wa2 TO itab3.\nENDLOOP.\n\n*--New Syntax\nitab3 = itab1.\nitab3 = CORRESPONDING #( BASE (itab3) itab2 ).<\/code><\/pre><\/div>\n\n\n\n<p>15. MOVE-CORRESPONDING Alternative<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nMOVE-CORRESPONDING itab1 TO itab2.\n\n*--New Syntax\nitab2 = CORRESPONDING #( itab1 ).\n\n&quot;With field mapping:&quot;\nitab2 = CORRESPONDING #( itab1 MAPPING\n                         t1_fld1 = t2_fld1\n                         t1_fld2 = t2_fld2 ).\n\n&quot;Excluding fields:&quot;\nitab2 = CORRESPONDING #( itab1 EXCEPT t1_fld3 t1_fld4 ).<\/code><\/pre><\/div>\n\n\n\n<p>16. Splitting Fields While Moving Between Tables<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nTYPES: BEGIN OF gty_s_rseg_key,\n         belnr TYPE belnr_d,\n         gjahr TYPE gjahr,\n       END OF gty_s_rseg.\n\nTYPES: gty_rseg TYPE STANDARD TABLE OF gty_s_rseg_key WITH EMPTY KEY.\n\n*--New Syntax\nDATA(lt_awkey) = VALUE gty_rseg(\n  FOR &lt;lfs_bkpf&gt; IN lt_bkpf\n  ( belnr = &lt;lfs_bkpf&gt;-awkey+0(10)\n    gjahr = &lt;lfs_bkpf&gt;-awkey+10(4) ) ).<\/code><\/pre><\/div>\n\n\n\n<p>17. Message With Variables<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nDATA lv_output TYPE char20.\nCONCATENATE &#39;The User ID is&#39; lv_name INTO lv_output SEPARATED BY space.\nMESSAGE lv_output TYPE &#39;E&#39; DISPLAY LIKE &#39;E&#39;.\n\n*--New Syntax\nMESSAGE |The User ID is { lv_name }| TYPE &#39;E&#39; DISPLAY LIKE &#39;E&#39;.<\/code><\/pre><\/div>\n\n\n\n<p>18. OO ABAP &#8211; Method Call<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nDATA: binary_content TYPE solix_tab,\n      xl_content TYPE xstring.\n\nCALL METHOD cl_document_bcs=&gt;xstring_to_solix\n  EXPORTING ip_xstring = xl_content\n  RECEIVING rt_solix = binary_content.\n\n*--New Syntax\nbinary_content = cl_bcs_convert=&gt;xstring_to_solix( ip_xstring = xl_content ).<\/code><\/pre><\/div>\n\n\n\n<p>19. Object Creation in OO ABAP<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>*--Old Syntax\nDATA oref TYPE REF TO class.\nCREATE OBJECT oref EXPORTING ...\n\n*--New Syntax\nDATA oref TYPE REF TO class.\noref = NEW #( ... ).\n\n&quot;or with inline declaration:&quot;\nDATA(oref) = NEW class( ... ).<\/code><\/pre><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","question-category":[158],"question_tags":[178,326,327,325,237,168,177,328],"class_list":["post-7483","question","type-question","status-publish","hentry","question-category-abap","question_tags-abap","question_tags-abap-7-5","question_tags-abap-development-new-syntaxes","question_tags-abap-new-syntax","question_tags-new-syntax-7-4","question_tags-ooabap","question_tags-sap","question_tags-sap-abap-74"],"_links":{"self":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question\/7483","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question"}],"about":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/types\/question"}],"author":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7483"}],"wp:attachment":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7483"}],"wp:term":[{"taxonomy":"question-category","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion-category&post=7483"},{"taxonomy":"question_tags","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion_tags&post=7483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}