BAPI_PRODORDCONF_CREATE_TT确认问题

2020-08-31 13:10发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我需要一些有关产品...

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

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


专家们,

我需要一些有关产品的建议。 奥德 在SAP R/3 7.00中使用bapi BAPI_PRODORDCONF_CREATE_TT进行确认。

这可以在99'9%的时间内正常运行,但是有时我可以从bapi中得到确认,但CO1P中仍然存在错误,这会阻止以该顺序进行进一步操作(我需要在KO88中处理通过低位批次输入的订单并取消通知 通过BAPI_PRODORDCONF_CANCEL通过KO88失败)

我已经尝试了所有具有相同结果的参数POST_WRONG_ENTRIES组合,BAPI始终返回OK,但是确认仍然不完整,并且订单被阻止以进行进一步处理,直到有人手动解析CO1P/COGI。

CO1P中的错误通常带有"反吹"消息。

是否有任何方法可以强制bapi失败,以免确认出现问题,从而避免CO1P/COGI? 还是有可能在KO88或BAPI_PRODORDCONF_CANCEL之前捕获此类错误的进程?

我已经搜索了论坛和Wiki,但似乎没有人遇到这个问题(也许有OSS注释可以解决此问题)

感谢和问候,

F。 布雷

2条回答
wang628962
2020-08-31 13:27 .采纳回答

完成!

我将解释因为sb可能有同样的问题。

我们可以使用BAPI_PRODORDCONF_GETDETAIL来检查确认是否已完全完成,该消息指示是否已完成货物移动。

示例代码:

 功能ZCHECKLOCKOF。
 *" ------------------------------------------------  ----------------------
 *" *"本地投放
 *"正在导入
 *" REFERENCE(I_RUECK)TYPE CO_RUECK
 *"参考(I_RMZHL)TYPE CO_RMZHL
 *" REFERENCE(I_TRIES)TYPE I默认3
 *"例外情况
 *"已封锁
 *" MOVERROR
 *" ------------------------------------------------  ----------------------

   数据tp_tries类型sy-tabix。
   数据wa_return TYPE BAPIRET1。
   数据wa_conf_detail类型BAPI_PP_CONFIRM。
   BAPI2017_GM_ITEM_SHOW的数据ta_gdgoodsmovements类型表。
   数据ta_failedgmoves BAPI_CORU_FGM的类型表。
   数据wa_failedgmoves类型为BAPI_CORU_FGM。

   tp_tries = 1。

 *"无限循环
   0 = 0时。

     清除sy-subrc。
     清除wa_return。
     清除wa_conf_detail。
     刷新ta_gdgoodsmovements。
     刷新ta_failedgmoves。

     通话功能'BAPI_PRODORDCONF_GETDETAIL'
       出口
         确认= i_rueck
         确认计数器= i_rmzhl
       输入
         RETURN = wa_return
         CONF_DETAIL = wa_conf_detail
       桌子
         GOODSMOVEMENTS = ta_gdgoodsmovements
         FAILEDGMOVES = ta_failedgmoves。

     如果sy-subrc <> 0或ta_failedgmoves []不是初始化的。

 *"一些货物移动尚未完成

          读取表ta_failedgmoves,并使用键MSG_TYPE ='E'转换为wa_failedgmoves。
         如果sy-subrc = 0。

 *"一些货物移动有错误,所以退出
            提高运动错误。

          万一。

 *"订单已被阻止
        IF tp_tries GE i_tries。

 *"已达到尝试次数限制
         提高封锁。

        万一。

      其他。

 *"订单未阻止
        出口。

     万一。

 *"等待1秒钟,然后尝试递增
     等待最多1秒。
     tp_tries = tp_tries + 1。

   结束。  0 = 0?

 结束功能。
 

致谢

作者:Francisco Blay,2009年7月9日晚上7:21

一周热门 更多>