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

2020-09-04 09:35发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我是ABAP 740的新手,我目...

         点击此处--->   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条回答
haha101010
2020-09-04 10:17

您好,


如果您是我,我会从非ABAP-7.4相关调整入手-您似乎在使用带有 标题行("已过时在gt_vmcfa处LOOP AT SElkz = gc_charx"。或"用键vbeln读取表it_​​vbrk = gt_vmcfa-vbeln二进制搜索。")。

而不是使用MODIFY语句,而是使用字段符号(更好的性能)来修改循环中的数据。

调用FM后,应检查subrc。

请使用有意义的变量名称,并保持其namig常规正确(ld应该是lv或l_v)

根据ABAP 7.4,您可以在调用FM时使用动态转换,而不必将数据单独保存

更改后,您的代码可能看起来像这样(仍然将variabls/字段符号的名称更改为更有意义的数据):

将gt_vmcfa分配给ASSIGNING FIELD-SYMBOL()在哪里selkz = gc_charx。

     如果不是line_exists(it_vbrk [vbeln =  -vbeln二进制搜索读取表lt_vbfs分配字段符号()。
       如果sy-subrc EQ 0。
         清除l_s_shorttext。

         通话功能" RPY_MESSAGE_COMPOSE"
           出口
             message_id =  -msgid
             message_number = CONV sy-msgno( -msgno)
             message_var1 =  -msgv1
             message_var2 =  -msgv2
             message_var3 =  -msgv3
             message_var4 =  -msgv4
           输入
             message_text = l_s_shorttext
           例外情况
             message_not_found = 1
             其他= 2。
         如果sy-subrc EQ 0。
            -zzerror = l_s_shorttext。
         万一。

       万一。

     万一。

   结局。
 

干杯,

马里克

一周热门 更多>