zoukankan      html  css  js  c++  java
  • ◆◆0如何消除销售订单中配置(Configuration)相关的Incompletion log

    1, 问题描述

    调用bapi 'BAPI_SALESORDER_CREATEFROMDAT2' 创建销售订单,发现生成的销售订单有incompletion log,是关于可配置物料的,如下

    2016-11-10_16-36-43

    2016-11-10_16-37-29

    可配置物料的可以通过字段MARA-KZKFG判断,

    2016-11-11_16-14-46

    2, 问题分析

    经过某大师指点发现,造成此问题的根本原因是bapi BAPI_SALESORDER_CREATEFROMDAT2中行项目ORDER_ITEMS_IN-PO_ITM_NO和configuration的ORDER_CFGS_REF-POSEX为空,没有将行项目和configuration的数据关联起来。

    2016-11-11_16-24-08

    3, 解决方案

    解决方法有两种:

    方法1,当ORDER_ITEMS_IN-PO_ITM_NO和ORDER_CFGS_REF-POSEX 为空时,给这两个字段赋一个相同的假的行项目值,让行项目和配置信息关联起来,但是这么做有个副作用就是这个假行项目值会被保存到vbap-posex中,所以还要再bapi BAPI_SALESORDER_CREATEFROMDAT2 之后用直接更新表的方法将vbap-posex恢复。

    2016-11-14_9-19-01

    方法2,写一段bdc程序模拟以下前台动作,

    选中行项目,点击configuration detail按钮

    2016-11-14_9-54-00

    然后,直接返回保存,这样就不会有incompletion log了

    2016-11-14_9-55-20

    BDC代码如下:

    注意:上面代码中,用到了CALL_TRANSACTION_FROM_TABLE_CO 开了一个新的task来实现BDC,这么做的原因是在调用BAPI_SALESORDER_CREATEFROMDAT2创建销售订单后再用call transaction va02实现BDC会出现一个iactive的屏幕,如下,

    2016-11-11_13-49-11

    这个屏幕和sm35中的录屏不一样,导致bdc失败,所以开了新task执行bdc,这样就能成功,原因还没研究清楚。。。。

    以上。

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
  • 原文地址:https://www.cnblogs.com/lvdong18847870057/p/12534958.html
Copyright © 2011-2022 走看看