ABAP 740使用where子句循环并修改

2020-09-04 09:35发布

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

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


我是ABAP 740的新手,我目前正在按照ABAP 740标准转换现有的ABAP代码。 我确实对ABAP 740的基本语法有一定的了解,并且已经将一些现有的ABAP代码转换为740。我正在努力转换以下代码,因为它具有where子句,两次读取以及基于过滤器调用FM的循环。 然后修改内部表。 需要一些指导,请...

在gt_vmcfa处循环,其中selkz = gc_charx。

使用键vbeln = gt_vmcfa-vbeln BINARY SEARCH读取表it_​​vbrk。

如果sy-subrc是INITIAL。 如果it_vbrk-rfbsk <>'C'。

使用键vbeln = gt_vmcfa-vbeln二进制搜索将表lt_vbfs读入数据(ls_vbfs)。

如果sy-subrc是INITIAL。

清除:ld_shorttext。

ld_msgno = ls_vbfs-msgno。

呼叫功能'RPY_MESSAGE_COMPOSE'

导出message_id = ls_vbfs-msgid

message_number = ld_msgno

message_var1 = ls_vbfs-msgv1

message_var2 = ls_vbfs-msgv2

message_var3 = ls_vbfs-msgv3

message_var4 = ls_vbfs-msgv4

导入message_text = ld_shorttext

EXCEPTIONS message_not_found = 1其他= 2。

gt_vmcfa-zzerror = ld_shorttext。

ENDIF。

ENDIF。

修改gt_vmcfa。

ENDIF。

ENDLOOP。

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

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


我是ABAP 740的新手,我目前正在按照ABAP 740标准转换现有的ABAP代码。 我确实对ABAP 740的基本语法有一定的了解,并且已经将一些现有的ABAP代码转换为740。我正在努力转换以下代码,因为它具有where子句,两次读取以及基于过滤器调用FM的循环。 然后修改内部表。 需要一些指导,请...

在gt_vmcfa处循环,其中selkz = gc_charx。

使用键vbeln = gt_vmcfa-vbeln BINARY SEARCH读取表it_​​vbrk。

如果sy-subrc是INITIAL。 如果it_vbrk-rfbsk <>'C'。

使用键vbeln = gt_vmcfa-vbeln二进制搜索将表lt_vbfs读入数据(ls_vbfs)。

如果sy-subrc是INITIAL。

清除:ld_shorttext。

ld_msgno = ls_vbfs-msgno。

呼叫功能'RPY_MESSAGE_COMPOSE'

导出message_id = ls_vbfs-msgid

message_number = ld_msgno

message_var1 = ls_vbfs-msgv1

message_var2 = ls_vbfs-msgv2

message_var3 = ls_vbfs-msgv3

message_var4 = ls_vbfs-msgv4

导入message_text = ld_shorttext

EXCEPTIONS message_not_found = 1其他= 2。

gt_vmcfa-zzerror = ld_shorttext。

ENDIF。

ENDIF。

修改gt_vmcfa。

ENDIF。

ENDLOOP。

付费偷看设置
发送
8条回答
compass1988
1楼-- · 2020-09-04 10:04

通常,如果要了解最新版本中发生了什么更改,请参阅" ABAP特定于发行版的更改"。 阅读非常有趣,因为您只能阅读与自己有关的更改,如果您知道语法7.02,则只需阅读7.31、7.40及更高版本的更改,直到您感兴趣的版本。 为了更好地理解其中一些语法,Horst Keller或其他人经常发布一些博客文章。

haha101010
2楼-- · 2020-09-04 10:05

感谢提供链接,查看每个版本的更改会很有帮助。

# p#

您不能在FOR ...循环中调用函数模块,但是您可以尝试创建一个函数方法并调用它。 我的伪代码(不保证它能正常工作:))):

 lt_vmcfa = VALUE#(FOR ls_vmcfa在gt_vmcfa中(selkz = gc_charx)
                     LET ls_vbrk = VALUE#(it_vbrk [vbeln = ls_vmcfa-vbeln]可选)
                         ls_vbfs = VALUE#(lt_vbfs [vbeln = gt_vmcfa-vbeln]可选)
                      IN(COND#(当ls_vbrk不是初始的并且
                                        ls_vbrk-rfbsk <>'C'和
                                        ls_vbfs不是初始的
                                   然后(值#(基本ls_vmcfa zzerror = cl_msg => get_msg(ls_vbfs-msgno))))))))))))))) /1091/sandra.rossi.html">桑德拉·罗西 

谢谢,我明白了。

一周热门 更多>