SAP MFBF 重复制造时的反冲 BAPI_REPMANCONF1_CREATE_MTS

该代码示例展示了如何使用SAPBAPI_REPMANCONF1_CREATE_MTS进行物料反冲和冲销操作。通过对物料、工厂、库存位置等信息的处理,定义反冲参数,调用BAPI函数执行反冲和冲销交易,并根据交易结果进行事务提交或回滚。同时,代码中包含对数据库的查询以获取必要的生产版本信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MFBF对应的bapi:BAPI_REPMANCONF1_CREATE_MTS

示例代码如下


TYPES: BEGIN OF TY_DATA,
  BOX    TYPE CHAR01,
  ICON   TYPE CHAR6,
  MSG    TYPE STRING,
  MBLNR  TYPE MBLNR,
  BUDAT  TYPE BUDAT,
  MATNR1 TYPE MATNR,  "收货物料
  MAKTX1 TYPE MAKTX,  "物料描述
  MEINS1  TYPE MEINS,
  MATNR2 TYPE MATNR,  "反冲物料
  MAKTX2 TYPE MAKTX,  "物料描述
  MEINS2 TYPE MEINS,  "单位
  MENGE  TYPE MENGE_D,  "数量
  WERKS  TYPE WERKS_D,  "生产工厂
  LGORT  TYPE LGORT_D,  "反冲库位
  LGOBE  TYPE LGOBE,    "反冲库位
  FLAG   TYPE CHAR01,  "是否冲销
  END OF TY_DATA.
DATA: GT_DATA TYPE STANDARD TABLE OF TY_DATA.
DATA: GS_DATA TYPE TY_DATA.

DATA:  LS_BFLUSHFLAGS    TYPE BAPI_RM_FLG,
         LS_BFLUSHDATAGEN  TYPE BAPI_RM_DATGEN,
         LT_GOODSMOVEMENTS TYPE TABLE OF BAPI2017_GM_ITEM_CREATE,
         LS_GOODSMOVEMENTS TYPE BAPI2017_GM_ITEM_CREATE,
         LS_BFLUSHDATAMTS TYPE BAPI_RM_DATSTOCK,
         LS_RETURN         TYPE BAPIRET2,
         LV_CONFIRMATION   TYPE BAPI_RM_DATKEY-CONFIRMATION.

  DATA: LT_TEMP  TYPE STANDARD TABLE OF TY_DATA.
  DATA: LS_TEMP  TYPE TY_DATA.
  DATA: LV_MBLNR TYPE MBLNR.

  LT_TEMP = GT_DATA.
  DELETE LT_TEMP WHERE BOX IS INITIAL .
  CHECK LT_TEMP IS NOT INITIAL .
  SORT LT_TEMP BY BUDAT MATNR1 FLAG.
  DELETE ADJACENT DUPLICATES FROM LT_TEMP COMPARING BUDAT MATNR1 FLAG.

  LOOP AT LT_TEMP INTO LS_TEMP .
    CLEAR:LS_BFLUSHFLAGS,LS_BFLUSHDATAGEN,LV_CONFIRMATION,LS_RETURN,LT_GOODSMOVEMENTS.


*抬头的赋值:
    LS_BFLUSHFLAGS-BCKFLTYPE        = '11'.           "11:个别组件消耗反冲 01:最后反冲 02:报告点反冲 10:个别作业反冲
    LS_BFLUSHDATAGEN-MATERIALNR     = LS_TEMP-MATNR1.     "物料
    LS_BFLUSHDATAGEN-PRODPLANT      = LS_TEMP-WERKS.       "工厂
    LS_BFLUSHDATAGEN-PLANPLANT      = LS_TEMP-WERKS.       "工厂
    LS_BFLUSHDATAGEN-STORAGELOC     = LS_TEMP-LGORT.       "库存地点
    SELECT SINGLE VERID INTO
    LS_BFLUSHDATAGEN-PRODVERSION                          "生产版本
    FROM MKAL
    WHERE MATNR = LS_TEMP-MATNR1
    AND   WERKS = LS_TEMP-WERKS .
    LS_BFLUSHDATAGEN-POSTDATE       = LS_TEMP-BUDAT.       "过账日期
    LS_BFLUSHDATAGEN-DOCDATE        = LS_TEMP-BUDAT.       "凭证日期
    LS_BFLUSHDATAGEN-BACKFLQUANT    = '1'.
    LS_BFLUSHDATAGEN-UNITOFMEASURE  = LS_TEMP-MEINS1.               "单位
    LS_BFLUSHDATAGEN-ORDERCOSTS     = 'X'.            "标识: 订单成本的过帐.
