函数BAPI_PO_CHANGE——采购订单修改

一、用最新的采购信息的价格更新采购订单的价格

当采购信息记录更新价格后,可以透过前台ME22N项目-->条件-->更新 来修改采购单的价格

 

注意:采购单部分收货、收货已完成、结案状态不可更新,更新价格后采购单可能需要重新签核

使用函数BAPI_PO_CHANGE更新价格,代码如下:

复制代码
REPORT ZMMRTEST.

DATA: lv_ebeln TYPE ebeln,
      lt_item TYPE TABLE OF bapimepoitem,
      ls_item TYPE bapimepoitem,
      lt_itemx TYPE TABLE OF bapimepoitemx,
      ls_itemx TYPE bapimepoitemx,
      lt_return TYPE TABLE OF bapiret2.

lv_ebeln = '6200016316'.

ls_item-po_item = '00010'.
ls_item-calctype ='B'.
APPEND ls_item TO lt_item.

ls_itemx-po_item = '00010'.
ls_itemx-calctype ='X'.
APPEND ls_itemx TO lt_itemx.

CALL FUNCTION 'BAPI_PO_CHANGE'
  EXPORTING
    purchaseorder                = lv_ebeln
  TABLES
    return                       = lt_return
    poitem                       = lt_item
    poitemx                      = lt_itemx.

READ TABLE lt_return WITH KEY type = 'E' TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
  ROLLBACK WORK.
ELSE.
  COMMIT WORK AND WAIT.
ENDIF.

cl_demo_output=>write( lt_return ).
cl_demo_output=>display(  ).
复制代码

 

效果:

 

posted @   鲸与海  阅读(2189)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示