ABAP 7.57更新概览

背景

ABAP 7.57看起来是2022年更新的,对应的ABAP平台版本和S4HANA版本是2022,如果大家确定自己的系统版本,也可以通过SM51 release notes查看SAP Kernel参数值,与下图对应。
在这里插入图片描述

前言

ABAP 7.57更新了很多内容啊,对于CDS和ABAP restful programming model等主题康师傅不是很熟悉,所以重点讲以红框中关于函数&表达式&SQL的东西,也是我们ABAP开发中常用的对象。
在这里插入图片描述

更新内容

  • 动态的组件Assign,用于替代旧有的assign compnent ‘XX’ of structure YY
*旧语法
	assign component 'COMP1'of structure struct1 to FIELD-SYMBOL(<fs1>).
*新语法
  ASSIGN struct1-(comp1) TO FIELD-SYMBOL(<fs1>).
  ASSIGN NEW cls( )->attr-(comp2) TO FIELD-SYMBOL(<fs2>).
  • UNASSIGN关键字,取消分配
ASSIGN ('field') TO FIELD-SYMBOL(<fs>) ELSE UNASSIGN. 
  • FINAL关键字,用于定义不可变的“变量”,该关键字支持inline declaration
FINAL(yesterday) = CONV d( sy-zonlo - 1 ).

"yesterday -= 1. <-- Syntax error

SELECT carrid, connid, seatsocc
       FROM sflight
       WHERE fldate = @yesterday
       INTO TABLE @final(result).

LOOP AT result INTO FINAL(wa).
  ...
  "wa-seatsocc = 0. <-- Syntax error
  ...
ENDLOOP.

"APPEND wa TO result. <-- Syntax error
  • STEP 关键字, 用于定义内表处理步骤幅度(下一行的索引差,默认是1)和处理顺序(默认从头到尾),对于LOOP和FOR关键字,两个功能都支持,对于APPEND/DELETE/INSERT/VALUE/NEW, STEP只能用于定义步骤幅度。
LOOP AT itab ASSIGNING FIELD-SYMBOL(<fs>)
             FROM 3 TO 1 STEP -1.
  cl_demo_output=>write( <fs> ).
ENDLOOP.

APPEND LINES OF jtab FROM 1 TO 5 STEP 2 TO itab.

DELETE itab FROM 1 TO 8 STEP 2.

INSERT LINES OF itab FROM 1 TO 5 STEP 2.

DATA(itab) = VALUE t_itab( ( ) ( 20 ) ( 40 )
  ( LINES OF jtab FROM 6 STEP 2 ) ).

DATA(itab) = NEW t_itab( ( LINES OF jtab FROM 3 STEP 2 )
                         ( LINES OF jtab FROM 2 STEP 3 ) ).
 

  • ABAP关键字文档包含了ABAP Cheat Sheets,提供更友好的ABAP编程指南。
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值