當采購信息記錄更新價格后,可以透過前台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( ).
效果: