SAP_ABAP_MM_BAPI清单案例教程——采购订单收货_BAPI_GOODSMVT_CREATE_MIGO

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客


目标: 掌握SAP MM模块,主要流程相关的BAPI 函数的使用,主要有如下模块:

询价 报价 货源清单 配额安排 采购信息记录 框架协议-合同 框架协议-计划协议 采购订单 采购收货  发票校验 发票过账


一 背景说明

1.1 什么是SAP BAPI.

        BAPI是SAP系统标准函数,比如:采购申请创建函数、采购订单创建函数等等。

1.2 SAP采购模块标准流程

1.2.1 模块导航
采购信息记录修改 SAP_ABAP_MM_BAPI清单案例教程——采购信息记录_企业数字化建设者的博客-CSDN博客
框架协议-合同创建 SAP_ABAP_MM_BAPI清单案例教程——框架协议-合同_企业数字化建设者的博客-CSDN博客
框架协议-合同修改 SAP_ABAP_MM_BAPI清单案例教程——框架协议-合同_企业数字化建设者的博客-CSDN博客
框架协议-计划协议创建 SAP_ABAP_MM_BAPI清单案例教程——框架协议-计划协议_企业数字化建设者的博客-CSDN博客
采购申请创建 SAP_ABAP_MM_BAPI清单案例教程——采购申请_企业数字化建设者的博客-CSDN博客
采购订单创建 SAP_ABAP_MM_BAPI清单案例教程——采购订单_企业数字化建设者的博客-CSDN博客
采购订单收货创建 SAP_ABAP_MM_BAPI清单案例教程——采购订单收货_企业数字化建设者的博客-CSDN博客
采购发票预制 SAP_ABAP_MM_BAPI清单案例教程——采购发票校验_企业数字化建设者的博客-CSDN博客
采购发票过账 SAP_ABAP_MM_BAPI清单案例教程——采购发票过账_企业数字化建设者的博客-CSDN博客
1.2.2 BAPI清单
ME_INFORECORD_MAINTAIN  采购信息记录修改
BAPI_CONTRACT_CREATE 框架协议-合同创建
BAPI_CONTRACT_CHANGE 框架协议-合同修改
BAPI_SAG_CREATE 框架协议-计划协议创建
BAPI_PR_CREATE 采购申请创建
BAPI_PO_CREATE1 采购订单创建
BAPI_GOODSMVT_CREATE 采购订单收货创建
BAPI_INCOMINGINVOICE_PARK 采购发票预制
BAPI_INCOMINGINVOICE_POST 采购发票过账

二 代码模板

1.3.1 创建

1.3.2 修改

1.3.3 删除

FUNCTION ZFM_MIGO.
*"----------------------------------------------------------------------
*"*"本地接口:
*"----------------------------------------------------------------------

  DATA:
    lw_zmkpf_usnam   TYPE zmkpf_usnam,
    l_buzei          TYPE mblpo,
    l_status         TYPE char1,
    l_msg            TYPE char100,
    l_text           TYPE char100,

    l_vbeln          TYPE vbeln,
    lw_ekko          TYPE ekko,
    lt_ekko          TYPE STANDARD TABLE OF ekko
                     WITH NON-UNIQUE SORTED KEY ebeln COMPONENTS ebeln,
    lw_ekpo          TYPE ekpo,
    lt_ekpo          TYPE STANDARD TABLE OF ekpo
                     WITH NON-UNIQUE SORTED KEY ebelp COMPONENTS ebeln ebelp,

    l_docu           TYPE bapi2017_gm_head_ret-mat_doc,
    lw_header        TYPE bapi2017_gm_head_01,
    lw_item          TYPE bapi2017_gm_item_create,
    lt_item          TYPE bapi2017_gm_item_create OCCURS 0,

    lw_return        TYPE bapiret2,
    lw_extension     TYPE bapiparex,
    lt_extension     TYPE STANDARD TABLE OF bapiparex,

    lw_bapi_te_xmseg TYPE bapi_te_xmseg,
    lt_bapi_te_xmseg TYPE STANDARD TABLE OF bapi_te_xmseg,
    lt_return        TYPE bapiret2 OCCURS 0.


**********抬头*****************
  lw_header-pstng_date = sy-datum."过账日期
  lw_header-doc_date   = sy-datum."凭证日期
*  lw_header-pr_uname   = is_head-usnam. "不生效
  lw_header-header_txt = '凭证抬头文本'."凭证抬头文本
*  lw_zmkpf_usnam-usnam    = is_head-usnam.
*  CLEAR lw_extension.
*  lw_extension-structure      = 'ZMKPF_USNAM'.
*  lw_extension-valuepart1     = lw_zmkpf_usnam.
*  APPEND lw_extension TO lt_extension.

************行项目************
    CLEAR lw_item.

    lw_item-move_type              = '101'.
    lw_item-mvt_ind                = 'B'. "按PO收货
*    lw_item-no_more_gr             = 'X'.
    lw_item-po_number              = '4500000504'. "po_number
    lw_item-po_item                = '000010'. "po_item
    lw_item-material               = '000003005003000052'. "物料
    lw_item-entry_qnt              = '10'. "数量
    lw_item-entry_uom              = 'KG'. "指定单位
    lw_item-plant                  = '2012'. "工厂
    lw_item-stge_loc               = ''. "库存地点
    lw_item-vendor                 = '0000100280'. "供应商
    lw_item-batch                  = 'CEE'."批次

    APPEND lw_item TO lt_item.

    CLEAR lw_extension.
    CLEAR lw_bapi_te_xmseg.

