【测试】生成CO01生产订单Demo

*&---------------------------------------------------------------------*
*& Report  ZTEST_CREATE_ORDER
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZTEST_CREATE_ORDER.

DATA :  GV_ORDERDATA      LIKE  BAPI_PP_ORDER_CREATE,
        GV_RETURN         LIKE  BAPIRET2,
        GV_ORDER_NUMBER   LIKE  BAPI_ORDER_KEY-ORDER_NUMBER,
        GV_ORDER_TYPE     LIKE  BAPI_ORDER_COPY-ORDER_TYPE.

*&---------------------------------------------------------------------*
START-OF-SELECTION.
*&---------------------------------------------------------------------*

*** 填充Bapi值
  PERFORM FILL_BAPI_DATA.

*** 调用Bapi函数
  PERFORM CREATE_ORDER.

*** 返回值处理
  PERFORM BAPI_RETURN.

*&---------------------------------------------------------------------*
*&      Form  FILL_BAPI_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FILL_BAPI_DATA .

*** 订单物料编码
  GV_ORDERDATA-MATERIAL = 'M-S-880'.
*** 工程
  GV_ORDERDATA-PLANT = 'CN33'.
*** 订单类型
  GV_ORDERDATA-ORDER_TYPE = 'PP01'.
*** 基本开始日期
  GV_ORDERDATA-BASIC_START_DATE = '20200920'.
*** 基本完成日期
  GV_ORDERDATA-BASIC_END_DATE = '20200930'.
*** 订单数量
  GV_ORDERDATA-QUANTITY = 1.
*** 计量单位
  GV_ORDERDATA-QUANTITY_UOM = 'EA'.
*** 任务清单类型
  GV_ORDERDATA-ROUTING_TYPE = 'N'.
*** 任务清单组码
  GV_ORDERDATA-ROUTING_GROUP = '50000004'.
*** 组计数器
  GV_ORDERDATA-ROUTING_COUNTER = '01'.
*** BOM展开/工艺路线转换的日期
  GV_ORDERDATA-EXPLOSION_DATE = SY-DATUM.
*** 订单优先级
  GV_ORDERDATA-ORDER_PRIORITY = ''.
*** 利润中心
  GV_ORDERDATA-PROFIT_CENTER = 'PCN33'.
*** 库存地点
  GV_ORDERDATA-STORAGE_LOCATION = 'M230'.

ENDFORM.                    " FILL_BAPI_DATA

*&---------------------------------------------------------------------*
*&      Form  BAPI_RETURN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BAPI_RETURN .

  IF GV_ORDER_NUMBER IS NOT INITIAL.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        WAIT = 'X'.

    WRITE : / '生产订单创建成功,订单号为:',GV_ORDER_NUMBER.

  ELSE.

    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

    WRITE : / '生产订单创建失败:',GV_RETURN-MESSAGE.

  ENDIF.

ENDFORM.                    " BAPI_RETURN

*&---------------------------------------------------------------------*
*&      Form  CREATE_ORDER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CREATE_ORDER .

  CLEAR GV_ORDER_NUMBER.
  CALL FUNCTION 'BAPI_PRODORD_CREATE'
    EXPORTING
      ORDERDATA    = GV_ORDERDATA
    IMPORTING
      RETURN       = GV_RETURN
      ORDER_NUMBER = GV_ORDER_NUMBER
      ORDER_TYPE   = GV_ORDER_TYPE.

ENDFORM.                    " CREATE_ORDER

猜你喜欢

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