CDS view註解解析 - @Environment.systemField

i042416發表於2018-02-25

下面的CDS view使用到了@Environment.systemField這個註解,定義了兩個引數#SYSTEM_LANGUAGE和#USER。

這個view從CRM物料主資料的產品抬頭表COMM_PRODUCT讀取product_id, product_type,以及comm_prshtext表裡讀取產品的描述資訊,儲存在欄位description裡。

 @AbapCatalog.sqlViewName: 'zprdtext' @AbapCatalog.compiler.compareFilter: true @AccessControl.authorizationCheck: #CHECK @EndUserText.label: 'Jerry product description' define view Zproductdescription with parameters @Consumption.hidden: true @Environment.systemField: #SYSTEM_LANGUAGE P_Language : syLangu, 
@Consumption.hidden: true @Environment.systemField : #USER p_uname : syst_uname as select from comm_product as product inner join comm_prshtext as _text on product.product_guid = _text.product_guid { key product.product_id, 
product.product_type, 
_text.short_text as description } where product.upname = :p_uname and _text.langu = :p_Language 

當我們在ABAP Development Studio裡預覽該view時, 我們會被要求給這兩個引數指定值:

CDS view註解解析 - @Environment.systemField

在Open SQL裡,這兩個引數會自動被分別賦以ABAP程式語言裡系統變數sy-langu和sy-uname的值。

 data: lt_result TYPE TABLE OF Zproductdescription. SELECT * FROM Zproductdescription INTO TABLE @lt_result . 

這一點我們可以透過使用事務碼ST05得到的trace裡得到確認:在執行時P_LANGUAGE被賦以了sy-langu的值E,而P_UNAME被賦以sy-uname的值WANGJER.

CDS view註解解析 - @Environment.systemField

要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:

CDS view註解解析 - @Environment.systemField
CDS view註解解析 - @Environment.systemField

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2151229/,如需轉載,請註明出處,否則將追究法律責任。

相關文章