<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Dummy LET expression in REDUCE in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/dummy-let-expression-in-reduce/m-p/725940#M33987</link>
    <description>&lt;PRE&gt;&lt;CODE&gt;TYPES: BEGIN OF ty_ekpo,
         werks TYPE werks_d,
         menge TYPE bstmg,
       END OF ty_ekpo,
       tt_ekpo TYPE TABLE OF ty_ekpo WITH DEFAULT KEY.

DATA: lt_werks TYPE tt_ekpo.

DATA(lt_ekpo) = VALUE tt_ekpo(
                        ( werks = 1000 menge = CONV bstmg( '100.50' ) )
                        ( werks = 1000 menge = CONV bstmg( 100 ) )
                        ( werks = 1001 menge = CONV bstmg( '100.60' ) )
                        ( werks = 1001 menge = CONV bstmg( 100 ) )
                        ( werks = 1002 menge = CONV bstmg( '100.70' ) )
                        ( werks = 1002 menge = CONV bstmg( 100 ) ) ).

BREAK-POINT.
LOOP AT lt_ekpo ASSIGNING FIELD-SYMBOL(&amp;lt;fs&amp;gt;)
                GROUP BY ( werks = &amp;lt;fs&amp;gt;-werks )
                ASCENDING
                ASSIGNING FIELD-SYMBOL(&amp;lt;grp&amp;gt;).

**  Two Statements
*    DATA(lt_werks1) = VALUE tt_ekpo( FOR m IN GROUP &amp;lt;grp&amp;gt; ( m ) ).
*    lw_werks = REDUCE #( INIT r_wa TYPE ty_ekpo
*                         FOR wa IN lt_werks1
*                         NEXT r_wa-menge = r_wa-menge + wa-menge
*                              r_wa-werks = wa-werks ).
*    APPEND lw_werks TO lt_werks.

* Reduce
  DATA(lw_total) = REDUCE ty_ekpo(
                     INIT r_total TYPE ty_ekpo
                     FOR wa IN VALUE tt_ekpo( FOR m IN GROUP &amp;lt;grp&amp;gt; ( m ) )
                     LET x = wa IN
                     NEXT r_total-menge = wa-menge + r_total-menge
                     r_total-werks = wa-werks ).
  APPEND lw_total TO lt_werks.
ENDLOOP.

cl_demo_output=&amp;gt;display( lt_werks ).&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;In the above example, i am trying to add Quantities for each plant. It is working fine with the REDUCE Operator how ever i'm forced to use LET expression. (There is no use with variable 'x' )&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;Why i added LET: When i debug the REDUCE code, after "FOR m IN GROUP &amp;lt;grp&amp;gt;" statement, the cursor is going to the "NEXT r_total-menge" statement, just to prevent that i have added LET statement.&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;Can't we achieve this with out LET. Please correct me.&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;Thanks&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;</description>
    <pubDate>Wed, 19 Sep 2018 20:00:40 GMT</pubDate>
    <dc:creator>srikanthnalluri</dc:creator>
    <dc:date>2018-09-19T20:00:40Z</dc:date>
    <item>
      <title>Dummy LET expression in REDUCE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dummy-let-expression-in-reduce/m-p/725940#M33987</link>
      <description>&lt;PRE&gt;&lt;CODE&gt;TYPES: BEGIN OF ty_ekpo,
         werks TYPE werks_d,
         menge TYPE bstmg,
       END OF ty_ekpo,
       tt_ekpo TYPE TABLE OF ty_ekpo WITH DEFAULT KEY.

DATA: lt_werks TYPE tt_ekpo.

DATA(lt_ekpo) = VALUE tt_ekpo(
                        ( werks = 1000 menge = CONV bstmg( '100.50' ) )
                        ( werks = 1000 menge = CONV bstmg( 100 ) )
                        ( werks = 1001 menge = CONV bstmg( '100.60' ) )
                        ( werks = 1001 menge = CONV bstmg( 100 ) )
                        ( werks = 1002 menge = CONV bstmg( '100.70' ) )
                        ( werks = 1002 menge = CONV bstmg( 100 ) ) ).

