目录
业务说明
BAPI执行完毕后显示的结果存在2中情况,一种是已经写入后台表。另外一种是只是预创建没有写入后台表。那么BAPI结果没有写入后台表的情况下,如何在SE37测试过程中,执行BAPI后也可以写入后台表?
解决方案
在SE37测试过程中使用上 测试序列 的功能。
序列1:BAPI_PR_CREATE
序列2:BAPI_TRANSACTION_COMMIT
也就是SE37在执行完毕第一个BAPI后,然后再执行第二个BAPI,就会将测试输入写入后台表。
测试过程
第1步,设置BAPI测试序列
事务码:SE37
1处,点击 功能模块
2处,点击 执行
3处,点击 测试序列 弹窗
4处,测试序列1:BAPI_PR_CREATE 显示执行第1个BAPI,再输入测试序列2:BAPI_TRANSACTION_COMMIT 第1个BAPI执行完毕后,再执行第2个BAPI
4处,输入第2个BAPI BAPI_TRANSACTION_COMMIT
5处,点击 执行 按钮
第2步,业务BAPI入参数据
业务BAPI: 创建采购申请
前台事务码:ME51N
前台事务码模拟输入数据:
BAPI入参数据
输入PR BAPIMEREQHEADER 抬头入参
PR_TYPE:订单类型(采购)值:BN06
将MR51N前台模拟数据输入到BAPI入参:
1处,点击 PRHEADER 值按钮 进入
2处,点击 显示行数据
3处,输入 PR抬头入参数据
4处,点击 勾选确认按钮,然后再点击 返回 按钮 返回主界面
然后还需要把BAPI输入标记 PRHEADERX打上:
只有打上数据标记才可以在BAPI执行时正确取值。
输入PR BAPIMEREQITEMIMP 项目入参
PREQ_ITEM:采购申请的项目编号 值:10
PUR_GROUP:采购组 值:BN1
PREQ_NAME:申请人姓名 值:S100-120
SHORT_TEXT:短文本 值:BAPI 测试序列
MATERIAL:物料编号(18 个字符) 值:6630000063
PLANT:工厂 值:1087
STORE_LOC:存储地点 值:3001
TRACKINGNO:需求跟踪编号 值:测试SE37序列功能
MATL_GROUP:物料组 值:BN01
QUANTITY:采购申请数量 值:1
UNIT:采购申请计量单位 值:EA
PREQ_DATE:需求 (请求) 日期 值:20250103
DELIV_DATE:项目交货日期 值:20250103
PREQ_PRICE:BAPIs 的货币金额(带有 9 个小数位) 值:1
PRICE_UNIT:价格单位 值:1
ITEM_CAT:采购凭证中的项目类别 值:空
ACCTASSCAT:科目分配类别 值:空
PURCH_ORG:采购组织 值:BN01
1处,点击 PRITEM 值按钮 进入
2处,输入PR行项目入参数据,然后按 确认和返回按钮,返回主界面
然后输入BAPI PR行项目数据识别入参
第3步,执行第1个测试序列BAPI
1处,点击 执行 按钮
2处,显示 BAPI执行完毕后生成的采购申请 6660000036
前台事务码ME53N查看这个采购申请如下:
显示采购申请步存在,这是因为采购申请BAPI-BAPI_PR_CREATE 不带自动commit功能,如果要想采购申请BAPI自动生成采购申请并写入后台表需要更改另外一个采购申请早期BAPI-BAPI_REQUISITION_CREATE(不建议使用早期版本的采购申请BAPI)
*采购申请:6660000036
3处,因为已经设置了测试序列,所以第1个BAPI执行完毕后,按返回键,就自动切换到 第2个BAPI执行界面,详见第4步操作。
第4步,执行第2个测试序列BAPI
1处,直接点击 执行 按钮
第5步,前台事务码ME53N查看
采购申请:6660000036 前台已经可以正常显示了
第5步,查看采购申请后台表EBAN
事务码SE16N进入
1处,输入 采购申请 点击 执行 按钮 进入
后台表EABN已经写入了采购申请6660000036相关数据。
Done.
Created on 1st January, 2025