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条回答
Haoba3210
2020-09-04 10:00

如评论之一所述,我通读了一些有关ABAP 740更改的博客文章,我替换了loop/使用FOR读取语句,它可以按预期工作。 但是我最终还是逐场完成工作,我尝试了CORRESPONDING,但是在两个工作领域(如下所述)遇到了挑战。 有没有有效的方法来实现这一目标?

"填充输出表
DATA(lt_vmcfa)=
VALUE ltt_vmcfa( mandt = ls_vmcfa-mandt vkorg = ls_vmcfa-vkorg kunrg = ls_vmcfa-kunrg fktyp = ls_vmcfa-fktyp fkdat = ls_vmcfa-fkdat fkart = ls_vmcfags-nats = er_dt = cs_ert = ers = ers = ers => = ls_vmcfa-vbeln rfbsk = ls_vmcfa-rfbsk selkz = ls_vmcfa-selkz fktyp_text = ls_vmcfa-fktyp_text fkart_text = ls_vmcfa-fkart_text
name1 = ls_vmcfa-fs-vsfvcf-fscv-fscv-fscv-fscv-fscv-fs = vs_vsvcf-fs = vsvcf-fs = vsvcf-fs = vsvcf-fs = vscvcf-fs = vscvvfa-fc = fs = vscvvfa-fcf-fc = -stats = vs_vcfa-fc = fscv-fcv-fs = vsvcfa-fs = vscvvfa-fc = fs = vsvcf-fs = vsvcfa-fc = -stats -aubel zzposnr = ls_vbrp-aupos zzmatnr = ls_vbrp-matnr )

)。

选项#1
DATA(lt_vmcfa)=
VALUE ltt_vmcfa((对应 #(ls_vmcfa)))。

以上语句不会从另一个工作区ls_vbrp复制数据,而只会从ls_vmcfa复制数据。

选项#2
DATA(lt_vmcfa)=
VALUE ltt_vmcfa(

(对应#(ls_vmcfa))(zzvbeln = ls_vbrp-aubel zzposnr = ls_vbrp-aupos zzmatnr = ls_vbrp-matnr))。

以上语句将数据复制两次-首先从工作区ls_vmcfa复制数据,然后从工作区ls_vbrp复制数据。 因此,lt_vmcfa中的条目会增加一倍。

一周热门 更多>