Skip to content
Skip to content
Menu
SAP ABAP DWIMAN
  • About
SAP ABAP DWIMAN

SAP ABAP – DO… WHILE VARYING

By juananda.satria on February 16, 2024

Bismillah..

Varying = Horizontal Looping

That’s explain what varying is.

You may have struggled when you have to calculate the total of a table like FAGLFLEXT that saves value to the right ( ex: HSL01, HSL02, HSL03, and so on… )

Let us learn how to do it.

First, prepare the dummy data:

* -------------------------------
  " Declaration
* -------------------------------
  TYPES:
    BEGIN OF ty_faglflext,
      hslvt TYPE wrbtr,
      hsl01 TYPE wrbtr,
      hsl02 TYPE wrbtr,
      hsl03 TYPE wrbtr,
      hsl04 TYPE wrbtr,
      hsl05 TYPE wrbtr,
      hsl06 TYPE wrbtr,
      hsl07 TYPE wrbtr,
      hsl08 TYPE wrbtr,
      hsl09 TYPE wrbtr,
      hsl10 TYPE wrbtr,
      hsl11 TYPE wrbtr,
      hsl12 TYPE wrbtr,
      hsl13 TYPE wrbtr,
      hsl14 TYPE wrbtr,
      hsl15 TYPE wrbtr,
      hsl16 TYPE wrbtr,
      total TYPE wrbtr,
    END OF ty_faglflext.

  DATA:
    ls_data TYPE ty_faglflext.

* -------------------------------
  " Populate Data
* -------------------------------
  ls_data = VALUE #(
    hslvt = 9000 hsl01 = 100 hsl02 = 200 hsl03 = 300 hsl04 = 400
    hsl05 = 500  hsl06 = 600 hsl07 = 700 hsl08 = 800 hsl09 = 900
    hsl10 = 100  hsl11 = 200 hsl12 = 300 hsl13 = 400 hsl14 = 500
    hsl15 = 600  hsl16 = 700 total = 0
  ).
  1. Trick 1 (without varying):

* ——————————-
  ” Do SUM (without varying)
* ——————————-
  DATA: lv_number TYPE numc2,
        lv_field  TYPE char20,
        lv_hsl    TYPE wrbtr.
  FIELD-SYMBOLS: <lfs_hsl> TYPE wrbtr.

  ls_data-total = ls_data-hslvt.
  DO 16 TIMES.
    lv_number = sy-index.
    lv_field = ‘LS_DATA-HSL’ && lv_number.
    ASSIGN (lv_field) TO <lfs_hsl>.
    IF sy-subrc EQ 0.
      ls_data-total = ls_data-total + <lfs_hsl>.
    ENDIF.
  ENDDO.

  1. Trick 2 (with varying):
* -------------------------------
  " Do SUM (with varying)
* -------------------------------
  DATA: lv_hsl  TYPE wrbtr.
  DO 17 TIMES VARYING lv_hsl FROM ls_data-hslvt NEXT ls_data-hsl01.
    ls_data-total = ls_data-total + lv_hsl.
  ENDDO.

Write the result

* -------------------------------
  " Write Data
* -------------------------------
  WRITE: ls_data-total.

That’s all. Thank you for reading. 🙂

Post navigation

SAP ABAP – BS01_SALESDOCUMENT_CREATE
SAP ABAP – F4 Search Help in Selection Screen with Refresh Screen

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • SAP ABAP – Generate Fiori URL
  • SAP ABAP – Workflow Agents CDS
  • SAP ABAP – Workflow Level with Table Function
  • SAP ABAP – Download ALV to Excel with Total and Subtotal
  • SAP ABAP – BDC Template

Recent Comments

  1. SAP ABAP – Simple Interface FTP Inbound (SAP Consume File From FTP) – SAP ABAP DWIMAN on SAP ABAP – String Encode & Decode BASE64
  2. Upload file – SAP ABAP DWIMAN on F4 Search Help File

Archives

  • May 2025
  • August 2024
  • June 2024
  • May 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • May 2023
  • April 2023

Categories

  • Uncategorized
©2026 SAP ABAP DWIMAN | WordPress Theme by SuperbThemes.com