在S/4 HANA 1511中使用AMDP时数据不一致

2020-09-23 20:16发布

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

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


专家们!

在S/4 HANA中使用AMDP时遇到问题。

我们使用内部的模块化概念编写了一个复杂的AMDP。

在不调试AMDP GET_CO_BALANCE_DATA的调用命令的情况下执行AMDP时,将得到结果,而在运行AMDP调试(不更改过滤器)时,结果集将与之前的执行结果不同。

自定义AMDP GET_CO_BALANCE_DATA:

输入表(174563条记录):

输出表(5467条记录):

主要AMDP中记录的结果数:

现在我将开始调试AMDP ZCL_AMDP_DEMONST_SOCIO_V2 => GET_CO_BALANCE_DATA:

输入表中的相同记录(174.563条记录):

调试过程:

现在更改了结果(结果表中有174.563条记录):

主要AMDP中记录的结果数:

现在,即使我没有调试就执行AMDP,错误也会停止,但是如果我注销S/4 HANA,它就会再次开始出现。

任何想法都可能是什么错误?

谢谢!

Matheus Goulart

(98.6 kB)

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

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


专家们!

在S/4 HANA中使用AMDP时遇到问题。

我们使用内部的模块化概念编写了一个复杂的AMDP。

在不调试AMDP GET_CO_BALANCE_DATA的调用命令的情况下执行AMDP时,将得到结果,而在运行AMDP调试(不更改过滤器)时,结果集将与之前的执行结果不同。

自定义AMDP GET_CO_BALANCE_DATA:

输入表(174563条记录):

输出表(5467条记录):

主要AMDP中记录的结果数:

现在我将开始调试AMDP ZCL_AMDP_DEMONST_SOCIO_V2 => GET_CO_BALANCE_DATA:

输入表中的相同记录(174.563条记录):

调试过程:

现在更改了结果(结果表中有174.563条记录):

主要AMDP中记录的结果数:

现在,即使我没有调试就执行AMDP,错误也会停止,但是如果我注销S/4 HANA,它就会再次开始出现。

任何想法都可能是什么错误?

谢谢!

Matheus Goulart

(98.6 kB)
付费偷看设置
发送
4条回答
微wx笑
1楼 · 2020-09-23 20:27.采纳回答

你好,

问题与恒定值有关。

开发人员创建了一个空值常量:

声明lc_false常量nvarchar(1):='';  -空空间

但是该字段的正确值应为 empty (无空格)。

这可以解决问题,但是我们没有发现为什么在调试AMDP时会出现错误,而在联机执行时却没有发生。

谢谢。

SAP小菜
2楼-- · 2020-09-23 20:47

你好凯勒,

感谢您的回复。

我确实在Hana数据库的SQL控制台中执行了该过程,我们没有在HANA应用程序或HANA工件中直接使用该过程。

关于我的问题,我所有的屏幕截图均来自AMDP调试器和堆栈ABAP。

我出于好奇的原因进行了此测试,以检查两种方法是否会得到相同的结果,分别从HANA调用过程和从ABAP SE24 tcode调用AMDP,并在两者上使用相同的过滤器。 结果是,当我在不调试的情况下执行AMDP时,与从HANA SQL控制台执行时相比,它给我的记录更少,但是当我在调试模式下执行AMDP时,它给了我正确数量的结果记录( 相同数量的HANA Sql控制台执行)。

谢谢。

一只江湖小虾
3楼-- · 2020-09-23 20:46

我们已经打开了一个SAP事件。 当SAP回复时,我将更新此帖子。

对信息进行补充,在HANA中执行过程时,我们有49.000行,而在ABAP上执行相同的AMDP(通过SE24)时,我们有3.800行。 所以我认为框架存在一些问题

AMDP执行:

使用相同的过滤器(绕过AMDP框架)直接在HANA上执行的过程。

闻人可可
4楼-- · 2020-09-23 20:30

"补充信息,在HANA内执行过程时,我们有49.000行,但是在ABAP上执行相同的AMDP(通过SE24)时,我们有3.800行。所以我认为框架上存在一些问题 "

您不得从HANA内部调用AMDP过程。 您应该仅从AS ABAP调用AMDP过程。

请参阅注释2511210。这正是由于此类"事件"。

AMDP程序是AS ABAP的"内部实现细节"。 它们当然取决于从AS ABAP进行调用,并且可以使用AS ABAP。 例如。 如果您在取决于ABAP特定会话变量的AMDP过程中使用CDS视图,则在直接调用该过程时会迷路

一周热门 更多>