我已经开始学习AMDP,我发现从中获得的结果与ABAP AS中的普通选择查询有很大不同。我在AMDP中使用以下代码:
ex_gt_data = select a.vbeln,
a.kunnr,
a.bukrs_vf,
b.erdat,
b.lsmeng,
b.posnr,
b.matnr
from vbak as a
join vbap as b
on a.vbeln = b.vbeln;
随后是APPLY_FILTER函数。该查询在BUKRS_VF字段中返回多个值。如果我使用普通的选择查询,如下所示:
SELECT a~vbeln,
a~bukrs_vf,
a~kunnr,
b~erdat,
b~lsmeng,
b~posnr,
b~matnr
FROM vbak AS a
JOIN vbap AS b
ON a~vbeln = b~vbeln
INTO TABLE @DATA(lt_vbak)
WHERE a~vbeln IN @s_vbeln.
它产生所需的结果。谁能告诉我为什么AMDP与普通选择查询之间的区别?
我刚刚发现添加
MANDT领域解决了这个问题。我在方法中添加了按值传递参数,并在查询中以[]的形式使用
其中a.mandt = im_mandt。
不知道这是否是正确的解决方案。请告知。