SAP BAPI-MM模块-物料主数据创建或修改-BAPI_MATERIAL_SAVEDATA-SE37函数测试(前台事务码MM01&后台表MARA MARC MBEW MVKE等)*超级干货系列*

目录

1 BAPI注意事项

注意点1:SE37测试过程中物料号必须外部给号

注意点2:SE37测试过程中物料描述不在入参中输入,需要在BAPI表中输入

注意点3:SE37测试过程中BAPI_MATERIAL_SAVEDATA可以直接创建物料主数据,不需要另外commit BAPI确定

2 BAPI基础数据

3 BAPI数据结构

4 BAPI函数调用

5 BAPI调用必要数据

EXPORTING:入参

入参1:headdata = ls_headdata(各个模块视图)

入参2:clientdata = ls_clientdata(基本数据视图-后台表MARA)

入参3:plantdata = ls_plantdata(工厂级别的物料数据-后台表MARC)

入参4:forecastparameters = ls_forecastparameters(预测视图-后台表MPOP)

入参5:planningdata = ls_planningdata(预测视图-后台表MPGD)

入参6:storagelocationdata = ls_storagelocationdata(工厂库存地点视图-后台表MARD)

入参7:valuationdata = ls_valuationdata(财务视图-后台表MBEW)

入参8:warehousenumberdata = ls_warehousenumberdata(仓库号视图-后台表MLGN)

入参9:salesdata = ls_salesdata(销售视图-后台表MVKE)

入参10:storagetypedata = ls_storagetypedata(存储类型视图-后台表MLGT)

IMPORTING:出参

出参1:return = ls_return 返回值

TABLES:表

表入参1:BAPI_MAKT-MATERIALDESCRIPTION 物料描述

表入参2:BAPI_MLAN-TAXCLASSIFICATIONS 物料税分类

5 SE37 BAPI测试

BAPI输入界面

输入BAPI参数

入参1:headdata = ls_headdata(各个模块视图)

入参2:clientdata = ls_clientdata(基本数据视图-后台表MARA)

入参3:plantdata = ls_plantdata(工厂级别的物料数据-后台表MARC)

采购视图

国际贸易:进口视图

MRP视图1

MRP视图2

MRP视图3

MRP视图4

入参4:forecastparameters = ls_forecastparameters(预测视图-后台表MPOP)

入参5:planningdata = ls_planningdata(预测视图-后台表MPGD)

入参6:storagelocationdata = ls_storagelocationdata(工厂库存地点视图-后台表MARD) ​编辑

入参7:valuationdata = ls_valuationdata(财务视图-后台表MBEW)

入参8:warehousenumberdata = ls_warehousenumberdata(仓库号视图-后台表MLGN)

入参9:salesdata = ls_salesdata(销售视图-后台表MVKE)

入参10:storagetypedata = ls_storagetypedata(存储类型视图-后台表MLGT)

BAPI测试报错清单

报错1:E MG 144 字段MARC-MTVFP/BAPI_MARC-AVAILCHECK被定义为必需的字段; 它不包含条目

报错2:E MG 172 你还没有完全维护这个税收分类

报错3:E M3 332 代用计量单位与基准计量单位相同

BAPI回传Return

前台MM03查看


业务说明

在实战项目上,存在外部接口业务或批导或功能程序时,需要在开发程序中调用SAP标准业务应用程序接口,就是经常听到的BAPI。SAP给常用的业务都预定义了BAPI,所以有需要的时候,就要找到对应的BAPI。需要对BAPI的结构和字段非常熟悉,否则不能正确的使用BAPI,从而导致各种报错。为了降低测试过程中的报错,需要在写程序前,将需要调用的BAPI使用事务码SE37进行相关测试,以掌握具体的入参和出参等详细数据。

1 BAPI注意事项

注意点1:SE37测试过程中物料号必须外部给号

物料主数据创建和修改BAPI: BAPI_MATERIAL_SAVEDATA在SE37中测试的时候,必须外部给号,及时物料类型对应的编码范围设置了内部给号,如果不知道号码多了哪个的情况下,可以使用BAPI:BAPI_MATERIAL_GETINTNUMBER 获得最后一个物料编号。

注意点2:SE37测试过程中物料描述不在入参中输入,需要在BAPI表中输入

注意点3:SE37测试过程中BAPI_MATERIAL_SAVEDATA可以直接创建物料主数据,不需要另外commit BAPI确定

CommitBAPI: BAPI_TRANSACTION_COMMIT

2 BAPI基础数据

事务码:SE37

BAPI:BAPI_MATERIAL_SAVEDATA

BAPI描述:Create and Change Material Master Data

