SAP 计划订单转生产订单BAPI CO_SD_PLANNED_ORDER_CONVERT

导语:最近在做PP模块的开发,涉及到【计划订单】转【生产订单】,搜罗了一下资料,整理了一下,直接贴代码吧。

【BAPI记录清单…】

【BAPI名称】:BAPI_PRODORD_CREATE_FROM_PLORD

计划订单转生产订单,会存在实际需要转的生产订单与计划订单数量不相等的情况,这种情况不能直接调用下面的bapi。

需要先修改计划订单的数量,然后再调用bapi,修改(后面会写计划订单修改数量)
或者,调用BAPI之后,再修改生产订单的数量。
以上两种办法都可以

计划订单转生产订单

*&---------------------------------------------------------------------*
*& Report Z_JYH_TEST2
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_jyh_test2.

   CALL FUNCTION 'BAPI_PRODORD_CREATE_FROM_PLORD'
        EXPORTING
          planned_order    = gv_plnum_in "计划订单编号
          order_type       = 'ZP01'  "<fs_alv>-auart
        IMPORTING
          production_order = lv_order_number "生产订单编号
          return           = ls_return.

修改计划订单数量


  DATA:lv_msg TYPE string.
  DATA:gv_flag .
  DATA:gv_plnum_in  TYPE plnum.
  DATA:gv_plnum_out  TYPE plnum.
  DATA:gv_aufnr_in  TYPE aufnr.
  DATA:gv_aufnr_out  TYPE aufnr.


     " Create BAPI_PLANNEDORDER_CHANGE
*      修改计划订单数量
      CALL FUNCTION 'BAPI_PLANNEDORDER_CHANGE'
        EXPORTING
          plannedorder = gv_plnum_in   "计划订单
          headerdata   = VALUE bapiplaf_i2(
          total_plord_qty  =  is_input-psmng  "数量
          order_start_date = ls_plaf-psttr     " 日期
          order_fin_date   = ls_plaf-pedtr     "  日期
          stge_loc         = is_input-lgort    "  库存地点
          firming_ind      = 'X'          " 标识必打,不然转单bapi报错
          conversion_ind   = 'X' )    " 标识必打,不然转单bapi报错
          headerdatax  = VALUE bapiplaf_i2x(
          total_plord_qty  = 'X'
          order_start_date = 'X'
          order_fin_date   = 'X'
          firming_ind      = 'X'
          conversion_ind   = 'X' )
        IMPORTING
          return       = ls_ret.

作者:小飞猪猪猪猪猪猪猪–CSDN

你可能感兴趣的:(SAP,BAPI,sap,abap)