SAP-ABAP 新特性 - Value 操作符


*&---------------------------------------------------------------------*
*& Report YTEST0001
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ytest0001.

*定義數據結構
TYPES:
  BEGIN OF gs_001,
    code  TYPE char2,
    value TYPE char10,
  END OF gs_001.

TYPES gty_001 TYPE TABLE OF gs_001 WITH DEFAULT KEY.
DATA:gt_002 TYPE TABLE OF gs_001.

*直接定義結構賦值
DATA gw_a1 TYPE gs_001.
gw_a1 = VALUE #( code = '01' value = 'test01' ).

*行內聲明賦值
DATA(gw_a2) = VALUE gs_001( code = '01' value = 'test02' ).

*BASE關鍵字
DATA(gw_a3) = VALUE #( BASE gw_a2 code = '03' ).

*內表賦值
DATA(gt_001) = VALUE gty_001( ( code = '04' value = 'test04' )
                              ( code = '05' value = 'test05' ) ).

*聲明內表,然後添加記錄
gt_002 = value #( ( code = '06' value = 'test06' ) ( code = '07' value = 'test07' ) ).
append value #( code = '08' value = 'test08' ) to gt_002.


*BASE 內表操作
gt_002 = VALUE #( BASE gt_002 ( code = '09' value = 'test09' )
                              ( code = '10' value = 'test10' ) ).
"$. Region ReadWoreArea

*讀取工作區
**code='11''抓取不到數據時會報錯
*data(gw_a4) = gt_002[ code = '11' ].
**方法一、通過TRY 抓取錯誤
*TRY .
*
*CATCH .
*
*ENDTRY.
*方法二 添加OPTIONAL,返回的是 initional
data(gw_a4) = value #( gt_002[ code = '11' ] OPTIONAL ).

*方法三 返回的是  initional 給默認值:DEFAULT
data(gw_a5_def) = value gs_001( code = '00' value = 'test00' ).
data(gw_a5) = VALUE #( gt_002[ code = '11' ] DEFAULT gw_a5_def ).

"$. Endregion ReadWoreArea


*cl_demo_output=>new( )->next_section( |直接定議結構賦值| )->write( gw_a1 )->display( ).
cl_demo_output=>new(
      )->next_section( |直接定議結構賦值| )->write( gw_a1
      )->next_section( |行內聲明賦值| )->write( gw_a2
      )->next_section( |BASE關鍵字| )->write( gw_a3
      )->next_section( |內表賦值| )->write( gt_001
      )->next_section( |聲明內表,然後添加記錄(通過Append和Base)| )->write( gt_002
      )->next_section( |讀取內表| )->write( gw_a4
      )->next_section( |讀取內表,賦默認值| )->write( gw_a5
      )->display( ).

學習視頻:BN01 - SAP ABAP 新特性 - Value 操作符_哔哩哔哩_bilibili 感謝作者分享。

相关