前台业务事务码:MM01

业务描述:创建物料主数据

参照物料:物料6630000062被创建

3 BAPI数据结构

EXPORTING:程序将值传给函数模块的导入参数(入参)。
IMPORTING:实际参数会分配给函数模块的导出参数(出参)。
TABLE:函数模块中传递和处理多个记录的数据。
EXCEPTIONS:函数中定义的异常自动分配不同数值(异常)。

事务码SE37进入,

1处,输入 BAPI:BAPI_MATERIAL_SAVEDATA

2处,点击 显示 按钮 进入

3处,显示 BAPI 入参数据结构

4处,显示 BAPI出参数据结构

5处,显示BAPI表结构

6处,显示BAPI源代码

4 BAPI函数调用

BAPI:BAPI_MATERIAL_SAVEDATA

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
  EXPORTING
    headdata                    =
*   CLIENTDATA                  =
*   CLIENTDATAX                 =
*   PLANTDATA                   =
*   PLANTDATAX                  =
*   FORECASTPARAMETERS          =
*   FORECASTPARAMETERSX         =
*   PLANNINGDATA                =
*   PLANNINGDATAX               =
*   STORAGELOCATIONDATA         =
*   STORAGELOCATIONDATAX        =
*   VALUATIONDATA               =
*   VALUATIONDATAX              =
*   WAREHOUSENUMBERDATA         =
*   WAREHOUSENUMBERDATAX        =
*   SALESDATA                   =
*   SALESDATAX                  =
*   STORAGETYPEDATA             =
*   STORAGETYPEDATAX            =
*   FLAG_ONLINE                 = ' '
*   FLAG_CAD_CALL               = ' '
*   NO_DEQUEUE                  = ' '
*   NO_ROLLBACK_WORK            = ' '
*   CLIENTDATACWM               =
*   CLIENTDATACWMX              =
*   VALUATIONDATACWM            =
*   VALUATIONDATACWMX           =
* IMPORTING
*   RETURN                      =
* TABLES
*   MATERIALDESCRIPTION         =
*   UNITSOFMEASURE              =
*   UNITSOFMEASUREX             =
*   INTERNATIONALARTNOS         =
*   MATERIALLONGTEXT            =
*   TAXCLASSIFICATIONS          =
*   RETURNMESSAGES              =
*   PRTDATA                     =
*   PRTDATAX                    =
*   EXTENSIONIN                 =
*   EXTENSIONINX                =
*   UNITSOFMEASURECWM           =
*   UNITSOFMEASURECWMX          =
*   SEGMRPGENERALDATA           =
*   SEGMRPGENERALDATAX          =
*   SEGMRPQUANTITYDATA          =
*   SEGMRPQUANTITYDATAX         =
*   SEGVALUATIONTYPE            =
*   SEGVALUATIONTYPEX           =
*   SEGSALESSTATUS              =
*   SEGSALESSTATUSX             =
*   SEGWEIGHTVOLUME             =
*   SEGWEIGHTVOLUMEX            =
*   NFMCHARGEWEIGHTS            =
*   NFMCHARGEWEIGHTSX           =
*   NFMSTRUCTURALWEIGHTS        =
*   NFMSTRUCTURALWEIGHTSX       =
          .

如何调用BAPI?详见:SAP ABAP自学教程-如何在SE38编程界面调用函数模块?Call Function SE38界面点击“模式“按钮进行调用-优快云博客

上面调用的BAPI标准结构中带有很多参数,哪些参数是必要的,如果需要就去掉前面的注释*进行启用。

5 BAPI必要数据

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA

EXPORTING:入参

入参1:headdata = ls_headdata  "BAPI结构-BAPIMATHEAD-带有控制信息的表头段

入参2:clientdata = ls_clientdata  "BAPI结构-BAPI_MARA-客户端层次物料数据

入参2:clientdatax = ls_clientdatax  "BAPI结构-BAPI_MARAX-BAPI_MARA 的复选框结构

入参3:plantdata = ls_plantdata  "BAPI结构-BAPI_MARC-工厂级别的物料数据

入参3:plantdatax = ls_plantdatax  "BAPI结构-BAPI_MARCX-BAPI_MARC 的复选框结构

入参4:forecastparameters = ls_forecastparameters  "BAPI结构-BAPI_MPOP-预测参数

入参4:forecastparametersx = ls_forecastparametersx "BAPI结构-BAPI_MPOPX-BAPI_MPOP 复选框结构

入参5:planningdata = ls_planningdata  "BAPI结构-BAPI_MPGD-更改物料主记录/产品组的凭证结构

入参5:planningdatax = ls_planningdatax "BAPI结构-BAPI_MPGDX-BAPI_MPGD 复选框结构

