写点什么

SAP CDS view 注解解析 - @Environment.systemField

用户头像
Jerry Wang
关注
发布于: 2021 年 05 月 23 日
SAP CDS view注解解析 - @Environment.systemField

下面的 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 时, 我们会被要求给这两个参数指定值:



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



要获取更多 Jerry 的原创技术文章,请关注公众号"汪子熙":



发布于: 2021 年 05 月 23 日阅读数: 6
用户头像

Jerry Wang

关注

个人微信公众号:汪子熙 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。

评论

发布
暂无评论
SAP CDS view注解解析 - @Environment.systemField