BREAK-POINT.
LOOP AT lt_ekpo ASSIGNING FIELD-SYMBOL(&amp;lt;fs&amp;gt;)
                GROUP BY ( werks = &amp;lt;fs&amp;gt;-werks )
                ASCENDING
                ASSIGNING FIELD-SYMBOL(&amp;lt;grp&amp;gt;).

**  Two Statements
*    DATA(lt_werks1) = VALUE tt_ekpo( FOR m IN GROUP &amp;lt;grp&amp;gt; ( m ) ).
*    lw_werks = REDUCE #( INIT r_wa TYPE ty_ekpo
*                         FOR wa IN lt_werks1
*                         NEXT r_wa-menge = r_wa-menge + wa-menge
*                              r_wa-werks = wa-werks ).
*    APPEND lw_werks TO lt_werks.

* Reduce
  DATA(lw_total) = REDUCE ty_ekpo(
                     INIT r_total TYPE ty_ekpo
                     FOR wa IN VALUE tt_ekpo( FOR m IN GROUP &amp;lt;grp&amp;gt; ( m ) )
                     LET x = wa IN
                     NEXT r_total-menge = wa-menge + r_total-menge
                     r_total-werks = wa-werks ).
  APPEND lw_total TO lt_werks.
ENDLOOP.

cl_demo_output=&amp;gt;display( lt_werks ).&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;In the above example, i am trying to add Quantities for each plant. It is working fine with the REDUCE Operator how ever i'm forced to use LET expression. (There is no use with variable 'x' )&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;Why i added LET: When i debug the REDUCE code, after "FOR m IN GROUP &amp;lt;grp&amp;gt;" statement, the cursor is going to the "NEXT r_total-menge" statement, just to prevent that i have added LET statement.&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;Can't we achieve this with out LET. Please correct me.&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;Thanks&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;</description>
      <pubDate>Wed, 19 Sep 2018 20:00:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dummy-let-expression-in-reduce/m-p/725940#M33987</guid>
      <dc:creator>srikanthnalluri</dc:creator>
      <dc:date>2018-09-19T20:00:40Z</dc:date>
    </item>
    <item>
      <title>Re: Dummy LET expression in REDUCE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dummy-let-expression-in-reduce/m-p/725941#M33988</link>
      <description>&lt;P&gt;First I dont understand your reason to add LET statement because with no LET it still sum data correctly and have same output as you do with two statements part.&lt;/P&gt;
  &lt;P&gt;Second, I think you dont have to using FOR 2 times, it could be simple like this:&lt;/P&gt;
  &lt;P&gt;&lt;/P&gt;
  &lt;P&gt;&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt; DATA(LW_TOTAL) = REDUCE TY_EKPO(&lt;BR /&gt;
 INIT R_TOTAL TYPE TY_EKPO&lt;BR /&gt;
 FOR M IN GROUP &amp;lt;GRP&amp;gt; &lt;BR /&gt;
 NEXT R_TOTAL-MENGE = M-MENGE + R_TOTAL-MENGE&lt;BR /&gt;
 R_TOTAL-WERKS = M-WERKS ).&lt;BR /&gt;
 APPEND LW_TOTAL TO LT_WERKS.&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 20 Sep 2018 01:24:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dummy-let-expression-in-reduce/m-p/725941#M33988</guid>
      <dc:creator>DoanManhQuynh</dc:creator>
      <dc:date>2018-09-20T01:24:44Z</dc:date>
    </item>
    <item>
      <title>Re: Dummy LET expression in REDUCE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dummy-let-expression-in-reduce/m-p/725942#M33989</link>
      <description>&lt;P&gt;Thank you &lt;/P&gt;</description>
      <pubDate>Thu, 20 Sep 2018 12:41:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dummy-let-expression-in-reduce/m-p/725942#M33989</guid>
      <dc:creator>srikanthnalluri</dc:creator>
      <dc:date>2018-09-20T12:41:51Z</dc:date>
    </item>
  </channel>
</rss>