入参6:storagelocationdata = ls_storagelocationdata  "BAPI结构-BAPI_MARD-存储位置级别的物料数据

入参6:storagelocationdatax = ls_storagelocationdatax "BAPI结构-BAPI_MARDX-BAPI_MARD 的复选框结构

入参7:valuationdata = ls_valuationdata  "BAPI结构-BAPI_MBEW-评估数据

入参7:valuationdatax = ls_valuationdatax "BAPI结构-BAPI_MBEWX-BAPI_MBEW 的复选框结构

入参8:warehousenumberdata = ls_warehousenumberdata  "BAPI结构-BAPI_MLGN-仓库号数据

入参8:warehousenumberdatax = ls_warehousenumberdatax "BAPI结构-BAPI_MLGNX-BAPI_MLGN 的复选框结构

入参9:salesdata = ls_salesdata  "BAPI结构-BAPI_MVKE-销售数据

入参9:salesdatax = ls_salesdatax "BAPI结构-BAPI_MVKEX-BAPI_MVKE 复选框结构

入参10:storagetypedata = ls_storagetypedata  "BAPI结构-BAPI_MLGT-存储类型数据

入参10:storagetypedatax = ls_storagetypedatax "BAPI结构-BAPI_MLGTX-BAPI_MLGT 的复选框结构

注意:红色标记为对应业务的后台表

  EXPORTING
    headdata              = ls_headdata               "BAPI结构-BAPIMATHEAD-带有控制信息的表头段
    clientdata            = ls_clientdata             "BAPI结构-BAPI_MARA-客户端层次物料数据
    clientdatax           = ls_clientdatax            "BAPI结构-BAPI_MARAX-BAPI_MARA 的复选框结构
    plantdata             = ls_plantdata              "BAPI结构-BAPI_MARC-工厂级别的物料数据
    plantdatax            = ls_plantdatax             "BAPI结构-BAPI_MARCX-BAPI_MARC 的复选框结构
    forecastparameters    = ls_forecastparameters     "BAPI结构-BAPI_MPOP-预测参数
    forecastparametersx   = ls_forecastparametersx    "BAPI结构-BAPI_MPOPX-BAPI_MPOP 复选框结构
    planningdata          = ls_planningdata           "BAPI结构-BAPI_MPGD-更改物料主记录/产品组的凭证结构
    planningdatax         = ls_planningdatax          "BAPI结构-BAPI_MPGDX-BAPI_MPGD 复选框结构
    storagelocationdata   = ls_storagelocationdata    "BAPI结构-BAPI_MARD-存储位置级别的物料数据
    storagelocationdatax  = ls_storagelocationdatax   "BAPI结构-BAPI_MARDX-BAPI_MARD 的复选框结构
    valuationdata         = ls_valuationdata          "BAPI结构-BAPI_MBEW-评估数据
    valuationdatax        = ls_valuationdatax         "BAPI结构-BAPI_MBEWX-BAPI_MBEW 的复选框结构
    warehousenumberdata   = ls_warehousenumberdata    "BAPI结构-BAPI_MLGN-仓库号数据
    warehousenumberdatax  = ls_warehousenumberdatax   "BAPI结构-BAPI_MLGNX-BAPI_MLGN 的复选框结构
    salesdata             = ls_salesdata              "BAPI结构-BAPI_MVKE-销售数据
    salesdatax            = ls_salesdatax             "BAPI结构-BAPI_MVKEX-BAPI_MVKE 复选框结构
    storagetypedata       = ls_storagetypedata        "BAPI结构-BAPI_MLGT-存储类型数据
    storagetypedatax      = ls_storagetypedatax       "BAPI结构-BAPI_MLGTX-BAPI_MLGT 的复选框结构
*   flag_online           = ' '
*   flag_cad_call         = ' '
*   no_dequeue            = ' '
*   no_rollback_work      = ' '
*   clientdatacwm         =
*   clientdatacwmx        =
*   valuationdatacwm      =
*   valuationdatacwmx     =

入参1:headdata = ls_headdata(各个模块视图)

BAPI路径:BAPI_MATERIAL_SAVEDATA=>导入=>HEADDATA=>BAPIMATHEAD(Header segment with control information=带有控制信息的表头段)

入参1:BAPI必要组件

TYPES:BEGIN OF ty_data,

