ABAP 7.57更新概览"/>
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 errorSELECT carrid, connid, seatsoccFROM sflightWHERE fldate = @yesterdayINTO 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编程指南。
更多推荐
ABAP 7.57更新概览
发布评论