SAP BAPI-MM模块-采购信息记录创建和修改-ME_INFORECORD_MAINTAIN_MULTI-SE37函数测试(事务码ME11 ME12&后台表EINA EINE)超级干货系列

目录

业务说明

1 BAPI注意事项

2 BAPI基础数据

3 BAPI数据结构

BAPI结构1:T_EINA (General Data)

BAPI结构1:T_EINAX (General Data标记)

BAPI结构2:T_EINE (Purchasing Org. Data)

BAPI结构2:T_EINEX (Purchasing Org. Data标记)

BAPI结构3:TXT_LINES (Info Memo and Purchase order text)

BAPI结构4:COND_VALIDITY (Condition validities)

BAPI结构5:CONDITION (Condition details)

BAPI结构6:COND_SCALE_VALUE (Value based Condition Scales=价值阶梯价)

BAPI结构7:COND_SCALE_QUAN (Quantity based Condition scales=数量阶梯价)

BAPI结构8:RETURN (Messages)

4 BAPI函数调用

5 BAPI必要数据

事务码:ME11进入界面

EINA采购信息记录-一般数据

EINE采购信息记录-采购组织数据

A017采购信息记录-价格条件有效期

KONP采购信息记录-价格条件类型

6 BAPI执行测试

7 BAPI测试序列


业务说明

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

1 BAPI注意事项

采购信息记录创建BAPI有老版本和最新的版本,我们使用最近发布的BAPI版本最佳。

采购信息记录创建和修改: ME_INFORECORD_MAINTAIN_MULTI (RFC Function Module to Create and Change multiple Info Records)

一般新版本的BAPI都带有Testrun结构

主要作用就是给BAPI参数标记上Testrun后,系统就会知识模拟数据创建,不进行后续真实操作。

所以这个BAPI的入参数据都会从表结构中输入,BAPI需要进行数据标识的标记。

2 BAPI基础数据

BAPI功能:采购信息记录创建和修改

BAPI:ME_INFORECORD_MAINTAIN_MULTI

对应前台事务码:ME11-采购信息记录创建 和 ME12-采购信息记录修改

采购信息记录后台表:

EINA: 采购信息记录 - 一般数据

EINE: 采购信息记录 - 采购组织数据

3 BAPI数据结构

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

BAPI结构1:T_EINA (General Data)

关联类型-表类型:MEWIEINA_MIG_T

BAPI路径:ME_INFORECORD_MAINTAIN_MULTI->表->T_EINA->MEWIEINA_MIG(行类型)

BAPI结构1:T_EINAX (General Data标记)

关联类型-表类型:MEWIEINAX_T

BAPI路径:ME_INFORECORD_MAINTAIN_MULTI->表->T_EINA->MEWIEINAX_TY(行类型)

BAPI结构2:T_EINE (Purchasing Org. Data)

关联类型-表类型:MEWIEINE_T

BAPI路径:ME_INFORECORD_MAINTAIN_MULTI->表->MEWIEINE_TY(行类型)

BAPI结构2:T_EINEX (Purchasing Org. Data标记)

关联类型-表类型:MEWIEINEX_T

BAPI路径:ME_INFORECORD_MAINTAIN_MULTI->表->MEWIEINEX_TY(行类型)

BAPI结构3:TXT_LINES (Info Memo and Purchase order text)

关联类型-表类型:MEWIPIRTEXT_TT

BAPI路径:ME_INFORECORD_MAINTAIN_MULTI->表->MEWIPIRTEXT_TY(行类型)

BAPI结构4:COND_VALIDITY (Condition validities)

关联类型-表类型:MEWIVALIDITY_TT

BAPI路径:ME_INFORECORD_MAINTAIN_MULTI->表->MEWIVALIDITY_TY(行类型)

BAPI结构5:CONDITION (Condition details)

关联类型-表类型:MEWICONDITION_TT

BAPI路径:ME_INFORECORD_MAINTAIN_MULTI->表->MEWICONDITION_TY(行类型)

BAPI结构6:COND_SCALE_VALUE (Value based Condition Scales=价值阶梯价)

关联类型-表类型:MEWISCALEVAL_TT

BAPI路径:ME_INFORECORD_MAINTAIN_MULTI->表->MEWISCALEVAL_TY(行类型)

BAPI结构7:COND_SCALE_QUAN (Quantity based Condition scales=数量阶梯价)

关联类型-表类型:MEWISCALEQUAN_TT

