CDS view註解解析 - @Environment.systemField

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

這個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時, 咱們會被要求給這兩個參數指定值:編程語言

在Open SQL裏,這兩個參數會自動被分別賦以ABAP編程語言裏系統變量sy-langu和sy-uname的值。ui

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.code

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

相關文章
相關標籤/搜索