BAPI_PO_CHANGE

2020-08-17 13:57发布

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

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


 data(lt_temp)= lt_data。


 循环到lt_temp ASSIGNING FIELD-SYMBOL()。
         ls_poheader-po_number =  -ebeln。
         ls_poheaderx-po_number ='X'。
         使用键ebeln =  -ebeln BINARY SEARCH将表lt_data读入DATA(ls_data)。
         如果sy-subrc是INITIAL。
           ls_poitem-po_item = ls_data-ebelp。
           ls_poitem-delete_ind ='L'。
           ls_poitemx-po_item ='X'。
           ls_poitemx-delete_ind ='X'。
           追加ls_poitem到lt_poitem。
           附加ls_poitemx到lt_poitemx。
           清除:。
         万一。
     通话功能'BAPI_PO_CHANGE'
       出口
         采购订单= ls_data-ebeln
 * poheader = ls_poheader
 * poheaderx = ls_poheaderx
       桌子
         返回= lt_return
         poitem = lt_poitem
         poitemx = lt_poitemx。
 结束循环。


     读取表lt_return进入具有键类型='E'的ls_return。
     IF sy-subrc NE 0。
       调用功能" BAPI_TRANSACTION_COMMIT"。
     ENDIF。

你好。

我已经使用选择查询通过选择屏幕中提供的选择选项将ebeln,ebelp和其他字段提取到表lt_data中。

现在我有多个采购订单和多个订单项。需要致电BAPI

" BAPI_PO_CHANGE"。

如何填写采购订单及其相应的订单项并将其传递给BAPI。

这是我编写的代码。

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

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


 data(lt_temp)= lt_data。


 循环到lt_temp ASSIGNING FIELD-SYMBOL()。
         ls_poheader-po_number =  -ebeln。
         ls_poheaderx-po_number ='X'。
         使用键ebeln =  -ebeln BINARY SEARCH将表lt_data读入DATA(ls_data)。
         如果sy-subrc是INITIAL。
           ls_poitem-po_item = ls_data-ebelp。
           ls_poitem-delete_ind ='L'。
           ls_poitemx-po_item ='X'。
           ls_poitemx-delete_ind ='X'。
           追加ls_poitem到lt_poitem。
           附加ls_poitemx到lt_poitemx。
           清除:。
         万一。
     通话功能'BAPI_PO_CHANGE'
       出口
         采购订单= ls_data-ebeln
 * poheader = ls_poheader
 * poheaderx = ls_poheaderx
       桌子
         返回= lt_return
         poitem = lt_poitem
         poitemx = lt_poitemx。
 结束循环。


     读取表lt_return进入具有键类型='E'的ls_return。
     IF sy-subrc NE 0。
       调用功能" BAPI_TRANSACTION_COMMIT"。
     ENDIF。

你好。

我已经使用选择查询通过选择屏幕中提供的选择选项将ebeln,ebelp和其他字段提取到表lt_data中。

现在我有多个采购订单和多个订单项。需要致电BAPI

" BAPI_PO_CHANGE"。

如何填写采购订单及其相应的订单项并将其传递给BAPI。

这是我编写的代码。

付费偷看设置
发送
3条回答
SAP德到
1楼 · 2020-08-17 14:13.采纳回答

您好 vamshi sai chand Matla

您的LT_TEMP与LT_DATA具有相同的数据。 因此,基本上,您逐项更改所有PO。 那不是很有效。 看看下面的代码。

 SORT lt_data BY ebeln ebelp。
 循环至lt_data分配字段符号()。
   在新的ebeln。
     明确:
       lt_return [],
       lt_poitem [],
       lt_poitemx []。
   ENDAT。

   ls_poitem-po_item =  -ebelp。
   ls_poitem-delete_ind ='L'。
   ls_poitemx-po_item = abap_true。
   ls_poitemx-delete_ind = abap_true。
   追加ls_poitem到lt_poitem。
   附加ls_poitemx到lt_poitemx。

   在ebeln的结尾。
     通话功能'BAPI_PO_CHANGE'
       出口
         采购订单=  -ebeln
       桌子
         返回= lt_return
         poitem = lt_poitem
         poitemx = lt_poitemx。

     读取表lt_return传输没有字段
       WITH KEY类型='E'。
     如果sy-subrc <> 0。
       调用功能" BAPI_TRANSACTION_COMMIT"。
     其他。
       通话功能" BAPI_TRANSACTION_ROLLBACK"。
     万一。
   ENDAT。
 ENDLOOP。
亲切的问候,
Mateusz
半个程序猿
2楼-- · 2020-08-17 14:20

嗨,

谢谢 您访问SAP社区以获得问题的答案。 我在这里 帮助您充分利用它。

第一 首先,我建议您熟悉 https://community.sap.com/resources/questions-and- 答案(如果您还没有的话),因为它提供了提示 用于准备可以引起我们成员回复的问题。

对于 例如您:

  • 可以概述您要采取的步骤 用来寻找答案(以及为什么它们没有帮助)
  • 可以分享截图 你看过/做过
  • 可以使用描述性主题 线
  • 还应确保您 使用所有适当的标签,以便合适的专家找到您的 问题

越多 您提供的详细信息,成员更有可能提供帮助 你

应该 您可以根据需要修改问题,方法是选择"操作",然后选择"编辑" (尽管一旦有人回答了您的问题,您将失去编辑功能 问题-但如果发生这种情况,您可以在评论中保留更多详细信息)。

最后, 如果您希望与读者交流,请考虑将图片添加到 你的个人资料。 操作方法如下: https://www.youtube.com/watch?v=F5JdUbyjfMA&list=PLpQebylwrd-s5 h6RtymfDpoz3vDS 。 通过使用您的照片个性化您的个人资料,可以鼓励读者 回应。

很好 运气

卡蒂- SAP社区主持人

SC_Yao
3楼-- · 2020-08-17 14:13

解决方案:

  • 运行程序
  • 分析BAPI的错误消息
  • < li>更正程序
  • 重复

一周热门 更多>