*  LS_BFLUSHDATAMTS-REPPOINT = lv_REPPOINT.
*  ls_bflushflags-components_type = COMPONENTS_TYPE. 不需要报告点反冲
    LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL
                                  AND   BUDAT  = LS_TEMP-BUDAT
                                  AND   MATNR1 = LS_TEMP-MATNR1
                                  AND   FLAG  = LS_TEMP-FLAG
       .
      CLEAR:LS_GOODSMOVEMENTS.
      LS_GOODSMOVEMENTS-STGE_LOC  = GS_DATA-LGORT.           "库存地点来源前台
      LS_GOODSMOVEMENTS-MATERIAL  = GS_DATA-MATNR2.    "组件物料编码
      LS_GOODSMOVEMENTS-ENTRY_UOM = GS_DATA-MEINS2.           "单位
      LS_GOODSMOVEMENTS-PLANT     = GS_DATA-WERKS.           "工厂
      LS_GOODSMOVEMENTS-ENTRY_QNT = GS_DATA-MENGE.          "实际过账数量
      LS_GOODSMOVEMENTS-PROD_DATE = GS_DATA-BUDAT.           "生产日期
      IF GS_DATA-FLAG IS NOT INITIAL .
        LS_GOODSMOVEMENTS-MOVE_TYPE = '262'."IT_SMVT-MOVE_TYPE'.    "移动类型
      ELSE.
        LS_GOODSMOVEMENTS-MOVE_TYPE = '261'."IT_SMVT-MOVE_TYPE'.    "移动类型
      ENDIF.


      APPEND LS_GOODSMOVEMENTS TO LT_GOODSMOVEMENTS.

    ENDLOOP.




    CALL FUNCTION 'BAPI_REPMANCONF1_CREATE_MTS'
        EXPORTING
          BFLUSHFLAGS    = LS_BFLUSHFLAGS
          BFLUSHDATAGEN  = LS_BFLUSHDATAGEN
*     BFLUSHDATAMTS  = LS_BFLUSHDATAMTS
        IMPORTING
          CONFIRMATION   = LV_CONFIRMATION
          RETURN         = LS_RETURN
        TABLES
          GOODSMOVEMENTS = LT_GOODSMOVEMENTS.

    IF LV_CONFIRMATION IS NOT INITIAL.  "冲销成功
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          WAIT = 'X'.
      CLEAR: LV_MBLNR.
*    “取物料凭证号
      SELECT SINGLE  BELNR INTO LV_MBLNR FROM BLPP WHERE PRTNR = LV_CONFIRMATION .
      IF LV_MBLNR IS INITIAL.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
        LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL
                                AND   BUDAT  = LS_TEMP-BUDAT
                                AND   MATNR1 = LS_TEMP-MATNR1
                                AND   FLAG   = LS_TEMP-FLAG.

          GS_DATA-ICON = ICON_RED_LIGHT.
          GS_DATA-MBLNR = LV_MBLNR.
          GS_DATA-MSG  = LS_RETURN-MESSAGE.
          MODIFY GT_DATA FROM GS_DATA.
        ENDLOOP.

      ELSE.
        LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL
                                AND   BUDAT  = LS_TEMP-BUDAT
                                AND   MATNR1 = LS_TEMP-MATNR1
                                AND   FLAG   = LS_TEMP-FLAG.

          GS_DATA-ICON = ICON_GREEN_LIGHT.
          GS_DATA-MBLNR = LV_MBLNR.
          MODIFY GT_DATA FROM GS_DATA.
        ENDLOOP.
      ENDIF.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL
                              AND   BUDAT  = LS_TEMP-BUDAT
                              AND   MATNR1 = LS_TEMP-MATNR1
                              AND   FLAG   = LS_TEMP-FLAG.

        GS_DATA-ICON = ICON_RED_LIGHT.
        GS_DATA-MBLNR = LV_MBLNR.
        GS_DATA-MSG  = LS_RETURN-MESSAGE.
        MODIFY GT_DATA FROM GS_DATA.
      ENDLOOP.
    ENDIF.





  ENDLOOP.

SAP中,MFBF是一个用于批量报工的事务码。它用于将生产过程中的实际产量和废品数量记录到系统中。通过MFBF,您可以选择是产量过账还是废品数量进行过账。\[2\]在MFBF中,您可以对作业值进行修改,以确保准确记录生产过程中的实际情况。\[2\]此外,MFBF还可以与成本收集器(Cost Collector)一起使用。成本收集器是一个用于归集成本的载体,它可以用于重复制造的生产业务中。在成本收集器中,您可以记录投入和产出,并在产成品出来后使用MFBF进行倒冲扣料。\[3\]因此,如果您需要进行批量报工操作,您可以使用SAP中的MFBF事务码来完成。 #### 引用[.reference_title] - *1* [SAP中生产报工冲销扣料处理操作](https://blog.csdn.net/lj663/article/details/106070707)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MFBF:作业反冲-----报工过账](https://blog.csdn.net/weixin_45607495/article/details/128411749)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【学习笔记】SAP 成本对象控制](https://blog.csdn.net/zhongguomao/article/details/122829549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值