BAPI_ENTRYSHEET_CREATE

2020-09-15 23:25发布

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

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


嗨,

我们正在开发一个代理,其中的数据将来自外部服务,并将通过BAPI_ENTRYSHEET_CREATE创建SES。 一个呼叫中将有多个SES数据,并且代理必须验证所有数据以进行创建和接受。

要求是,如果所有数据看起来都不错,则应创建并接受SES(因为所有SES都包含在代理中),然后才应执行提交工作。 如果多个SES数据中的任何一个有问题,则不应提交事务,也不应创建和接受SES。这就像是全部或全部。

为此,我们在循环中调用BAPI_ENTRYSHEET_CREATE并在创建本身中设置接受标志。 我们还将NO_COMMIT标志设置为true,因此BAPI内部不会发生自动提交。 并且我们在检查了循环中出现的任何错误消息后提交。 我们面临的问题如下。

如果有多个SES数据(每个都有不同的PO号),则BAPI可以创建SES并接受第一行项目的SES(返回2条消息)(不提交) 但是当第二个订单项到来时在循环内部,则会引发错误"更新错误"。 对于随后的BAPI调用,它显示已创建,并且I000带有文本消息,没有错误.....

当BAPI上的No commit标志消失(对于相同数据)时,SES将被创建并被接受而不会出现错误。 但是,由于提交已经完成,因此如果后续数据中发生任何错误,我们将失去取消提交的能力。

请建议如何处理这种情况。.

PS:我们没有在SES上使用y发布策略。

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

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


嗨,

我们正在开发一个代理,其中的数据将来自外部服务,并将通过BAPI_ENTRYSHEET_CREATE创建SES。 一个呼叫中将有多个SES数据,并且代理必须验证所有数据以进行创建和接受。

要求是,如果所有数据看起来都不错,则应创建并接受SES(因为所有SES都包含在代理中),然后才应执行提交工作。 如果多个SES数据中的任何一个有问题,则不应提交事务,也不应创建和接受SES。这就像是全部或全部。

为此,我们在循环中调用BAPI_ENTRYSHEET_CREATE并在创建本身中设置接受标志。 我们还将NO_COMMIT标志设置为true,因此BAPI内部不会发生自动提交。 并且我们在检查了循环中出现的任何错误消息后提交。 我们面临的问题如下。

如果有多个SES数据(每个都有不同的PO号),则BAPI可以创建SES并接受第一行项目的SES(返回2条消息)(不提交) 但是当第二个订单项到来时在循环内部,则会引发错误"更新错误"。 对于随后的BAPI调用,它显示已创建,并且I000带有文本消息,没有错误.....

当BAPI上的No commit标志消失(对于相同数据)时,SES将被创建并被接受而不会出现错误。 但是,由于提交已经完成,因此如果后续数据中发生任何错误,我们将失去取消提交的能力。

请建议如何处理这种情况。.

PS:我们没有在SES上使用y发布策略。

付费偷看设置
发送
6条回答
Aaron 3364
1楼 · 2020-09-15 23:56.采纳回答

如KBA 2468660中所述,这是不可避免的。

2468660-BAPI_ENTRYSHEET_CREATE号码范围问题

最诚挚的问候,

Myra

空代码
2楼-- · 2020-09-15 23:47

感谢您的答复。我下载了说明,尽管说明可以执行,但执行后,消息说已经存在更改。 还有已经存在的手动步骤.. !! 我们是605。我也编译了代码,没有进行任何更改。

问题是没有提交可用于创建SES。 但是对于在循环运行BAPI时首先创建和接受SES的创建和接受,我创建并接受了消息。 第二,更新错误,第二,没有消息,为I000。

在检入ML81N时,由于错误而未创建任何内容。 如果我使用BAPI Commit强制在循环外进行提交,那么它仍然不起作用。创建并接受需要提交才能进入下一级别。

另一种选择是为每个记录创建并接受提交,然后如果下一个记录中有错误,请取消接受所有SES并将其删除。

但是为此我也找不到任何FM/BAPI来接受它。 我们没有发布策略设置。

谢谢,请指教。


打个大熊猫
3楼-- · 2020-09-16 00:00

您好,

有关提交工作问题,请参考以下说明:

1338514-在BAPI中提交工作问题


请确保此注释已在您的系统中实现。


最好的问候,
Yang

Alawn_Xu
4楼-- · 2020-09-16 00:02

谢谢您的回复。我下载了说明,尽管它说可以执行,但是在执行后,消息说已经存在更改。 还有已经存在的手动步骤.. !! 我们是605。我也编译了代码,没有进行任何更改。

问题是没有提交可用于创建SES。 但是对于在循环运行BAPI时首先创建和接受SES的创建和接受,我创建并接受了消息。 第二,更新错误,第二,没有消息,为I000。

在检入ML81N时,由于错误而未创建任何内容。 如果我使用BAPI Commit强制在循环外进行提交,那么它仍然不起作用。创建并接受需要提交才能进入下一级别。

另一种选择是为每个记录创建并接受提交,然后如果下一个记录中有错误,请取消接受所有SES并将其删除。

但是为此我也找不到任何FM/BAPI来接受它。 我们没有发布策略设置。

谢谢,请指教。

愤怒的猪头君
5楼-- · 2020-09-16 00:06

很抱歉再次打扰大家,这个问题部分与BAPI有关,因此再次发布。 我们在设计上做出了某种折衷,现在要做的是,如果"测试运行"为"开",我们将在No Commit ='X'且没有接受标志的情况下运行BAPI。 这样可以确保完成对"创建条目"工作表的所有验证(而不是我们计划在调用BAPI之前进行的确认)

如果任何数据有错误(我们根据代理中输入的数据多次运行此bapi),则会发出错误消息。 如果运行中没有错误,我们将再次调用BAPI,这一次是No Commit =空,并在BAPI中添加了接受标志= X。

除一个问题外,其他所有方法都工作正常。 当BAPI在测试模式下运行时(即使没有提交='X'),它也在消耗数字范围。 因此,当进入实际运行时,条目表的文档编号将增加1。 代理数据有3个条目表数据,对于第一个测试运行,编号为100XX01,实际运行正在创建100XX02(加号1)。 在代理运行结束时,我们将文件编号为100XX02、100XX04、100XX06。

现在,非办公室业务不希望出现这种差距,因为这会造成和解问题。 我们无法将数字范围设置为外部,因为我们有用户通过ML81N手动创建。 我们尝试做的另一件事是,当测试模式将EXT_NUMBER传递给BAPI时,它可以将no用作测试模式,但这也不起作用。

如果您对此问题有任何见解,请提出建议

PS:我测试了NRIV缓冲液并从中取出了缓冲液,但这并没有帮助。

此致

灬番茄
6楼-- · 2020-09-15 23:58

感谢关闭此线程!

一周热门 更多>