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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:


CDS view注解解析 - @Environment.systemField的更多相关文章
- springboot情操陶冶-@ConfigurationProperties注解解析
承接前文springboot情操陶冶-@Configuration注解解析,本文将在前文的基础上阐述@ConfigurationProperties注解的使用 @ConfigurationProper ...
- springboot情操陶冶-@Configuration注解解析
承接前文springboot情操陶冶-SpringApplication(二),本文将在前文的基础上分析下@Configuration注解是如何一步一步被解析的 @Configuration 如果要了 ...
- cds view 创建和调用
cds view 是一个core data service, 能够将数据库表虚拟化为一个虚拟表(double).因为各个使用sap的公司,使用的数据库数据是不同的,所以提供一个数据库的虚拟. 通过向 ...
- 如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务
Jerry 2016年在学习SAP CDS view时,曾经写过一个CDS view的自学系列,其中有一篇提到了一个很方便的注解: @OData.publish: true 加上这个注解的CDS vi ...
- 这一次搞懂Spring自定义标签以及注解解析原理
前言 在上一篇文章中分析了Spring是如何解析默认标签的,并封装为BeanDefinition注册到缓存中,这一篇就来看看对于像context这种自定义标签是如何解析的.同时我们常用的注解如:@Se ...
- Sprign-mvc系列之Spring快速入门 什么是sprign-mvc spring-mvc的作用及其基本使用+组件解析+注解解析
Spring-mvc 什么是SpringMvc SpringMvc是一种基于java的实现Mvc设计模式的请求驱动类型的轻量级web框架,属于SpringFrameWork的后续产品,已经融合在Spr ...
- ABAP CDS - Annotations 注解
Syntax ... annotation[.annotation1[.annotation2]][:value] ... Effect Annotation that can be specifi ...
- 一个使用CDS VIEW 的 DEMO
一个使用CDS VIEW 的demo REPORT demo_cds_currency_conversion. CLASS demo DEFINITION. PUBLIC SECTION. CLASS ...
- Jerry的CDS view自学系列
My CDS view self study tutorial - part 1 how to test odata service generated by CDS view https://blo ...
随机推荐
- [转] Angular 4.0 内置指令全攻略
[From] https://segmentfault.com/a/1190000010416792 简书链接 在这篇文章中,我们将分别列举每一个内置指令的用法,并提供一个例子作为演示.尽量用最少最简 ...
- openssl-devel和openssl 是什么具体关系
[转自] https://zhidao.baidu.com/question/919579491101051499.html Redhat在封装openssl的时候,把openssl分成了几个部分,执 ...
- 划分型博弈型dp
划分型动态规划: 513. Perfect Squares https://www.lintcode.com/problem/perfect-squares/description?_from=lad ...
- centos 7 禅道bug管理软件部署
2018-10-26 部署前置条件 关闭防火墙或者添加防火墙规则,使禅道端口可以通过防火墙 关闭防火墙与selinux 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机 ...
- (转)Openldap相关精品文章
1.运维咖啡吧 https://mp.weixin.qq.com/s__biz=MzU5MDY1MzcyOQ==&mid=2247483754&idx=1&sn=9f20d45 ...
- 1.nginx安装和配置
1.安装 1.1安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel wget 1. ...
- Linux-Xshell5
Linux-Xshell5 1.下载 2.安装 3.新建会话(连接) 点击新建 需要知道要连接的 IP, 查看命令 ifconfig 配置 名称可以自己命名,主机写要连接的 IP,其他的不能改 输 ...
- Kettle集群部署(1台Windows主机和2台Linux服务器)
不多说,直接上干货! http://blog.csdn.net/jianglushou9763/article/details/70859616
- lua 遍历table
lua中有四种主要的遍历一个table的方法. 第一种方法: for key, value in pairs(testtb) do xxxx end 这种方法是按照key哈希后的顺序遍历的.比如下面代 ...
- Java原生隐藏字符-工具类
package com.seesun2012.common.util; /** 隐藏字符-工具类 @author seesun2012@163.com */ public class HiddenCh ...