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

相關文章
相關標籤/搜索