最近几天,SAP S4 2020对应的ABAP 7.55的新版文档已经出现。本文翻译了ABAP SQL之外的更新部分。ABAP SQL的更新比较长,会再之后单独成篇。

译者水平有限,如有错误,请评论指出,谢谢。

本文链接:https://www.cnblogs.com/hhelibeb/p/13830356.html

转载请注明

 

Data Types

1. Indicator structures

TYPES语句有了新的附加选项[INDICATORS],可以为给定的结构类型定义一个indicator structure子结构。indicator structure可以在ABAP SQL读写语句中用作ABAP SQL indicator

  • 示例代码,注意<wa>-ind-price指定了需要更新的字段。这类似于BAPI中的DATAX字段。

    TYPES wa TYPE sflight WITH INDICATORS ind.
    
    DATA itab TYPE TABLE OF wa WITH EMPTY KEY.
    
    SELECT carrid, connid, fldate, price
    FROM sflight
    WHERE carrid = char`LH` AND
    connid = numc`0400` AND
    fldate = @sy-datum
    INTO CORRESPONDING FIELDS OF TABLE @itab. IF sy-subrc = 0. LOOP AT itab ASSIGNING FIELD-SYMBOL(<wa>).
    <wa>-price *= '0.8'.
    <wa>-ind-price = '01'.
    ENDLOOP. UPDATE sflight FROM TABLE @itab INDICATORS SET STRUCTURE ind. ENDIF.

原始链接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-types.htm 

数据字典

1. Name Table的内部处理

name table (nametab)用于存储有着数据字典类型的运行期对象。name table会持久化存储在native数据库表DDNTT和DDNTF中。

在新版本中,它的内部处理发生了变化。

  • 结果是:

    • 不能再使用ABAP内部语句EXPORT NAMETAB,使用它会导致运行期错误。
    • 考虑到向下兼容性,IMPORT NAMETAB依然得到了部分支持。访问DDIC Table类型会导致运行期错误。其它访问会导致ATC错误。
    • 先前用于存储字段描述的的native数据库表DDNTF会被删除,不再得到支持。

原始链接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-ddic.htm

ABAP CDS

1. 在projection视图中定义association

现在可以在projection视图中定义到外部数据源的association了。

2. CDS view entities

新的CDS视图类型:CDS view entities

CDS view entities是CDS DDIC-based views (DEFINE VIEW)的增强,它们服务于相同的目的,有同样的结构,但是提供不同的优点。

计划在未来使用CDS view entities代替CDS DDIC-based views。使用DEFINE VIEW ENTITY定义CDS view entities。

原始链接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-abap_cds.htm

Sessions

1. ABAP sessions的数量

配置文件参数rdisp/max_alt_modes决定了每个用户的最大ABAP sessions数量。它的默认值已经从6增大为16,16也是系统允许设置的最大值。

原始链接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-abap_sessions.htm

表达式和函数

1. 构造运算符REDUCE中的计算赋值

在构造函数运算符REDUCE的加法NEXT后面的赋值中,现在可以使用计算赋值运算符=、=、*=、/或&&=,并且适用各自的规则。

原始链接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-expressions.htm

字符处理

1. 支持Perl兼容正则

除了现有的对POSIX正则的支持,现在ABAP支持PCRE正则,通过PCRE2库进行处理,这是在ABAP Kernel实现的。可以通过和使用POSIX正则一样的方式使用PCRE正则。

  • 区分方式是:

相比POSIX正则,PCRE正则更加强大,也有着更好的性能。更多信息,参考Regular Expressions.

2. 逐字替换

REPLACE语句的新附加项VERBATIM可以使替换字符串的所有字符按字面使用。通过此附加项,正则表达式字符串将不会有特殊意义。

  • 例子,其中2与3有同样的效果,但VERBATIM的性能更好。

    DATA(text1) = `123XXX456`.
    DATA(text2) = text1.
    DATA(text3) = text1. DATA(regex) = `(\d*)(\D*)(\d*)`. REPLACE PCRE regex IN text1 WITH `$1___$3`.
    REPLACE PCRE regex IN text2 WITH `$1___$3` VERBATIM.
    REPLACE PCRE regex IN text3 WITH `\$1___\$3`. cl_demo_output=>display( |{ text1 }\n{ text2 }\n{ text3 }| ).

3. 新的可捕捉异常CX_SY_STRING_SIZE_TOO_LARGE

过去,导致string超过最大长度的操作总是会导致运行期错误STRING_SIZE_TOO_LARGE。现在,会触发可以处理的异常CX_SY_STRING_SIZE_TOO_LARGE

在条件满足的情况下,对于语句CALL TRANSFORMATION,也可以处理该异常。

4. 用于decimal floating point number的金额格式化选项

现在,

  • WRITE TOWRITE语句的CURRENCY附加项
  • 在string template中的格式化选项CURRENCY

也可以用于decimal floating point number

原始链接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-strings.htm

ABAP CDS访问控制

待施工

原始链接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-cds_access_control.htm

异常处理

1. 声明CX_NO_CHECK异常

CX_NO_CHECK类别的异常现在总是在接口中被隐式地声明,并且总是被传播。

现在也可以在程序接口中通过RASING声明CX_NO_CHECK异常。比如对于methods。这样就可以记录可能出现的这种异常,以及将现有异常的类别更改为CX_NO_CHECK,而不导致接口的语法错误。

原始链接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-exceptions.htm

 
 
 
 
 
 
 
 

ABAP 7.55 新特性 (一)的更多相关文章

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

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

  2. ABAP 7.50 新特性之另一个CORRESPONDING

    在ABAP中,存在着一条法则:同样的名称代表的不一定是同样的东西(具体可看最近的相关讨论). 但是如你们所知的,存在着一个很好的例外: 所有涉及到使用CORRESPONDING为结构赋值的关键字的语法 ...

  3. ABAP 7.52 中的Open SQL新特性

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

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

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

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

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

  6. Java基础学习总结(55)——java8新特性:stream

    java作为开发语言中的元老已经度过了很多年,最新的java8为我们带来了一些新特性,这些特性可以在以后的工作中为我们的开发提供更多的便捷,现在就让我们看看最新的函数式编程风格怎么在实际的开发中使用. ...

  7. 谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 撰写经历(Experience) 特约稿正文(Content-body) 第一部分:生活中资源 ...

  8. 初识 MySQL 5.6 新特性、功能

    背景: 之前介绍过 MySQL 5.5 新功能.参数,现在要用MySQL5.6,所以就学习和了解下MySQL5.6新的特性和功能,尽量避免踩坑.在后续的学习过程中文章也会不定时更新. 一:参数默认值的 ...

  9. 【SAP BO】BOE 4.1版本新特性

    为了更好地向用户推广BusinessObjects BI 4.1版本的新特性,SAP公司宣布将在2012年中旬推出针对BusinessObjects BI 4.0的功能补丁程序(Feature Pac ...

随机推荐

  1. flutter vscode 安卓打包apk文件

    配置 VSCode默认是没有使用密钥签名的,往往我们在正式项目中是需要签名的.那就创建好了...所以需要自己创建并使用密钥签名 步骤一 创建密钥库 执行以下命令: keytool -genkey -v ...

  2. apply用法

    result.push.apply(result, document.getElementsByTagName(tag)); 但是,这里为什么要用apply呢? 因为document.getEleme ...

  3. 一文说清 InnoDB 的事务机制

    我们从一个转账的故事开始. 隔壁小王从美团上找到了一家水饺店,准备中午吃水饺.下单成功,支付20元. 商家这里响了一下:叮叮,您有美团外卖新订单啦,请及时处理.水饺一份,好嘞,下锅. 很快小王吃到外卖 ...

  4. CSS特效(一)

    三角形 <!-- log --> <div class="tri"></div> <style> .tri { width: 0; ...

  5. Linux系统安装01-centos7系统安装

    2020注定是一个不平凡的年份,对于各行各业都是不小的波动.话说回来,从当前的互联网趋势来看,linux的使用以后会越来越广泛,既然之前不懂linux,那么我们就从头开始,先学习Linux的系统安装. ...

  6. [LeetCode]面试题 01.06. 字符串压缩

    题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串aabcccccaaa会变为a2b1c5a3.若"压缩"后的字符串没有变短,则返回原先 ...

  7. Linq To EF 用泛型时生成的Sql会查询全表的问题

    1.问题的现象 public class LinqHepler<T> where T:class { private EFDBContext _context = null; /// &l ...

  8. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(6)

    前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx–技术流ken>,<Git+Gitlab+An ...

  9. 【Java并发编程】从CPU缓存模型到JMM来理解volatile关键字

    目录 并发编程三大特性 原子性 可见性 有序性 CPU缓存模型是什么 高速缓存为何出现? 缓存一致性问题 如何解决缓存不一致 JMM内存模型是什么 JMM的规定 Java对三大特性的保证 原子性 可见 ...

  10. 【大数据】深入源码解析Map Reduce的架构

    这几天学习了MapReduce,我参照资料,自己又画了两张MapReduce的架构图. 这里我根据架构图以及对应的源码,来解释一次分布式MapReduce的计算到底是怎么工作的. ​话不多说,开始! ...