需求:计划订单转生产订单程序,允许修改计划订单数量/时间
" Create BAPI_PLANNEDORDER_CHANGE
CALL FUNCTION 'BAPI_PLANNEDORDER_CHANGE'
EXPORTING
plannedorder = <fs_alv>-plnum
headerdata = VALUE bapiplaf_i2(
total_plord_qty = <fs_alv>-gsmng
version = <fs_alv>-verid
order_start_date = <fs_alv>-psttr
order_fin_date = <fs_alv>-pedtr
firming_ind = 'X' " 标识必打,不然转单bapi报错
conversion_ind = 'X' ) " 标识必打,不然转单bapi报错
headerdatax = VALUE bapiplaf_i2x(
total_plord_qty = 'X'
version = 'X'
order_start_date = 'X'
order_fin_date = 'X'
firming_ind = 'X'
conversion_ind = 'X' )
IMPORTING
return = ls_ret.
IF ls_ret-type CA 'AEX'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
<fs_alv>-icon = gc_red.
<fs_alv>-msg = |计划订单修改报错:{ ls_ret-message }|.
CONTINUE.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
" Create BAPI_PRODORD_CREATE
CLEAR:ls_return,lv_order_number.
CALL FUNCTION 'BAPI_PRODORD_CREATE_FROM_PLORD'
EXPORTING
planned_order = <fs_alv>-plnum
order_type = <fs_alv>-auart
IMPORTING
production_order = lv_order_number
return = ls_return.
IF ls_return-type CA 'AEX'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
<fs_alv>-icon = gc_red.
<fs_alv>-msg = |创建生产订单报错:{ ls_return-message }|.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
<fs_alv>-icon = gc_green.
<fs_alv>-msg = |生产订单创建成功,订单号:{ lv_order_number }|.
<fs_alv>-aufnr = lv_order_number.
ENDIF.