BAPI_SALESORDER_CREATEFROMDAT2更新条件值

2020-08-31 17:43发布

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

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


大师们,

我正在研究一个上载程序,它将大量创建销售订单。

简介如下:

1。 价格都是在上传过程中手动输入的。

2。 条件类型(ZEAP)配置为允许手动输入。

3。 通过VA01手动创建可以正常工作。

4。 我正在尝试上传并创建包含多个订单项的销售订单。

5。 所有订单项在上传文件中以及传递给bapi BAPI_SALESORDER_CREATEFROMDAT2之前都具有相同的条件类型(ZEAP)。

我的问题:

1。 当上传包含​​3个订单项的销售订单时,在创建的销售订单中,前两个订单项的价格会更新。 第三行未更新

2。 仅当有多个订单项时才会发生问题,并且仅在最后一个订单项时发生。

请告知可能的错误原因是什么,让我知道信息足够。

代码段:

"订单项条件详细信息开始
     ls_cond-itm_number = lv_posnr。
     ls_cond-cond_type =  -kschl。
     ls_cond-cond_value =  -kbetr。
     ls_cond-condvalue =  -kbetr。
     ls_cond-cond_p_unt =  -kpein。
     ls_cond-currency =  -waers。
     ls_cond-curr_iso =  -waers。
     ls_cond-cond_unit =  -kmein。
     ls_cond-cd_unt_iso =  -kmein。
     ls_cond-cond_st_no ='020'。
     ls_cond-cond_count ='01'。
     ls_cond-cond_updat = abap_true。

     ls_condx-itm_number = lv_posnr。
     ls_condx-cond_st_no ='020'。
     ls_condx-cond_count ='01'。
     ls_condx-cond_type =  -kschl。
     ls_condx-cond_value = abap_true。
     ls_condx-cond_p_unt = abap_true。
     ls_condx-currency = abap_true。
     ls_condx-cond_unit = abap_true。
     ls_condx-updateflag ='U'。

     将ls_items附加到lt_items。
     附加ls_itemx到lt_itemx。
     附加ls_schedule至lt_schedule。
     附加ls_schedulex至lt_schedulex。
     附加ls_cond至lt_cond。
     附加ls_condx至lt_condx。
   结局。

   通话功能'BAPI_SALESORDER_CREATEFROMDAT2'
     出口
       order_header_in = ls_header
       order_header_inx = ls_headerx
     输入
       salesdocument = lv_vbeln
     桌子
       返回= lt_return
       order_items_in = lt_items
       order_items_inx = lt_itemx
       order_partners = lt_partner
       order_schedules_in = lt_schedule
       order_schedules_inx = lt_schedulex
       order_conditions_in = lt_cond
       order_conditions_inx = lt_condx。
 

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

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


大师们,

我正在研究一个上载程序,它将大量创建销售订单。

简介如下:

1。 价格都是在上传过程中手动输入的。

2。 条件类型(ZEAP)配置为允许手动输入。

3。 通过VA01手动创建可以正常工作。

4。 我正在尝试上传并创建包含多个订单项的销售订单。

5。 所有订单项在上传文件中以及传递给bapi BAPI_SALESORDER_CREATEFROMDAT2之前都具有相同的条件类型(ZEAP)。

我的问题:

1。 当上传包含​​3个订单项的销售订单时,在创建的销售订单中,前两个订单项的价格会更新。 第三行未更新

2。 仅当有多个订单项时才会发生问题,并且仅在最后一个订单项时发生。

请告知可能的错误原因是什么,让我知道信息足够。

代码段:

"订单项条件详细信息开始
     ls_cond-itm_number = lv_posnr。
     ls_cond-cond_type =  -kschl。
     ls_cond-cond_value =  -kbetr。
     ls_cond-condvalue =  -kbetr。
     ls_cond-cond_p_unt =  -kpein。
     ls_cond-currency =  -waers。
     ls_cond-curr_iso =  -waers。
     ls_cond-cond_unit =  -kmein。
     ls_cond-cd_unt_iso =  -kmein。
     ls_cond-cond_st_no ='020'。
     ls_cond-cond_count ='01'。
     ls_cond-cond_updat = abap_true。

     ls_condx-itm_number = lv_posnr。
     ls_condx-cond_st_no ='020'。
     ls_condx-cond_count ='01'。
     ls_condx-cond_type =  -kschl。
     ls_condx-cond_value = abap_true。
     ls_condx-cond_p_unt = abap_true。
     ls_condx-currency = abap_true。
     ls_condx-cond_unit = abap_true。
     ls_condx-updateflag ='U'。

     将ls_items附加到lt_items。
     附加ls_itemx到lt_itemx。
     附加ls_schedule至lt_schedule。
     附加ls_schedulex至lt_schedulex。
     附加ls_cond至lt_cond。
     附加ls_condx至lt_condx。
   结局。

   通话功能'BAPI_SALESORDER_CREATEFROMDAT2'
     出口
       order_header_in = ls_header
       order_header_inx = ls_headerx
     输入
       salesdocument = lv_vbeln
     桌子
       返回= lt_return
       order_items_in = lt_items
       order_items_inx = lt_itemx
       order_partners = lt_partner
       order_schedules_in = lt_schedule
       order_schedules_inx = lt_schedulex
       order_conditions_in = lt_cond
       order_conditions_inx = lt_condx。
 
付费偷看设置
发送
2条回答
何必丶何苦呢
1楼-- · 2020-08-31 18:09

这很奇怪,但可能有多种原因。 从我的头顶开始:

1)它总是最后一个吗? 检查1件物品,例如5件物品。 在所有项目中使用相同的材​​料,以确保与材料无关。

2)在VA01中使用相同的数据并确认它可以工作-可能涉及其他因素,并且不能为特定商品输入此特定条件吗?

3) 用户出口出错了吗?

在代码中没有看到任何错误,我认为您已经在调用BAPI之前检查了数据。

lukcy2020
2楼-- · 2020-08-31 18:00

已解决 它。 该问题是由现有的用户出口引起的。 我们添加了适当的过滤器,以使其不会被我们的程序触发。

一周热门 更多>