ABAP 7.54更新概览

前言

7.54对应的版本系统版本是1909,Kernel版本为7.77,详情参考下图。本文仅列出本人熟悉的ABAP常规开发内容(如SQL),对于CDS和AMDP不太懂,完全版参考关键字文档。在这里插入图片描述

更新内容

  • 新的数据字典类型
    DECFLOAT16,DECFLOAT34,DATN,TIMN,UTCLONG,GEOM_EWKB
    DATN与原有的DATS相似,但初始值为0, TIMN同理。
  • 检查表支持过时数据标记,使用固定列名标记条目状态,详情参考示例程序DEMO_DYNPRO_DEPRECATION
  • 四则运算操作符+=,-+,*=,/=,字符串操作&=
    ADD, SUBTRACT, MULTIPLY, DIVIDE成为过时语句
  • SQL into语法增强
    NEW关键字隐式申明引用变量
SELECT *
  FROM (dbtab)
  INTO NEW @DATA(row)
  UP TO @rows ROWS.
ASSIGN row->* TO FIELD-SYMBOL(<fs>).

INDICATORS用于标识字段,目前可以判断是否为初始值

DELETE FROM demo_expressions.
INSERT demo_expressions FROM @( VALUE #( ID = 'X' num1 = 1 ) ).

SELECT SINGLE
FROM demo_expressions
FIELDS
num1 AS X,
CASE WHEN num1 = 0 THEN 0 ELSE 2 END AS y,
CASE WHEN num1 = 0 THEN 0 END AS Z
INTO @DATA(wa) INDICATORS NULL STRUCTURE null_ind.

最终结构
在这里插入图片描述

  • 新的CTE association定义支持关键字JOIN TO ONE|MANY,参考示例程序DEMO_WITH_ASSOCIATIONS_JOIN
  • 新的聚合函数STRING_AGG,可以将一列的内容按照顺序拼接成字符串,参考示例程序DEMO_STRING_AGG。
  • 聚合函数count可以省略distinct关键字单独使用,统计所有非null行的条目
  • SQL查询支持window function, 实现按多个字段聚合的效果,如下图的SQL通过关键字OVER和PARTITION的配合,实现按字段CHAR1,CHAR2聚合。
SELECT char1 && '_' && char2 AS group,
           num1,
           COUNT(*)      OVER( PARTITION BY char1, char2 ) AS cnt,
           ROW_NUMBER( ) OVER( PARTITION BY char1, char2 ) AS rnum,
           MIN( num1 )   OVER( PARTITION BY char1, char2 ) AS min,
           MAX( num1 )   OVER( PARTITION BY char1, char2 ) AS max,
           SUM( num1 )   OVER( PARTITION BY char1, char2 ) AS sum,
           division( 100 * num1,
                     SUM( num1 ) OVER( PARTITION BY char1, char2 ),
                     2 ) AS perc
           FROM demo_expressions
           ORDER BY group
           INTO TABLE @DATA(windowed).
  • SQL表达式开始支持聚合函数

Guess you like

Origin blog.csdn.net/u012232542/article/details/120995611