创建生产订单BAPI(BAPI_PRODORD_CREATE)的例子

*&---------------------------------------------------------------------*
*& Form FRM_CREATE_PRODORD
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_CREATE_PRODORD CHANGING P_FW_OUTPUT STRUCTURE GS_OUTPUT.
  DATA:LS_ORDERDATA TYPE BAPI_PP_ORDER_CREATE.
  DATA:LS_RETURN       TYPE BAPIRET2,
       LV_ORDER_NUMBER TYPE BAPI_ORDER_KEY-ORDER_NUMBER.
  CLEAR:LS_ORDERDATA.

  LS_ORDERDATA-MATERIAL_LONG = P_FW_OUTPUT-MATNR.
  LS_ORDERDATA-PLANT = P_FW_OUTPUT-DWERK.
  LS_ORDERDATA-ORDER_TYPE = 'ZP02'.
  LS_ORDERDATA-QUANTITY = P_FW_OUTPUT-ZXDSL.
*  LS_ORDERDATA-BASIC_START_DATE = '20160101' ."SY-DATUM. "
  LS_ORDERDATA-BASIC_START_DATE = SY-DATUM ."SY-DATUM. "
  LS_ORDERDATA-BASIC_END_DATE = P_FW_OUTPUT-ZDDJQ.
  LS_ORDERDATA-STORAGE_LOCATION = P_FW_OUTPUT-LGORT.
*  LS_ORDERDATA-UNLOADING_POINT = P_FW_OUTPUT-ZHTBM.

  CALL FUNCTION 'BAPI_PRODORD_CREATE'
    EXPORTING
      ORDERDATA    = LS_ORDERDATA
*     FSH_PRODORD_SEASON       =
    IMPORTING
      RETURN       = LS_RETURN
      ORDER_NUMBER = LV_ORDER_NUMBER
*     ORDER_TYPE   =
    .
  IF LS_RETURN-TYPE = 'E'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    ROLLBACK WORK.
    CONCATENATE '创建生产订单报错:' LS_RETURN-MESSAGE INTO P_FW_OUTPUT-MESSAGE.
    MOVE GC_LIGHT_R TO P_FW_OUTPUT-STATUS.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        WAIT = 'X'.
    P_FW_OUTPUT-AUFNR = LV_ORDER_NUMBER.

    P_FW_OUTPUT-WENGE = P_FW_OUTPUT-WENGE + P_FW_OUTPUT-ZDDJQ."已下单数量
    P_FW_OUTPUT-MENGE = P_FW_OUTPUT-MENGE - P_FW_OUTPUT-ZDDJQ."未下单数量
    IF P_FW_OUTPUT-MENGE < 0.
      P_FW_OUTPUT-MENGE = 0.
    ENDIF.
    MOVE GC_LIGHT_G TO P_FW_OUTPUT-STATUS.
    MOVE  '生产订单创建成功' TO P_FW_OUTPUT-MESSAGE.
  ENDIF.



ENDFORM.

posted @   linhuang  阅读(84)  评论(0编辑  收藏  举报  
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示