BAPI路径:ME_INFORECORD_MAINTAIN_MULTI->表->MEWISCALEQUAN_TY(行类型)

BAPI结构8:RETURN (Messages)

关联类型-表类型:FS4MIG_T_BAPIRET2

BAPI路径:ME_INFORECORD_MAINTAIN_MULTI->表->FS4MIG_S_BAPIRET2(行类型)

4 BAPI函数调用

采购信息记录创建BAPI: ME_INFORECORD_MAINTAIN_MULTI

CALL FUNCTION 'ME_INFORECORD_MAINTAIN_MULTI'
 EXPORTING
   TESTRUN                =
 IMPORTING
   ET_EINA                =
   ET_EINE                =
 TABLES
   T_EINA                 =
   T_EINAX                =
   T_EINE                 =
   T_EINEX                =
   TXT_LINES              =
   COND_VALIDITY          =
   CONDITION              =
   COND_SCALE_VALUE       =
   COND_SCALE_QUAN        =
   RETURN                 =
          .

CALL FUNCTION 'ME_INFORECORD_MAINTAIN_MULTI'
*  EXPORTING
*   TESTRUN       =
  IMPORTING
    et_eina       = lt_et_eina
    et_eine       = lt_et_eine
  TABLES
    t_eina        = lt_eina
    t_einax       = lt_einax
    t_eine        = lt_eine
    t_einex       = lt_einex
*   TXT_LINES     =
    cond_validity = lt_cond_validity
    condition     = lt_condition
*   COND_SCALE_VALUE       =
*   COND_SCALE_QUAN        =
    return        = lt_return.

5 BAPI必要数据

如何快速在BAPI中找到对应的BAPI组件并输入正确的值,就需要弄清楚每个组件的位置路径和名称 对应的前台字段或后台表字段 对应关系。

事务码:ME11进入界面

1处,供应商:661000021

BAPI数据路径: T_EINA->VENDOR

后台表字段和BAPI组件对应关系: EINA-LIRNR <=> BAPI组件-VENDOR

2处,物料号:6630000070

BAPI数据路径: T_EINA->MATERIAL

后台表字段和BAPI组件对应关系: EINA-MATNR <=> BAPI组件-MATERIAL

3处,采购组织:BN01

BAPI数据路径: T_EINE->PURCH_ORG

后台表字段和BAPI组件对应关系: EINE-EKORG <=> BAPI组件-PURCH_ORG

4处,工厂:1087

BAPI数据路径: T_EINE->PLANT

后台表字段和BAPI组件对应关系: EINE-WERKS <=> BAPI组件-PLANT

5处,采购信息记录类别:标准

BAPI数据路径: T_EINE->INFO_TYPE

后台表字段和BAPI组件对应关系: EINE-ESOKZ <=> BAPI组件-INFO_TYPE

EINA采购信息记录-一般数据

6处,采购信息记录类别:标准

BAPI数据路径: T_EINA->SALES_PERS

后台表字段和BAPI组件对应关系: EINA-VERKF <=> BAPI组件-SALES_PERS

7处,采购信息记录类别:标准

BAPI数据路径: T_EINA->TELEPHONE

后台表字段和BAPI组件对应关系: EINA-TELF1 <=> BAPI组件-TELEPHONE

EINE采购信息记录-采购组织数据

1处,计划交货时间:1 天

BAPI数据路径: T_EINE->PLND_DELRY

后台表字段和BAPI组件对应关系: EINE-APLFZ <=> BAPI组件-PLND_DELRY

2处,采购组:BN1

BAPI数据路径: T_EINE->PUR_GROUP

后台表字段和BAPI组件对应关系: EINE-EKGRP <=> BAPI组件-PUR_GROUP

3处,标准数量:1 

BAPI数据路径: T_EINE->NRM_PO_QTY

后台表字段和BAPI组件对应关系: EINE-NORBM <=> BAPI组件-NRM_PO_QTY

4处,最小订单数量:1

BAPI数据路径: T_EINE->MIN_PO_QTY

后台表字段和BAPI组件对应关系: EINE-MINBM <=> BAPI组件-MIN_PO_QTY

5处,基于发票的收货验证:X

BAPI数据路径: T_EINE->GR_BASEDIV

后台表字段和BAPI组件对应关系: EINE-WEBRE <=> BAPI组件-GR_BASEDIV

6处,确认控制:0004

BAPI数据路径: T_EINE->CONF_CTRL

后台表字段和BAPI组件对应关系: EINE-BSTAE <=> BAPI组件-CONF_CTRL

