点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我的疑问是,当我在任何工作区域上使用关键字MOVE-CORRESPONDING时,它会按预期工作,即以相似的名称填充字段,而对其他字段没有任何影响,则可以填充或空白,这并不重要。 但是,当我对内部表使用相同的关键字时,它将替换目标表中与第一个表不匹配的数据。 这是故意还是错误?
例如
选择bukrs monat
FROM BKPF
INTO TABLE lt_bkpf
...............
SELECT rburks rldnr docln ryear
FROM acdoca
INTO lt_acdoca
在............
类型:ty_tab开头,
bukrs类型bukrs,
monat类型monat,
rbukrs类型的bukrs,
rldnr类型fins_legder,
docln类型docln6
ryear类型gjahr_pos,
ty_tab结束。
数据:lt_tab ty_tab类型表,
wa_tab类型ty_tab。
**如果我用不了,表格将被完美填充
在it_bkpf上闭环......
将它停在it_acdoca上
对应wa_bkpf移动到wa_tab。
对应wa_acdoca移动到wa_tab。
将wa_tab附加到it_tab。
ENDLOOP。
ENDLOOP。
**如果我不使用LOOP进行操作,它将用内部表中不存在的空白替换列
将it_bkpf移动到it_tab。
将it_acdoca移动到it_tab。
或
it_tab =对应#(it_bkpf)
it_tab =对应#(it_acdoca)
**两者的结果相同。
1)当it_bkpf在内部表中移动时
1)当it_acdoca在内部表中移动并替换it_bkpf的列(BUKRS和MONAT)
我犯了什么错误,或者这是应该如何表现的?
感谢和问候
拉吉特
(19.0 kB)
关于构造函数表达式(target =对应的#(source)),很容易理解目标已被完全替换。
关于内部表上的MOVE-CORRESPONDING,SAP无法猜测源的关键字段 和目标内部表应该连接。 因此,SAP决定不猜测并仅覆盖目标内部表。
感谢您的答复。 我看不到以这种方式构建它的好处,但这似乎是故意的。
我唯一的理由是,当MOVE-CORRESPONDING不替换结构(工作区域)中的值时,为什么要在内部表中替换它。
@ Marco-我尝试过"保持目标线"-它在BKPF下附加了ACDOCA的所有行,这不是我的要求。 " BASE(base)"也将替换数据。
当文档解释您遇到的结果时,您不能称其为错误:
当使用两个结构时,不需要'join',这就是为什么 移动对应确实可以实现您的期望,但是在使用两个内部表时,大多数情况下需要联接:"表1的哪些行与表2的行相对应。"在两个内部表上进行移动对应 表没有提供连接限制的选项。您要执行的操作需要显式连接,使用VALUE运算符可能看起来像这样:使用更新的语法时也会发生同样的情况:
这与结构和表具有相同的行为。
在我看来,使用更新的语法会更加明显:将对应的it_bkpf移至其他结构,然后复制到it_tab。
一周热门 更多>