ABAP新语法

2020-08-21 02:24发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 为什么我会通过使用...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

为什么我会通过使用新语法来获取错误消息,例如 当我替换语句时:

读取表mt_xyz将分配给键测试组件a =  -t。

使用:

 ASSIGN mt_xyz [关键测试组件a =  -t]至

我收到错误消息,指出第二(新)语句中未完全指定密钥,但是使用旧语法,它可以正常工作而没有任何问题。

BR

4条回答
Pascal Ditzel

您是 混合出现的情况,您的原始READ TABLE语句与一个自由搜索键以及对问题中的部分键的强制二进制搜索没有对应的(新)表表达式,而根据您的上述评论,READ TABLE语句与一个自由键 搜索键并且没有强制二进制搜索会执行对应的(新)表表达式:

1。 带有READ TABLE的自由搜索键(没有在完整/部分主/次键上进行强制二进制搜索)具有对应的表表达式:
" READ TABLE itab WITH KEY comp1 = opernd1 ASSIGNING 。->自由搜索 键
 使用密钥source_key = iv_dlv_key读取表mt_dlv_kl_fu ASSIGNING 。

 " ASSIGN itab [comp1 =操作数1]至。->免费搜索键
 ASSIGN mt_dlv_kl_fu [source_key = iv_dlv_key]至

另请参阅table_exp的SAP ABAP文档-itab_line语法:

>>表表达式根据指定的自由搜索键读取行。
>>搜索的方式与在语句READ TABLE中指定自由搜索键comp1 =操作数1 comp2 =操作数2 ...时完全相同。
>>同样,可以根据"指定组件"部分中的规则来指定组件comp1 comp2...。此外,必须指定兼容或可转换的操作数操作数1操作数2。
>>如果自由键与某些或所有主表键重叠,则在读取排序表和哈希表时将执行READ TABLE下描述的优化。

2。 在完整/部分主键/副键上进行强制二进制搜索的免费搜索键没有相应的表表达式:
使用键KEY读取表itab key_name COMPONENTS comp1 =操作数1分配。
 分配itab [?????  ]至。  "没有等效的表表达式可用

>>与指定了自由键的语句READ TABLE不同,不能强制对表表达式进行二进制搜索,并且不可能指定显式表键来优化使用

3。使用指定表键的搜索具有对应的表表达式,并且始终要求提供FULL键:

" KEY,具有一个组成部分:
 "这仅在'key_name'仅具有COMPONENT comp1时有效!
 使用表键key_name读取表itab components comp1 =操作数1分配。
 分配itab [密钥key_name组件comp1 =操作数1]至。

 " KEY包含两个部分:
 "这仅在'key_name'仅具有COMPONENTS comp1和comp2的情况下有效!
 使用表键读取表itab key_name组件comp1 =操作数1 comp2 =操作数2分配。
 分配itab [密钥key_name组件comp1 =操作数1 comp2 =操作数2]至

>>必须通过指定组件完全覆盖表键,并且不能指定不属于表键的任何组件。

一周热门 更多>