前言
7.55对应的版本系统版本是2020,Kernel版本为7.81,详情参考下图,同时SAP提出了一个ABAP platform的概念;本文仅列出本人熟悉的ABAP常规开发内容(如SQL),对于CDS和AMDP不太懂,完全版参考关键字文档。
更新内容
- nametable处理过时,语法export nametab不能继续使用,import nametab依然兼容,同时删除表DDNTF.
- ABAP session(会话窗口)最大条目从6增加为16,通过调整参数rdisp/max_alt_modes修改
- TYPES关键字支持通过INDICATORS选项,为当前类型定义一个indicator结构作为嵌套的子结构,可以作为ABAP SQL indicator在SQL读写操作中使用;如下图代码,实现只更新price列的效果,如果没有indicator,则所有非key列都会更新。
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.
- 启用对PCRE正则表达式的支持
- 关键字replace添加新的选项VERBATIM,实现转义效果,同符号\功能相似,但是速度更快。
- 聚合功能ALLOW_PRECISION_LOSS ,通过先计算小数位,提升小数位聚合的效率,但会产生一定的误差,参考示例程序PRECISION,
DELETE FROM demo_expressions.
INSERT demo_expressions FROM TABLE @(
VALUE #( ( id = 'X' dec2 = '2.119999' )
( id = 'Y' dec2 = '2.118888' )
( id = 'A' dec2 = '1.13999' )
( id = 'Z' dec2 = '2.668888' )
) ).
SELECT SUM( CAST( dec2 AS DEC( 10,2 ) ) ) AS sum1
FROM demo_expressions INTO @normal_sum_result.
SELECT allow_precision_loss( SUM( CAST( dec2 AS DEC( 10,2 ) ) ) )
AS sum1
FROM demo_expressions INTO @allow_precision_loss_result.
输出结果
- SQL日期时间转换功能,实现日期新旧格式,以及timestamp和UTC格式的转换
◾TSTMPL_TO_UTCL and TSTMPL_FROM_UTCL
◾DATS_TO_DATN and DATS_FROM_DATN
◾TIMS_TO_TIMN and TIMS_FROM_TIMN
- SQL时间戳处理功能
UTCL_CURRENT
UTCL_ADD_SECONDS
UTCL_SECONDS_BETWEEN
- SQL日期处理功能
DATN_DAYS_BETWEEN
DATN_ADD_DAYS
DATN_ADD_MONTHS
- 关键字Order by 新选项 NULLS FIRST & NULLS LAST
- 新的SQL聚合功能,其中最后两个CORR关键字用于计算两列的相关系数
MEDIAN:中位数
STDDEV:标准差
VAR:方差
CORR:皮尔逊相关系数
CORR_SPEARMAN:斯皮尔曼等级相关
- SQL功能函数AS_GEO_JSON,用于经纬度GEO格式从xstring到string的转换
- SQL转换函数to_clob && to_blob
- SQL转换函数currency_conversion
- SQL字符函数 REPLACE_REGEXPR, LIKE_REGEXPR, 和 OCCURRENCES_REGEXPR实现相应正则表达式功能