ABAP 7.50 新特性之另一个CORRESPONDING
在ABAP中,存在着一条法则:名字不一定代表实际规则(具体可看最近的相关讨论)。
但是如你们所知的,存在着一个很好的例外: 所有涉及到使用CORRESPONDING为结构赋值的关键字的语法形式(偶然地)有着相同的名字..
- 在ABAP 7.40之前,主要有用MOVE-CORRESPONDING来复制结构组件、Open SQL的SELECT的CORRESPONDING附加字段,以及某些过时的计算语句等。
- 在ABAP 7.40中,MOVE-CORRESPONDING可以用于操纵带有结构的内表。并且7.40引入了一个新的构造器操作符CORRESPONDING,它允许显式地将结构的组件映射到不同名字的组件上。
还缺了点什么?答案是动态的映射!这个特性在ABAP 7.50中得到了引入。
新的系统类 CL_ABAP_CORRESPONDING 允许你适用动态指定的映射规则为结构或内表的组件赋值。
映射规则需要创建在一个映射表中,然后传递给映射对象。
例子如下:
DATA(mapper) =
cl_abap_corresponding=>create(
source = struct1
destination = struct2
mapping = VALUE cl_abap_corresponding=>mapping_table(
( level =
kind = cl_abap_corresponding=>mapping_component
srcname = ‘…’
dstname = ‘…’ )
( level =
kind = cl_abap_corresponding=>mapping_component
srcname = ‘…’
dstname = ‘…’ )
( level =
kind = cl_abap_corresponding=>mapping_component
srcname = ‘…’
dstname = ‘…’ ) ) ).
这是个简单的例子,所有组件都在第0层,并且所有组件都得到了映射 (kind = cl_abap_coresponding=>mapping_component)。复杂点的形式会涉及到嵌套结构和排除项。通过srcname和dstname,组件名可以动态地指定。表的建立和CORRESPODING操作符的mapping子句类似。
创建映射对象后,你需要做的就是按如下方式执行赋值:
mapper->execute( EXPORTING source = struct1
CHANGING destination = struct2 ).
你可以一次又一次地为拥有相同类型的结构或者内表来进行这样的操作。
没别的了。更多细节请看:
CL_ABAP_CORRESPONDING – System Class.
远景
到目前为止,只有CORRESPONDING操作符的基本形式被反映到了CL_ABAP_CORRESPONDING里面。而适用lookup table的变体还在实现中..
本文链接: http://www.cnblogs.com/hhelibeb/p/7134317.html
原文标题:ABAP News for Release 7.50 – CORRESPONDING, again …
ABAP 7.50 新特性之另一个CORRESPONDING的更多相关文章
- ABAP 7.50 新特性 – Open SQL中的宿主表达式和其它表达式
在长期的停滞后,Open SQL的发展终于从沉睡中醒来.从ABAP 7.40开始,SAP推进了某些关键的改变,以尽可能地包含SQL92中的特性,并提供与ABAP CDS中的DDL里面的SELECT一样 ...
- Java12新特性 -- 只保留一个 AArch64 实现
现状 当前 Java 11 及之前版本JDK中存在两个64位ARM端口.这些文件的主要来源位于src/hotspot/cpu/arm 和 open/src/hotspot/cpu/aarch64 目录 ...
- 利用ABAP 740的新关键字REDUCE完成一个实际工作任务
ABAP 740从2013年发布至今已经过去很长的时间了,下面这张图来自SAP社区博客: ABAP News for Release 7.40 – What is ABAP 7.40? 图中的ABAP ...
- ABAP 7.55 新特性 (一)
最近几天,SAP S4 2020对应的ABAP 7.55的新版文档已经出现.本文翻译了ABAP SQL之外的更新部分.ABAP SQL的更新比较长,会再之后单独成篇. 译者水平有限,如有错误,请评论指 ...
- SQL2012新特性一次一个数据块----特殊的查询分页
对于数据库人员来说,在软件项目开发的过程中,或多或少的不可避免的就是经常遇到类似“UI查询结果设计”这样的说法,当听到UI设计的时候,多数人的第一反应是“靠!关我毛事!~这是其他人的问题!”. 然而, ...
- ABAP 7.52 中的Open SQL新特性
S/4 HANA 1709 已经在几个月前发布,随之而来的是ABAP 7.52. 本文翻译了更新文档中有关Open SQL的部分 本文链接:http://www.cnblogs.com/hhelibe ...
- ABAP 7.53 中的ABAP SQL(原Open SQL)新特性
S/4 HANA 1809 已经在上月发布,随之而来的是ABAP 7.53. 本文是更新文档中ABAP SQL的部分的翻译. 本次更新的内容较多,主要内容包括:Open SQL更名为ABAP SQL: ...
- ABAP 7.40, SP08 中的 Open SQL 新特性
1,使用 data_source~*指定列 在7.40, SP08中,可以在SELECT语句中使用data_source~*来指定选取不同的数据库表.视图的全部列来作为结果集.它也可以和单独指定的列c ...
- java-API中的常用类,新特性之-泛型,高级For循环,可变参数
API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...
随机推荐
- JVM内存区域划分及垃圾回收
第一部分.闲扯+概述 近来在研读<深入理解java虚拟机>一书,读完之后做个小结,算是记录一下自己的学习所得,在成长的路上,只能死磕. 要理解JVM,就要先从其内存区域划分开始,知道其由几 ...
- Spring Boot + Spring Cloud 构建微服务系统(五):熔断监控面板(Hystrix Dashboard)
Hystrix Dashboard Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Comma ...
- Spring Cloud Ribbon——客户端负载均衡
一.负载均衡负载均衡(Load Balance): 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性.其意思 ...
- flask 压缩json
这样返回的json会被压缩
- SpringBoot----跨域配置
前言: 当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request).比如说,域名A ( http://dom ...
- centos6.5修改yum安装的mysql默认目录
0.说明 Linux下更改yum默认安装的mysql路径datadir. linux下,MySQL默认的数据文档存储目录为/var/lib/mysql. 假如要把MySQL目录移到/home/data ...
- oracle的start with connect by prior
oracle的start with connect by prior是根据条件递归查询"树",分为四种使用情况: 第一种:start with 子节点ID='...' connec ...
- Mysql 存储过程实例详解
存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,存储和和函数的区别在于函数必须有返回值,而存储过程没有,存储过程的参数可以使用IN.OUT.INOUT类型,而函数的参数只能是IN类 ...
- Graphviz的安装 - windows环境下
1. 官网下载 http://www.graphviz.org/ 往下拉,选择这一个 点进去,选择msi文件下载 下载完成之后,直接双击运行即可 安装完成之后要配置环境变量 2. 配置环境变量 将gr ...
- idea not found for the web module
intellij IDEA 的tomcat 配置项里面没有的app web:war exploded 没有配置/路径