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 感謝作者分享。