最近几天,SAP S4 2020对应的ABAP 7.55的新版文档已经出现。本文翻译了ABAP SQL以外的更新部分。ABAP SQL的更新比较长,会在以后单独成篇。html
译者水平有限,若有错误,请评论指出,谢谢。正则表达式
本文连接:http://www.javashuo.com/article/p-nsfthqwx-nu.htmlsql
转载请注明数据库
TYPES
语句有了新的附加选项[INDICATORS]
,能够为给定的结构类型定义一个indicator structure子结构。indicator structure能够在ABAP SQL读写语句中用做ABAP SQL indicator。express
示例代码,注意<wa>-ind-price指定了须要更新的字段。这相似于BAPI中的DATAX字段。session
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.
name table (nametab)用于存储有着数据字典类型的运行期对象。name table会持久化存储在native数据库表DDNTT和DDNTF中。函数
在新版本中,它的内部处理发生了变化。性能
EXPORT NAMETAB
,使用它会致使运行期错误。IMPORT NAMETAB
依然获得了部分支持。访问DDIC Table类型会致使运行期错误。其它访问会致使ATC错误。
原始连接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-ddic.htm学习
如今能够在projection视图中定义到外部数据源的association了。spa
新的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
配置文件参数rdisp/max_alt_modes
决定了每一个用户的最大ABAP sessions数量。它的默认值已经从6增大为16,16也是系统容许设置的最大值。
在构造函数运算符REDUCE
的加法NEXT
后面的赋值中,如今可使用计算赋值运算符=、=、*=、/或&&=,而且适用各自的规则。
除了现有的对POSIX正则的支持,如今ABAP支持PCRE正则,经过PCRE2库进行处理,这是在ABAP Kernel实现的。能够经过和使用POSIX正则同样的方式使用PCRE正则。
相比POSIX正则,PCRE正则更增强大,也有着更好的性能。更多信息,参考Regular Expressions.
REPLACE语句的新附加项VERBATIM
可使替换字符串的全部字符按字面使用。经过此附加项,正则表达式字符串将不会有特殊意义。
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 }| ).
过去,致使string超过最大长度的操做老是会致使运行期错误STRING_SIZE_TOO_LARGE
。如今,会触发能够处理的异常CX_SY_STRING_SIZE_TOO_LARGE
。
在条件知足的状况下,对于语句CALL TRANSFORMATION
,也能够处理该异常。
如今,
也能够用于decimal floating point number。
原始连接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-strings.htm
待施工
CX_NO_CHECK
类别的异常如今老是在接口中被隐式地声明,而且老是被传播。
如今也能够在程序接口中经过RASING
声明CX_NO_CHECK
异常。好比对于methods。这样就能够记录可能出现的这种异常,以及将现有异常的类别更改成CX_NO_CHECK
,而不致使接口的语法错误。