在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的更多相关文章

  1. ABAP 7.50 新特性 – Open SQL中的宿主表达式和其它表达式

    在长期的停滞后,Open SQL的发展终于从沉睡中醒来.从ABAP 7.40开始,SAP推进了某些关键的改变,以尽可能地包含SQL92中的特性,并提供与ABAP CDS中的DDL里面的SELECT一样 ...

  2. Java12新特性 -- 只保留一个 AArch64 实现

    现状 当前 Java 11 及之前版本JDK中存在两个64位ARM端口.这些文件的主要来源位于src/hotspot/cpu/arm 和 open/src/hotspot/cpu/aarch64 目录 ...

  3. 利用ABAP 740的新关键字REDUCE完成一个实际工作任务

    ABAP 740从2013年发布至今已经过去很长的时间了,下面这张图来自SAP社区博客: ABAP News for Release 7.40 – What is ABAP 7.40? 图中的ABAP ...

  4. ABAP 7.55 新特性 (一)

    最近几天,SAP S4 2020对应的ABAP 7.55的新版文档已经出现.本文翻译了ABAP SQL之外的更新部分.ABAP SQL的更新比较长,会再之后单独成篇. 译者水平有限,如有错误,请评论指 ...

  5. SQL2012新特性一次一个数据块----特殊的查询分页

    对于数据库人员来说,在软件项目开发的过程中,或多或少的不可避免的就是经常遇到类似“UI查询结果设计”这样的说法,当听到UI设计的时候,多数人的第一反应是“靠!关我毛事!~这是其他人的问题!”. 然而, ...

  6. ABAP 7.52 中的Open SQL新特性

    S/4 HANA 1709 已经在几个月前发布,随之而来的是ABAP 7.52. 本文翻译了更新文档中有关Open SQL的部分 本文链接:http://www.cnblogs.com/hhelibe ...

  7. ABAP 7.53 中的ABAP SQL(原Open SQL)新特性

    S/4 HANA 1809 已经在上月发布,随之而来的是ABAP 7.53. 本文是更新文档中ABAP SQL的部分的翻译. 本次更新的内容较多,主要内容包括:Open SQL更名为ABAP SQL: ...

  8. ABAP 7.40, SP08 中的 Open SQL 新特性

    1,使用 data_source~*指定列 在7.40, SP08中,可以在SELECT语句中使用data_source~*来指定选取不同的数据库表.视图的全部列来作为结果集.它也可以和单独指定的列c ...

  9. java-API中的常用类,新特性之-泛型,高级For循环,可变参数

    API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...

随机推荐

  1. leetcode — container-with-most-water

    /** * Source : https://oj.leetcode.com/problems/container-with-most-water/ * * Created by lverpeng o ...

  2. Python和Java编程题(五)

    题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的 ...

  3. Trie(字典树)解析及其在编程竞赛中的典型应用举例

    摘要: 本文主要讲解了Trie的基本思想和原理,实现了几种常见的Trie构造方法,着重讲解Trie在编程竞赛中的一些典型应用. 什么是Trie? 如何构建一个Trie? Trie在编程竞赛中的典型应用 ...

  4. python之字符串中有关%d,%2d,%02d的问题

    python之字符串中有关%d,%2d,%02d的问题 在python中,通过使用%,实现格式化字符串的目的.(这与c语言一致) 其中,在格式化整数和浮点数时可以指定是否补0和整数与小数的位数. 首先 ...

  5. VB.NET 窗體操作

    Private Sub A1() '加载窗体 frm1.Show() End Sub Private Sub A2() '離開 Process.GetCurrentProcess().Kill() E ...

  6. javascript如何操作数组

    说明 如需求:后台返回一个用户列表数组,该数组可能为空,最多只可能会有10个用户, 页面中A,B两处展示用户列表,B处不管如何都会展示返回的所有用户,A处需要展示10个用户,不足10个展示默认用户, ...

  7. RyuJIT的华丽转身【译文】

    2018-06-19 RyuJIT是作为.NET即时编译器的代号称谓,它是.NET运行时的基本组件之一.与此相反的是,Roslyn作为C#编译器,其编译C#代码成为IL字节码.然后,其再将IL字节码编 ...

  8. csharp: FTP Client Library using System.Net.FtpWebRequest

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  9. 从零开始学习html(七)CSS样式基本知识

    一.内联式css样式,直接写在现有的HTML标签中 <!DOCTYPE HTML> <html> <head> <meta http-equiv=" ...

  10. 网页一键加入QQ群

    三步简单实现功能:网页提供加入qq群按钮  让他人一键加入qq群 第一步:进入qq群官网:http://qun.qq.com/join.html 第二步:选择需要加入的群并生成网页代码 第三步:在网页 ...