对 BAPI_GOODSMVT_CREATE 和滚动区域的序列化调用

问题描述

TL;DR:如果您使用 BAPI_GOODSMVT_CREATE 创建多个相互依赖的移动并且其中之一是转移过帐,那么您需要使用包装器 - 根据 SAP 说明 369518。如果没有在某处转移发布,一个 COMMIT 就足够了

有没有人研究过 Note 369518 的细节?

它描述了在调用 BAPI_GOODSMVT_CREATE 之前启动新滚动区域的要求,收货取决于先前的货物移动(也由 BAPI 在同一 LUW 内发布)。

我不清楚的是:它是否适用于一般收货?或者以某种方式仅适用于涉及转移库存的“隐式”(原文如此)GI 的收货?

我正在寻找“原因和先决条件”部分的技术演练。

我需要决定对于同一批次上的一系列运动 262,102,101,261,是否每次都应在新的滚动区域中调用 BAPI。 为此,如果用户已经打开了最大的内部会话,则需要要求他们关闭一个窗口。(编辑:斜体部分可能不适用,因为我相信 DESTINATION 'NONE' 将开始一个新的用户会话)

解决方法

据我所知,答案取决于注释的“机器翻译”成英语:Google 提供了另一种措辞“只有真正的发货商品,库存是从数据库中读取的”,其中稍微整理一下:

BAPI 始终查看缓冲区,无论它的任务是创建哪种移动类型。问题是转移过帐(MIGO 中的 A08)不会更新缓冲区。而“实际发货”发货(MIGO 中的 A07)则可以,允许后续收货正确检测库存。

因此,仅当先决条件移动是转移过帐时,才需要在新的滚动区域中启动相关调用。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...