*&---------------------------------------------------------------------*
*& 入参1:headdata = ls_headdata(抬头)
*&---------------------------------------------------------------------*

        matnr           TYPE mara-matnr,                               "入参1-物料编号(18 个字符)
        mbrsh           TYPE mara-mbrsh,                               "入参1-行业领域
        mtart           TYPE mara-mtart,                               "入参1-物料类型
        basic_view      TYPE flag,                                     "入参1-基本数据视图
        sales_view      TYPE flag,                                     "入参1-销售视图
        purchase_view   TYPE flag,                                     "入参1-采购视图
        mrp_view        TYPE flag,                                     "入参1-物料需求计划(MRP)视图
        forecast_view   TYPE flag,                                     "入参1-预测视图
        work_sched_view TYPE flag,                                     "入参1-工作计划视图
        prt_view        TYPE flag,                                     "入参1-生产资源/工具(PRT)视图
        storage_view    TYPE flag,                                     "入参1-存储视图
        warehouse_view  TYPE flag,                                     "入参1-仓库管理视图
        quality_view    TYPE flag,                                     "入参1-质量管理视图
        account_view    TYPE flag,                                     "入参1-会计视图
        cost_view       TYPE flag,                                     "入参1-成本视图
        material_long   TYPE flag,                                     "入参1-物料编号(40 个字符)项目上启用了物料40位才用

      END OF ty_data.
*&---------------------------------------------------------------------*
*& Data 参照数据类型ty_data定义内表gt_data和工作区gs_data
*&---------------------------------------------------------------------*

DATA:gt_data TYPE STANDARD TABLE OF ty_data,
     gs_data TYPE ty_data.
*&---------------------------------------------------------------------*
*& 定义BAPI入参1:headdata = ls_headdata(抬头)
*&---------------------------------------------------------------------*

DATA(ls_headdata) = VALUE bapimathead(
                    material              = gs_data-matnr              "物料编号(18 个字符)
                    ind_sector            = gs_data-mbrsh              "行业领域
                    matl_type             = gs_data-mtart              "物料类型
                    basic_view            = gs_data-basic_view         "基本数据视图
                    sales_view            = gs_data-sales_view         "销售视图
                    purchase_view         = gs_data-purchase_view      "采购视图
                    mrp_view              = gs_data-mrp_view           "物料需求计划(MRP)视图
                    forecast_view         = gs_data-forecast_view      "预测视图
                    work_sched_view       = gs_data-work_sched_view    "工作计划视图
                    prt_view              = gs_data-prt_view           "生产资源/工具(PRT)视图
                    storage_view          = gs_data-storage_view       "存储视图
                    warehouse_vie         = gs_data-warehouse_view     "仓库管理视图
                    quality_view          = gs_data-quality_view       "质量管理视图
                    account_view          = gs_data-account_view       "会计视图
                    cost_view             = gs_data-cost_view          "成本视图
                    material_long         = gs_data-material_long      "物料编号(40 个字符)项目上启用了物料40位才用
                    ).

入参2:clientdata = ls_clientdata(基本数据视图-后台表MARA)

BAPI路径:BAPI_MATERIAL_SAVEDATA=>导入=>CLIENTDATA=>BAPI_MARA(Client-specific material data=客户端层次物料数据)

入参2:BAPI必要组件

TYPES:BEGIN OF ty_data,

*&---------------------------------------------------------------------*
*& 入参2:clientdata = ls_clientdata(基本数据视图-后台表MARA)
*&---------------------------------------------------------------------*

        matkl           TYPE mara-matkl,                               "入参2-物料组
        bismt           TYPE mara-bismt,                               "入参2-旧物料编号(18 字符,兼容模式)
        meins           TYPE mara-meins,                               "入参2-基本计量单位
        bstme           TYPE mara-bstme,                               "入参2-采购订单计量单位
        zeinr           TYPE mara-zeinr,                               "入参2-文档号码(无文档管理系统)
        groes           TYPE mara-groes,                               "入参2-设计料号
        normt           TYPE mara-normt,                               "入参2-工业标准描述 (例如 ANSI 或 ISO)
        labor           TYPE mara-labor,                               "入参2-实验室/设计室
        ntgew           TYPE mara-ntgew,                               "入参2-净重
        gewei           TYPE mara-gewei,                               "入参2-重量单位
        raube           TYPE mara-raube,                               "入参2-存储条件
        tempb           TYPE mara-tempb,                               "入参2-温度条件标识
        tragr           TYPE mara-tragr,                               "入参2-运输组
        spart           TYPE mara-spart,                               "入参2-产品组
        mhdrz           TYPE mara-mhdrz,                               "入参2-最短剩余货架寿命
        mhdhb           TYPE mara-mhdhb,                               "入参2-总货架寿命
        mtpos_mara      TYPE mara-mtpos_mara,                          "入参2-常规项目类别组
        xchpf           TYPE mara-xchpf,                               "入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值