ABAP 74新特性汇总.docx
- 文档编号:1234592
- 上传时间:2022-10-19
- 格式:DOCX
- 页数:20
- 大小:238.35KB
ABAP 74新特性汇总.docx
《ABAP 74新特性汇总.docx》由会员分享,可在线阅读,更多相关《ABAP 74新特性汇总.docx(20页珍藏版)》请在冰豆网上搜索。
ABAP74新特性汇总
ABAP7.4新特性
(一):
行内定义InlineDeclarations
以前我们要用一个变量的时候,需要在使用语句的前面先定义。
现在,可以在使用的时候就定义了。
比如说我们经常要预先定义表的工作区,然后在loop时使用。
现在可以在loop的时候就定义对于表的工作区了。
以前:
[plain]viewplaincopyprint?
1.DATA itab TYPE TABLE OF scarr.
2.SELECT * FROM scarr into TABLE itab.
3.DATA wa LIKE LINE OF itab.
4.READ TABLE itab WITH KEY carrid = 'LH' INTO wa.
DATAitabTYPETABLEOFscarr.
SELECT*FROMscarrintoTABLEitab.
DATAwaLIKELINEOFitab.
READTABLEitabWITHKEYcarrid='LH'INTOwa.
现在:
[plain]viewplaincopyprint?
1.DATA itab TYPE TABLE OF scarr.
2.SELECT * FROM scarr into TABLE itab.
3.READ TABLE itab WITH KEY carrid = 'LH' INTO DATA(wa). "行内定义(inline declaration)变量
DATAitabTYPETABLEOFscarr.
SELECT*FROMscarrintoTABLEitab.
READTABLEitabWITHKEYcarrid='LH'INTODATA(wa)."行内定义(inlinedeclaration)变量
LOOPAT同理,注意行内定义的变量作用域和以前定义的是一样的。
又比如在方法中接收返回变量时:
原:
[plain]viewplaincopyprint?
1.DATA a1 TYPE.....
2.DATA a2 TYPE...
3.oref->meth( IMPORTING p1=a1
4. IMPORTING p1=a2
5. .... )
DATAa1TYPE.....
DATAa2TYPE...
oref->meth(IMPORTINGp1=a1
IMPORTINGp1=a2
....)
现在:
[plain]viewplaincopyprint?
1.oref->meth( IMPORTING p1 = DATA(a1)
2. IMPORTING p1= DATA(a2)
3. .... )
oref->meth(IMPORTINGp1=DATA(a1)
IMPORTINGp1=DATA(a2)
....)
对于field symbols也是支持行内定义的。
以前1:
[plain]viewplaincopyprint?
1.DATA a TYPE string VALUE 'test'.
2.FIELD-SYMBOL
3.ASSIGN a to
DATAaTYPEstringVALUE'test'.
FIELD-SYMBOL
ASSIGNato
现在:
[plain]viewplaincopyprint?
1.DATA a TYPE string VALUE 'test'.
2.ASSIGN a to FIELD-SYMBOL(
DATAaTYPEstringVALUE'test'.
ASSIGNatoFIELD-SYMBOL(
还可以用在读取内表中:
[plain]viewplaincopyprint?
1.LOOP AT itab ASSIGNING FIELD-SYMBOL(
2.
3. WRITE:
4.
5.ENDLOOP.
LOOPATitabASSIGNINGFIELD-SYMBOL(
WRITE:
ENDLOOP.
和
[plain]viewplaincopyprint?
1.READ TABLE itab assigning field-symbol(
READTABLEitabassigningfield-symbol(
行内定义方便了我们的使用,在内表中它会自动根据读取的内表类型定义相应的工作区类型。
但是使用这种方法注意作用域问题。
ABAP7.4新特性
(二):
NEW操作符
NEW实例操作符
了解JAVA的知道,我们可以new一个对象实例出来,现在ABAP也可以这样了。
NEW可以创建匿名的数据对象或者类的实例。
匿名就是new出来的对象没有名字。
。
。
因为后面不需要这个对象了,只是为了new出来赋值给左边的对象(赋值也不太对,就指向。
。
。
),一次使用,简化代码。
具体参考java匿名类
一般用到的3种形式后面例子详细解释
1....NEWdtype(value)...
创建一个类型为dtype的匿名数据对象,然后传值给创建的对象(左操作符)。
2....NEWclass(p1=a1p2=a2...)...
创建一个名为class类的实例,并且传参到实例的构造函数。
3....NEW#(...)...
根据操作数类型创建一个匿名数据对象或者一个类的实例。
如a=new#(...),new#(...)这里创建的匿名类是参考a的类型来的,即和a的类型一致。
举例说明一下:
1.new数据对象
before7.4
[plain]viewplaincopyprint?
1.FIELD-SYMBOLS
2.DATA dref TYPE REF TO data.
3.CREATE DATA dref TYPE i.
4.ASSIGN dref->* TO
5.
FIELD-SYMBOLS
DATAdrefTYPEREFTOdata.
CREATEDATAdrefTYPEi.
ASSIGNdref->*TO
with7.4
[plain]viewplaincopyprint?
1.DATA dref TYPE REF TO data.
2.dref = NEW i( 555 ).
DATAdrefTYPEREFTOdata.
dref=NEWi(555).
2.new类实例
before7.4
[plain]viewplaincopyprint?
1.DATA oref TYPE REF TO class. "这里class是一个类名
2.CREATE OBJECT oref EXPORTING ...
DATAorefTYPEREFTOclass."这里class是一个类名
CREATEOBJECTorefEXPORTING...
with7.4
[plain]viewplaincopyprint?
1.DATA oref TYPE REF TO class.
2.oref = NEW #( ... ).
DATAorefTYPEREFTOclass.
oref=NEW#(...).
或者:
[plain]viewplaincopyprint?
1.DATA oref TYPE REF TO class.
2.oref = NEW #( ... ).
DATAorefTYPEREFTOclass.
oref=NEW#(...).
最后举一个综合的例子:
[plain]viewplaincopyprint?
1.TYPES:
BEGIN OF t_struct1,
2.col1 TYPE i,
3.col2 TYPE i,
4.END OF t_struct1,
5.BEGIN OF t_struct2,
6.col1 TYPE i,
7.col2 TYPE t_struct1,
8.col3 TYPE TABLE OF t_struct1 WITH EMPTY KEY,
9.END OF t_struct2,
10.t_itab TYPE TABLE OF t_struct2 WITH EMPTY KEY.
11.DATA(dref) =
12.NEW t_itab( ( col1 = 1
13.col2-col1 = 1
14.col2-col2 = 2
15.col3 = VALUE #( ( col1 = 1 col2 = 2 ) "VALUE 下篇会讲
16.( col1 = 3 col2 = 4 ) ) )
17.( col1 = 2
18.col2-col1 = 2
19.col2-col2 = 4
20.col3 = VALUE #( ( col1 = 2 col2 = 4 )
21.( col1 = 6 col2 = 8 ) ) ) ).
22.WRITE:
dref->*[ 1 ]-col1, dref->*[ 2 ]-col1. "
TYPES:
BEGINOFt_struct1,
col1TYPEi,
col2TYPEi,
ENDOFt_struct1,
BEGINOFt_struct2,
col1TYPEi,
col2TYPEt_struct1,
col3TYPETABLEOFt_struct1WITHEMPTYKEY,
ENDOFt_struct2,
t_itabTYPETABLEOFt_struct2WITHEMPTYKE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ABAP 74新特性汇总 74 特性 汇总