【测试】生成MD11计划订单Demo

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

提示样式:

猜你喜欢

转载自blog.csdn.net/zhongguomao/article/details/108857507