最近几天,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. C#程序执行时设置刷新等待

    背景 C#在进行某些调用操作时需要隐藏背景,等待刷新. 步骤 1.前端设置 <!--Loading Mask Region--> <div> <div id=" ...

  2. 业务级别MySQL

    业务级别MySQL 目录 业务级别MySQL 1. 权限管理和备份 1. 用户管理 1. SQLyog可视化操作 2. SQL命令操作 2. MySQL备份 3. 规范数据库设计 1. 为什么需要设计 ...

  3. 【Azure DevOps系列】使ASP.NET Core应用程序托管到Azure Web App Service

    使用Azure DevOps Project设置ASP.NET项目 我们需要先在Azure面板中创建一个Azure WebApp服务,此处步骤我将省略,然后点击部署中心如下图所示: 此处我选择的是Az ...

  4. HTML-CSS-JS Prettify 代码格式化插件

    前提:已经安装 node.js.安装插件 HTML-CSS-JS Prettify,修改node路径,即可通过单击右键 HTML-CSS-JS Prettify 中的 Prettify Code 使用 ...

  5. CSS 常见样式 特殊用法 贯穿线&徽章&箭头

    贯穿渐变线,中间插值 如图: <h3 class="brief-modal-title"> <span>公告</span> </h3> ...

  6. redis-port支持前缀迁移

    一.介绍 redis-port是一款redis数据迁移工具,用来将数据从一个redis迁移到另一个redis实例/redis集群中 ,以下是官方地址: https://github.com/Codis ...

  7. springboot 配置和使用过滤器

    首先在Application文件中添加注解@ServletComponentScan自动扫描当前类的同包以及子包,这样才能将filter装入bean package com.example.acade ...

  8. java8的interface的方法定义

    转自https://www.cnblogs.com/zhenghengbin/p/9398682.html Java8新特性(一)_interface中的static方法和default方法   为什 ...

  9. JVM参数总结

    官方文档 堆参数: -Xms: 堆的初始值,例如 -Xmx2048,初始堆大小为 2G -Xmx: 堆的最大值,例如 -Xmx2048M,允许最大堆内存 2G -Xmn: 新生代大小 -XX:Surv ...

  10. 实验 3:Mininet 实验——测量路径的损耗率

    实验目的 在实验 2 的基础上进一步熟悉 Mininet 自定义拓扑脚本,以及与损耗率相关的设 定:初步了解 Mininet 安装时自带的 POX 控制器脚本编写,测试路径损耗率. 实验任务 h0 向 ...