天天看點

CDS view注解解析 - @Environment.systemField

這個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.