7处,税码:J2(百分之13进项税)

BAPI数据路径: T_EINE->TAX_CODE

后台表字段和BAPI组件对应关系: EINE-TELF1 <=> BAPI组件-TAX_CODE

8处,采购信息记录价格:113

BAPI数据路径: T_EINE->NET_PRICE

后台表字段和BAPI组件对应关系: EINE-NETPR <=> BAPI组件-NET_PRICE

9处,货币单位:CNY

BAPI数据路径: T_EINE->CURRENCY

后台表字段和BAPI组件对应关系: EINE-WAERS <=> BAPI组件-CURRENCY

10处,价格单位:1

BAPI数据路径: T_EINE->PRICE_UNIT

后台表字段和BAPI组件对应关系: EINE-PEINH <=> BAPI组件-PRICE_UNIT

11处,订单价格单位:EA

BAPI数据路径: T_EINE->ORDERPR_UN

后台表字段和BAPI组件对应关系: EINE-BPRME <=> BAPI组件-ORDERPR_UN

A017采购信息记录-价格条件有效期

1处,采购信息记录价格条件有效期-起始日期:20250108

BAPI数据路径: COND_VALIDITY->VALID_FROM

后台表字段和BAPI组件对应关系: A017-DATAB <=> BAPI组件-VALID_FROM

2处,采购信息记录价格条件有效期-终止日期:20251231

BAPI数据路径: COND_VALIDITY->VALID_TO

后台表字段和BAPI组件对应关系: EINE-DATBI <=> BAPI组件-VALID_TO

KONP采购信息记录-价格条件类型

1处,采购信息记录价格条件类型更新模式:I 表示插入方式创建

BAPI数据路径: CONDITION->CHANGE_ID

后台表字段和BAPI组件对应关系: ??? <=> BAPI组件-CHANGE_ID

X处,采购信息记录价格条件类型顺序编号:01

BAPI数据路径: CONDITION->EINE_INDX

后台表字段和BAPI组件对应关系: ??? <=> BAPI组件-EINE_INDX

X处,采购信息记录价格条件类型条件的序列号:01

BAPI数据路径: CONDITION->COND_COUNT

后台表字段和BAPI组件对应关系: ??? <=> BAPI组件-COND_COUNT

2处,采购信息记录价格条件类型:BPB0

BAPI数据路径: CONDITION->COND_TYPE

后台表字段和BAPI组件对应关系: ??? <=> BAPI组件-COND_TYPE

3处,采购信息记录价格条件金额:113

BAPI数据路径: CONDITION->COND_VALUE

后台表字段和BAPI组件对应关系: ??? <=> BAPI组件-COND_VALUE

4处,采购信息记录货币:CNY

BAPI数据路径: CONDITION->CURRENCY

后台表字段和BAPI组件对应关系: ??? <=> BAPI组件-CURRENCY

5处,采购信息记录条件定价单位:1

BAPI数据路径: CONDITION->COND_P_UNT

后台表字段和BAPI组件对应关系: ??? <=> BAPI组件-COND_P_UNT

6处,采购信息记录条件单位:EA

BAPI数据路径: CONDITION->COND_UNIT

后台表字段和BAPI组件对应关系: ??? <=> BAPI组件-COND_UNIT

6 BAPI执行测试

1处,输入BAPI入参

2处,点击 执行 按钮 (这个BAPI执行完毕只会模拟创建采购信息记录不存表)

3处,点击 BAPI 回传信息

4处,显示 采购信息记录5300000963  建立,实际没有存后台表

SE16N查询后台表EINE如下:

要想在BAPI测试过程中直接创建采购信息记录并存表,就需要使用BAPI测试序列功能,详见:SAP BAPI-SE37测试-执行-测试序列(BAPI执行完毕后数据并没有写入后台表,如何用COMMIT BAPI写入后台表?)-CSDN博客

7 BAPI测试序列

前提条件:提前把BAPI入参数据存入测试数据中,方便使用。

设置测试序列BAPI执行顺序:

ME_INFORECORD_MAINTAIN_MULTI

BAPI_TRANSACTION_COMMIT

注意:需要点开返回信息,记录“显示 采购信息记录 5300000964 建立”,方便后续查询。

1处,第1个BAPI执行完毕后,点击 返回 按钮,直接跳转到第2个BAPI执行界面

2处,点击 执行 即可

再次SE16N查看后台表EINE如下:

BAPI创建采购信息记录已经存后台表。

Done.

Created on 8th January, 2024

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值