A planned order is sent to a plant and is an MRP request for the procurement of a particular material at a determined time. It specifies when the inward material movement should be made and the quantity of material that is expected.
A planned order has the following characteristics:
It is a procurement proposal in MRP for requirements coverage, that is, an internal planning element. It is not binding and does not therefore trigger procurement directly, but serves for planning purposes.
It can be changed or deleted at any time (exceptions: planned orders for direct production and for direct procurement).
Whether a material will later be produced in-house or procured externally is left open.
For materials produced in-house, it represents the pegged requirement for dependent requirements and can be used in the capacity calculation.
For materials produced in-house, it specifies the basic dates for production.
1、计划订单创建-MD11
*&---------------------------------------------------------------------*
*& Report ZTEST_PLAN_ORDER
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTEST_PLAN_ORDER.
DATA: GV_HEADERDATA LIKE BAPIPLAF_I1,
GV_RETURN LIKE BAPIRETURN1,
GV_PLANNEDORDER LIKE BAPI_PLDORD-PLDORD_NUM.
DATA: GT_RET2 TYPE /EACC/T_BAPIRET2,
GS_RET LIKE LINE OF GT_RET2.
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*&---------------------------------------------------------------------*
PERFORM CREATE_PLDORDER.
*** 弹出框说明
IF GT_RET2[] IS NOT INITIAL.
CALL FUNCTION 'FINB_BAPIRET2_DISPLAY'
EXPORTING
IT_MESSAGE = GT_RET2.
ENDIF.
*&---------------------------------------------------------------------*
*& Form CREATE_PLDORDER
*&---------------------------------------------------------------------*
* 创建计划订单 - MD11
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CREATE_PLDORDER .
REFRESH GT_RET2[].
CLEAR : GV_HEADERDATA,
GV_RETURN,
GV_PLANNEDORDER,
GS_RET.
GV_HEADERDATA-MATERIAL = 'F-S-H200'. "物料号
GV_HEADERDATA-PLAN_PLANT = 'CN31'. "计划工厂
GV_HEADERDATA-VERSION = '1000'. "生产版本
GV_HEADERDATA-FIRMING_IND = 'X'. "计划订货数据的确定的标识
GV_HEADERDATA-PLDORD_PROFILE = 'LA'. "计划订单参数文件
GV_HEADERDATA-TOTAL_PLORD_QTY = 100. "全部的计划订单数量
GV_HEADERDATA-ORDER_START_DATE = SY-DATUM. "计划订单上的订单开始日期
GV_HEADERDATA-ORDER_FIN_DATE = SY-DATUM. "计划订单中的订单结束日期
GV_HEADERDATA-PLAN_OPEN_DATE = SY-DATUM. "计划订单的计划转换日期
CALL FUNCTION 'BAPI_PLANNEDORDER_CREATE'
EXPORTING
HEADERDATA = GV_HEADERDATA
IMPORTING
RETURN = GV_RETURN
PLANNEDORDER = GV_PLANNEDORDER.
IF GV_RETURN-TYPE = 'S'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
MOVE-CORRESPONDING GV_RETURN TO GS_RET.
APPEND GS_RET TO GT_RET2.
ENDFORM. " CREATE_PLDORDER
2、计划订单删除-MD12
*&---------------------------------------------------------------------*
*& Report ZTEST_PLAN_ORDER
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTEST_PLAN_ORDER.
DATA: GV_HEADERDATA LIKE BAPIPLAF_I1,
GV_RETURN LIKE BAPIRETURN1,
GV_PLANNEDORDER LIKE BAPI_PLDORD-PLDORD_NUM.
DATA: GT_RET2 TYPE /EACC/T_BAPIRET2,
GS_RET LIKE LINE OF GT_RET2.
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*&---------------------------------------------------------------------*
PERFORM DELETE_PLDORDER USING GV_PLANNEDORDER.
*** 弹出框说明
IF GT_RET2[] IS NOT INITIAL.
CALL FUNCTION 'FINB_BAPIRET2_DISPLAY'
EXPORTING
IT_MESSAGE = GT_RET2.
ENDIF.
*&---------------------------------------------------------------------*
*& Form DELETE_PLDORDER
*&---------------------------------------------------------------------*
* 删除计划订单 - MD12
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DELETE_PLDORDER USING P_PLNUM.
REFRESH GT_RET2[].
CLEAR : GV_RETURN,
GS_RET.
CALL FUNCTION 'BAPI_PLANNEDORDER_DELETE'
EXPORTING
PLANNEDORDER = P_PLNUM
* USE_COLL_UPDATE = ' '
* LAST_ORDER = ' '
IMPORTING
RETURN = GV_RETURN.
IF GV_RETURN-TYPE = 'S'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
MOVE-CORRESPONDING GV_RETURN TO GS_RET.
APPEND GS_RET TO GT_RET2.
ENDFORM. " DELETE_PLDORDER
提示样式: