`
moonfly2004
  • 浏览: 56438 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

BAPI_GOODSMVT_CREATE --mb01,mb1A

阅读更多

* BAPI TO Upload Inventory Data
*
* GMCODE Table T158G - 01 - MB01 - Goods Receipts for Purchase Order
*                      02 - MB31 - Goods Receipts for Prod Order
*                      03 - MB1A - Goods Issue
*                      04 - MB1B - Transfer Posting
*                      05 - MB1C - Enter Other Goods Receipt
*                      06 - MB11
*
* Domain: KZBEW - Movement Indicator
*      Goods movement w/o reference
*  B - Goods movement for purchase order
*  F - Goods movement for production order
*  L - Goods movement for delivery note
*  K - Goods movement for kanban requirement (WM - internal only)
*  O - Subsequent adjustment of "material-provided" consumption
*  W - Subsequent adjustment of proportion/product unit material
*
report zbapi_goodsmovement.

parameters: p-file like rlgrap-filename default
                                 'c:\sapdata\TEST.txt'.
parameters: e-file like rlgrap-filename default
                                 'c:\sapdata\gdsmvterror.txt'.

parameters: xpost like sy-datum default sy-datum.

data: begin of gmhead.
        include structure bapi2017_gm_head_01.
data: end of gmhead.

data: begin of gmcode.
        include structure bapi2017_gm_code.
data: end of gmcode.

data: begin of mthead.
        include structure bapi2017_gm_head_ret.
data: end of mthead.

data: begin of itab occurs 100.
        include structure bapi2017_gm_item_create.
data: end of itab.

data: begin of errmsg occurs 10.
        include structure bapiret2.
data: end of errmsg.

data: wmenge like iseg-menge,
      errflag.

data: begin of pcitab occurs 100,
        ext_doc(10),           "External Document Number
        mvt_type(3),           "Movement Type
        doc_date(8),           "Document Date
        post_date(8),          "Posting Date
        plant(4),              "Plant
        material(18),          "Material Number
        qty(13),               "Quantity
        recv_loc(4),           "Receiving Location
        issue_loc(4),          "Issuing Location
        pur_doc(10),           "Purchase Document No
        po_item(3),            "Purchase Document Item No
        del_no(10),            "Delivery Purchase Order Number
        del_item(3),           "Delivery Item
        prod_doc(10),          "Production Document No
        scrap_reason(10),      "Scrap Reason
        upd_sta(1),            "Update Status
      end of pcitab.

call function 'WS_UPLOAD'
  exporting
    filename                      = p-file
    filetype                      = 'DAT'
* IMPORTING
*   FILELENGTH                    =
  tables
    data_tab                      = pcitab
* EXCEPTIONS
*   FILE_OPEN_ERROR               = 1
*   FILE_READ_ERROR               = 2
*   NO_BATCH                      = 3
*   GUI_REFUSE_FILETRANSFER       = 4
*   INVALID_TYPE                  = 5
*   OTHERS                        = 6
          .
if sy-subrc <> 0.
  message id sy-msgid type sy-msgty number sy-msgno
          with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  exit.
endif.

gmhead-pstng_date = sy-datum.
gmhead-doc_date = sy-datum.
gmhead-pr_uname = sy-uname.
gmcode-gm_code = '01'.   "01 - MB01 - Goods Receipts for Purchase Order

loop at pcitab.
  itab-move_type  = pcitab-mvt_type.
  itab-mvt_ind    = 'B'.
  itab-plant      = pcitab-plant.
  itab-material   = pcitab-material.
  itab-entry_qnt  = pcitab-qty.
  itab-move_stloc = pcitab-recv_loc.
  itab-stge_loc   = pcitab-issue_loc.
  itab-po_number  = pcitab-pur_doc.
  itab-po_item    = pcitab-po_item.
  concatenate pcitab-del_no pcitab-del_item into itab-item_text.
  itab-move_reas  = pcitab-scrap_reason.

  append itab.
endloop.

loop at itab.
  write:/ itab-material, itab-plant, itab-stge_loc,
          itab-move_type, itab-entry_qnt, itab-entry_uom,
          itab-entry_uom_iso, itab-po_number, itab-po_item,
                                              pcitab-ext_doc.
endloop.

call function 'BAPI_GOODSMVT_CREATE '
  exporting
    goodsmvt_header             = gmhead
    goodsmvt_code               = gmcode
*   TESTRUN                     = ' '
* IMPORTING
    goodsmvt_headret            = mthead
*   MATERIALDOCUMENT            =
*   MATDOCUMENTYEAR             =
  tables
    goodsmvt_item               = itab
*   GOODSMVT_SERIALNUMBER       =
    return                      = errmsg
          .
clear errflag.
loop at errmsg.
  if errmsg-type eq 'E'.
    write:/'Error in function', errmsg-message.
    errflag = 'X'.
  else.
    write:/ errmsg-message.
  endif.
endloop.

if errflag is initial.
  commit work and wait.
  if sy-subrc ne 0.
    write:/ 'Error in updating'.
    exit.
  else.
    write:/ mthead-mat_doc, mthead-doc_year.
    perform upd_sta.
  endif.
endif.

*---------------------------------------------------------------------*
*       FORM UPD_STA                                                  *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
form upd_sta.
  loop at pcitab.
    pcitab-upd_sta = 'X'.
    modify pcitab.
  endloop.

  call function 'WS_DOWNLOAD'
    exporting
      filename                      = p-file
      filetype                      = 'DAT'
* IMPORTING
*   FILELENGTH                    =
    tables
      data_tab                      = pcitab
* EXCEPTIONS
*   FILE_OPEN_ERROR               = 1
*   FILE_READ_ERROR               = 2
*   NO_BATCH                      = 3
*   GUI_REFUSE_FILETRANSFER       = 4
*   INVALID_TYPE                  = 5
*   OTHERS                        = 6
            .

endform.

*--- End of Program

分享到:
评论

相关推荐

    【测试】SAP 委外加工收货BAPI Demo

    三、委外PO的收货(这里使用BAPI_GOODSMVT_CREATE) *&---------------------------------------------------------------------* *& Report ZTEST_WWJG *& *&---------------------------------------------------...

    实用BAPI做内部调拨

    本示例中的"实用BAPI做内部调拨"是指使用BAPI_GOODSMVT_CREATE来执行物料在同一个工厂内的库存移动,即内部调拨。内部调拨在供应链管理中是一种常见的操作,用于调整库存位置,例如将物料从仓库的一个存储位置转移到...

    凭证导入BAPI_ACC_DOCUMENT_POST

    标题与描述中的“凭证导入 BAPI_ACC_DOCUMENT_POST”指向了一个特定的SAP系统功能,用于自动化导入财务凭证,尤其在银行流水与企业财务系统间建立接口时至关重要。此过程不仅涉及标准参数的传递,还触及了如何处理和...

    BAPI_NETWORK_COMP_CHANGE 修改项目网络组件的BAPI

    ### BAPI_NETWORK_COMP_CHANGE:修改项目网络组件的BAPI #### 概述 在SAP系统中,项目管理(Project Management, PM)是用于管理和控制工程项目的重要工具之一。项目网络则是PM模块中用来规划和控制项目活动的关键...

    sap abap常用bapi

    15. BAPI_GOODSMVT_CREATE/BAPI_GOODSMVT_CANCEL/BAPI_GOODSMVT_GETDETAIL/BAPI_GOODSMVT_GETITEMS 这些BAPI用于创建、取消、获取详细信息和获取商品移动的项目。 16. BAPI_PR_CREATEPR 此BAPI用于创建生产订单。 ...

    用BAPI_PO_CHANGE修改(ME23N)PO出貨日期的方法

    ### 使用BAPI_PO_CHANGE修改(ME23N)采购订单(PO)出货日期的方法 在SAP系统中,采购订单(Purchase Order, PO)管理是供应链管理中的一个关键环节,涉及采购请求、供应商选择、合同谈判等多个流程。在实际业务操作...

    SAP 所有BAPI的清单

    SAP中很多情况下客户提出增强的需求时,我们通常会用到BAPI或者BADI。虽然你可以在SAP中直接输入TCd:BAPI来查找。但是并不是所有的BAPI都能查得到的。希望这个清单能够帮到你。

    BAPI_PO_CREATE.zip_bapi_po_create help

    通过JCo接口利用BAPI函数创建PO订单

    SAP常用的bapi

    **BAPI名称:** `BAPI_GOODSMVT_CREATE` **描述:** 此BAPI用于创建物料凭证,常用于处理收货流程。 **参数:** - **输入参数 (EXPORTING):** - `goodsmvt_header`: 收货头数据。 - `goodsmvt_code`: 代码信息。 -...

    如何利用BAPI_SALESORDER_CHANGE修改vbak增强字段

    在SAP系统中,BAPI(Business Application Programming Interface)是一种标准接口,允许外部应用程序与SAP系统进行交互,包括创建、更改和查询业务数据。在本案例中,我们需要利用BAPI_SALESORDER_CHANGE来修改销售...

    关于用BAPI批量创建工艺路线

    该解决方案是围绕 BAPI_ROUTING_CREATE 函数的使用,旨在解决 BAPI_ROUTING_CREATE 不可以创建定额工艺路线的问题。 首先,让我们了解 BAPI_ROUTING_CREATE 函数的基本参数。该函数主要包括三个参数:TASK、...

    BAPI_ACC_DOCUMENT_POST增强

    SAP系统中的BAPI_ACC_DOCUMENT_POST增强 在SAP系统中,会计凭证过账时,需要将预留预算清掉,但是在接口中没有该字段。为了解决这个问题,可以使用BAPI_ACC_DOCUMENT_POST中的EXTENSION2传入值来实现。下面是实现的...

    BAPI-ACC-DOCUMENT-POST 结构字段扩展

    ### BAPI-ACC-DOCUMENT-POST 结构字段扩展 #### 概述 在SAP系统中,`BAPI_ACC_DOCUMENT_POST` 是一个重要的业务应用程序接口(BAPI),用于执行财务凭证的过账处理。但在实际应用过程中,可能会遇到现有BAPI无法...

    BAPI_NETWORK_MAINTAIN 下达项目网络的BAPI

    ### BAPI_NETWORK_MAINTAIN:下达项目网络的BAPI #### 概述 在SAP系统中,**BAPI_NETWORK_MAINTAIN** 是一个用于维护和管理项目网络的业务应用程序接口(Business Application Programming Interface,简称BAPI)...

    采购订单BAPI增强数值型字段转换方法.docx

    8. 再双击IF_EX_ME_BAPI_PO_CREATE_02~MAP2I_EXTENSIONIN。 9. 点击“是”。 10. 点击“是”。 11. 开始编辑代码。 在编辑代码时,我们需要使用ABAP语言来实现数值型字段的转换。下面是实现代码: ```abap DATA: lr...

    SAP 委外加工操作

    - **发货操作**:可以通过两种方式完成向供应商的发货操作:使用事务代码MB1B或者使用事务代码ME2O。 - **MB1B发货**:适用于直接从库存发货给供应商的场景。 - **ME2O发货**:适用于通过采购订单的形式发货给供应...

    创建销售订单

    BAPI_SALESORDER_CREATEFROMDAT2是SAP系统中创建销售订单的API接口,通过调用这个接口,可以快速创建销售订单。 在创建销售订单时,需要设置订单的头信息、项目信息、伙伴信息和计划信息等。头信息包括订单类型、...

    SAP 按单生产委外加工总结

    4. 库存状态检查:使用MD04监控库存状态,MB1B用于非限制库存转供应商库存,MMBE用于查看原料库存。 5. 收货处理:对采购订单进行收货,成品W采用101 E(生产入库),原料T采用543 O(供应商收货)。 6. 库存变动:...

    创建及修改物料主数据

    本文将详细介绍如何使用BAPI_TRANSACTION_COMMIT创建及修改物料主数据,包括物料主数据的创建和修改、物料描述的设置、客户端层次物料数据的设置、物料类型的设置等。 物料主数据的创建 在SAP系统中,物料主数据是...

    SAP应用手册可以学学

    ### SAP应用手册知识点:SAP Note 593246 - BAPI SD As of Rel.4.70: New Functions for Pricing #### 概述 SAP Note 593246 描述了在SAP Release 4.7中为销售与分销(Sales and Distribution, SD)业务应用接口...

Global site tag (gtag.js) - Google Analytics