ABAP 7.55 新特性 (一)
最近几天,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会被删除,不再得到支持。
- 不能再使用ABAP内部语句
原始链接: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也是系统允许设置的最大值。
表达式和函数
1. 构造运算符REDUCE中的计算赋值
在构造函数运算符REDUCE
的加法NEXT
后面的赋值中,现在可以使用计算赋值运算符=、=、*=、/或&&=,并且适用各自的规则。
字符处理
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的金额格式化选项
现在,
也可以用于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访问控制
待施工
异常处理
1. 声明CX_NO_CHECK异常
CX_NO_CHECK
类别的异常现在总是在接口中被隐式地声明,并且总是被传播。
现在也可以在程序接口中通过RASING
声明CX_NO_CHECK
异常。比如对于methods。这样就可以记录可能出现的这种异常,以及将现有异常的类别更改为CX_NO_CHECK
,而不导致接口的语法错误。
ABAP 7.55 新特性 (一)的更多相关文章
- ABAP 7.50 新特性 – Open SQL中的宿主表达式和其它表达式
在长期的停滞后,Open SQL的发展终于从沉睡中醒来.从ABAP 7.40开始,SAP推进了某些关键的改变,以尽可能地包含SQL92中的特性,并提供与ABAP CDS中的DDL里面的SELECT一样 ...
- ABAP 7.50 新特性之另一个CORRESPONDING
在ABAP中,存在着一条法则:同样的名称代表的不一定是同样的东西(具体可看最近的相关讨论). 但是如你们所知的,存在着一个很好的例外: 所有涉及到使用CORRESPONDING为结构赋值的关键字的语法 ...
- 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基础学习总结(55)——java8新特性:stream
java作为开发语言中的元老已经度过了很多年,最新的java8为我们带来了一些新特性,这些特性可以在以后的工作中为我们的开发提供更多的便捷,现在就让我们看看最新的函数式编程风格怎么在实际的开发中使用. ...
- 谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 撰写经历(Experience) 特约稿正文(Content-body) 第一部分:生活中资源 ...
- 初识 MySQL 5.6 新特性、功能
背景: 之前介绍过 MySQL 5.5 新功能.参数,现在要用MySQL5.6,所以就学习和了解下MySQL5.6新的特性和功能,尽量避免踩坑.在后续的学习过程中文章也会不定时更新. 一:参数默认值的 ...
- 【SAP BO】BOE 4.1版本新特性
为了更好地向用户推广BusinessObjects BI 4.1版本的新特性,SAP公司宣布将在2012年中旬推出针对BusinessObjects BI 4.0的功能补丁程序(Feature Pac ...
随机推荐
- 单应用模式 - Layuiadmin单页版放入TP6.0的部署方案
thinkphp6.0.3单应用模式.layuiadmin1.4.0单页版,不需要tp的视图驱动 1. 复制 src.start 两个文件夹 2. 粘贴到 thinkphp 的 public 目录下 ...
- Require.js中的路径在IDEA中的最佳实践
本文主要讲述require.js在IDEA中路径智能感知的办法和探索中遇到的问题. 测试使用的目录结构:一种典型的thinkphp 6的目录结构,如下图. 现在我通过在 vue-a.js 中运用不同的 ...
- Linux幽灵漏洞修复
1. 漏洞说明 1.1 漏洞原理 glibc是GNU发布的libc库,即c运行库,在glibc库中的__nss_hostname_digits_dots()函数存在一个缓冲区溢出的漏洞,这个漏洞可以经 ...
- TX-LCN分布式事务框架使用
官方文档相关: GitHub地址:https://github.com/codingapi/tx-lcn 官方文档:https://www.codingapi.com/docs/txlcn-prefa ...
- stp域中两台switch互联接口出现两口均为root口 并且在现有stp区域中无法确定根桥设备位置;分析其原因并赋予解决办法
stp域中两台switch互联接口出现两口均为root口 并且在现有stp区域中无法确定根桥设备位置:分析其原因并赋予解决办法 1.于上图描述了案例中当前组网环境的各交换机位置与stp状态情况 : ...
- Spring系列 之数据源的配置 数据库 数据源 连接池的区别
Spring系列之数据源的配置 数据源,连接池,数据库三者的区别 连接池:这个应该都学习过,比如c3p0,druid等等,连接池的作用是为了提高程序的效率,因为频繁的去创建,关闭数据库连接,会对性能有 ...
- st表、RMQ和LCA
int lca(int x,int y) { if(de[x]<de[y]) swap(x,y); int d=de[x]-de[y]; for(int i=log2(d);i>=0;i- ...
- Onethink 前台编辑器调用
比较偷懒的调用方式 <textarea name="content"></textarea> {:hook('documentEditFormContent ...
- 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象
079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...
- 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学
076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...