New syntax for if statement - COND in ABAP

From ABAP 7.4 onwards, SAP introduced COND statement.

* We need to use COND statement instead of IF statement.

* In IF statement, we need to specify the variable which is getting filled in every

condition.

* In COND statement, we need not to mention the variable, which is getting filled in every condition, so COND statement is more effective way for conditional logic rather than IF statement.


Report

REPORT zab_rp_if_cond.

TABLES: vbak.
TYPES: BEGIN OF ls_vbak,
         vbeln TYPE vbak-vbeln,
         netwr TYPE vbak-netwr,
       END OF ls_vbak.

DATA: lr_vbak TYPE ls_vbak,
      lt_vbak TYPE TABLE OF ls_vbak,
      lv_text TYPE char20.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
SELECT vbeln netwr
  FROM vbak
  INTO TABLE lt_vbak
  WHERE vbeln IN s_vbeln.
LOOP AT lt_vbak INTO lr_vbak.
  IF lr_vbak-netwr > AND lr_vbak-netwr <= 5000.
    lv_text 'Low price'.
  ELSEIF lr_vbak-netwr > 5000 AND lr_vbak-netwr <= 10000.
    lv_text 'Medium price'.
  ELSE.
    lv_text 'High price'.
  ENDIF.
  WRITE/ lr_vbak-vbeln lr_vbak-netwrlv_text.
ENDLOOP.


New syntax-COND

REPORT zab_rp_if_cond.
TABLES: vbak.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
SELECT vbeln,netwr
  FROM vbak
  INTO TABLE @DATA(lt_vbak)
  WHERE vbeln IN @s_vbeln.

LOOP AT lt_vbak INTO DATA(lr_vbak).
  DATA(lv_textCOND char20WHEN lr_vbak-netwr > AND lr_vbak-netwr <= 5000 THEN 'Low price'
                               WHEN lr_vbak-netwr > 5000 AND lr_vbak-netwr <= 10000 THEN 'Medium price'
                               ELSE 'High price' ).
  WRITE/ lr_vbak-vbeln lr_vbak-netwrlv_text.
ENDLOOP.

Input


Output



******************************Thank You***************************

Comments

Popular posts from this blog

Pf status and user command in factory method - OOPS ALV in ABAP

fetch the data from table and send an email in ABAP

Enhancements in abap