*    l_buzei = l_buzei + 1.
*    lw_bapi_te_xmseg-matdoc_itm = l_buzei.
*    lw_bapi_te_xmseg-mat_pspnr  = lw_i_item-mat_pspnr.
*    lw_extension-structure      = 'BAPI_TE_XMSEG'.
*    lw_extension-valuepart1     = lw_bapi_te_xmseg.
*    APPEND lw_extension TO lt_extension.


************ MIGO *********
  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      goodsmvt_header  = lw_header
      goodsmvt_code    = '01'
    IMPORTING
      materialdocument = l_docu
    TABLES
      goodsmvt_item    = lt_item
      extensionin      = lt_extension
      return           = lt_return.

* 状态判定
  CLEAR l_text.
  DATA:e_status  TYPE char1.
  DATA:e_message TYPE String.
  CLEAR e_status.
  LOOP AT lt_return INTO lw_return .
    IF lw_return-type = 'E'
    OR lw_return-type = 'A'.
      e_status = 'E'.
    ENDIF.
    IF l_text IS INITIAL.
      l_text = lw_return-message.
    ELSE.
      CONCATENATE l_text lw_return-message INTO l_text SEPARATED BY '//'.
    ENDIF.
  ENDLOOP.
* 结果处理
  IF e_status = 'E'.
    e_message = '(MIGO过账失败),详细:' && l_text.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  ELSE.
    e_status = 'S'.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
  ENDIF.


ENDFUNCTION.

三 业务概念

3.1 使用MIGO执行采购订单收货的一般步骤

        SAP中,MIGO(Material Document)是一个重要的事务代码,用于执行采购订单的收货、发货、传输和其他库存管理活动。对于采购订单收货,您可以使用MIGO来记录和管理物料的实际收货情况。以下是在SAP中使用MIGO执行采购订单收货的一般步骤:

  1. 登录到SAP系统: 使用您的SAP用户帐户登录到SAP系统。

  2. 打开MIGO事务: 在SAP的主菜单栏上,键入事务代码MIGO,然后按回车键或点击执行按钮以打开MIGO事务。

  3. 选择物料文档类型: 在MIGO界面中,您需要选择适当的物料文档类型。通常,对于采购订单收货,您会选择"Goods Receipt for Purchase Order"(采购订单的收货)文档类型。

  4. 输入采购订单号: 在MIGO界面的相应字段中输入采购订单的号码,或者使用搜索功能来查找订单。

  5. 选择采购订单行项目: 在MIGO界面中,您需要选择要收货的采购订单的特定行项目。您可以选择单个项目或多个项目。

  6. 输入收货数量: 对于每个选定的采购订单行项目,您需要输入实际的收货数量。这通常是物理收到的数量。

  7. 输入质量检验数据(如果适用): 如果采购订单要求进行质量检验,您需要输入相关的质量检验信息,如检验批次和检验结果。

  8. 选择库存地点: 您需要指定收货的库存地点。这是物料在企业库存中的位置。

  9. 保存收货数据: 在输入所有必要信息后,点击保存按钮以保存收货数据。

  10. 确认收货: 系统将提示您进行最终的确认,以确认收货操作。确认后,物料收货数据将记录在SAP系统中,库存会相应更新。

  11. 打印收货凭证(可选): 如果需要,您可以选择打印收货凭证,以便记录和存档。

四  常用Tcode

4.1 基于Tcode的顺序排列

供应商主数据 物料主数据 货源清单 配额安排 采购信息记录 采购订单 框架协议 采购询价/报价 采购申请 订单收货 发票校验 物料需求计划
BP-供应商主数据 MM01 - 物料主数据新增 ME01 - 维护 MEQ1 - 维护 ME11 - 创建 ME21N - 创建 框架协议-合同: 询价: ME51N - 创建采购申请 MIGO - 货物移动 MIRO - 发票校验 MD01 - 联机
XK01 - 创建 MM02 - 物料主数据修改 ME03 - 显示 MEQ3 - 显示 ME12 - 修改 ME22N - 更改 ME31K - 创建 ME41 - 创建 ME52N - 更改采购申请 MB03 - 显示物料凭证 MD04 - 显示库存/需求状况
XK02 - 更改 MM03 - 物料主数据查询 ME0M - 清单查询 MEQ4 - 更改 ME13 - 查询 ME23N - 显示 ME32K - 更改 ME42 - 更改 ME53N - 显示采购申请 MB51 - 物料凭证清单
XK03 - 显示 MM04 - 物料主数据冻结与解冻 ME04 - 修改记录查询 MEQM - 按物料 (清单显示) ME14 - 修改记录查询 ME29N - 审批 ME33K - 显示 ME43 - 显示 ME54N - 批准采购请求 MMBE - 库存总览
XK04 - 修改 MM50 - 扩充物料视图 ME15 - 删除 ME34K - 维护补充 ME44 - 维护补充 ME5A - 清单查询 MB52 - 现有仓库库存清单
XK05 - 冻结 MM06 - 删除物料标记 ME1L - 清单查询 ME35K - 审批 ME45 - 审批
XK06 - 删除标记 MM60 - 物料清单 框架协议-计划协议: 报价:
XK07 - 科目组改变 MM17 - 成批维护 ME31L - 已知供应商 ME47 - 维护
ME37 - 库存传送计划协议 ME48 - 显示
ME32L - 更改 ME49 - 价格比较
ME33L - 显示
ME34L - 维护补充
ME35L - 审批

鸣谢:感谢查阅,请多多指教,有用请收藏、点赞哦 ! 

你可能感兴趣的:(Abap编程,经验分享,ABAP,MM,采购订单收货,MIGO,GOODSMVT)