这两天太忙了,没来得及更新。春天的季节,气候变化比较频繁。
做SAP人真不容易,一不小心带了星星,离开家乡核酸,来到项目地酒店也是核酸。
每个城市都有每个城市不一样的防疫政策。上海,加油奥里给~
今天我们来学习批量创建物料主数据的BAPI,
BAPI_MATERIAL_SAVEREPLICA,属于MM模块,对应的事务代码是MM01/MM02,如果是AFS/RETAIL的系统,
则是MM41/MM42,对应的BAPI前面加上/AFS*,赋值逻辑大同小异~
导入:
参数名称 | 关联类型 | 可选的 | 说明 |
NOAPPLLOG | BAPIE1GLOBAL_DATA-NO_APPL_LOG | 必选 | 不写入应用程序日志 |
NOCHANGEDOC | BAPIE1GLOBAL_DATA-NO_CHANGE_DOC | 必选 | 不写入更改凭证 |
TESTRUN | BAPIE1GLOBAL_DATA-TESTRUN | 必选 | 切换到用于写入BAPI的模拟会话 |
INPFLDCHECK | BAPIE1GLOBAL_DATA-INP_FLD_CHECK | 必选 | 字段未激活的响应 |
表参数:
参数名称 | 关联类型 | 可选的 | 说明 |
HEADDATA | BAPIE1MATHEADER | 必选 | 抬头 |
CLIENTDATA | BAPIE1MARA | 可选 | 客户层面的材料数据 |
CLIENTDATAX | BAPIE1MARAX | 必选 | 客户层面的材料数据 |
PLANTDATA | BAPIE1MARC | 可选 | 更改物料主数据/产品组的文档结构 |
PLANTDATAX | BAPIE1MARCX | 可选 | 更改物料主数据/产品组的文档结构 |
MATERIALDESCRIPTION | BAPIE1MAKT | 可选 | 物料描述 |
MATERIALLONGTEXT | BAPIE1MLTX | 可选 | 长文本 |
EXTENSIONIN | BAPIE1PAREX | 可选 | 增强,扩展字段 |
EXTENSIONINX | BAPIE1PAREXX | 可选 | 增强,扩展字段 |
RETURNMESSAGES | BAPIE1RET2 | 可选 | 返回信息 |
VALUATIONDATA | BAPIE1MBEW | 可选 | 估价数据 |
VALUATIONDATAX | BAPIE1MBEWX | 可选 | 估价数据 |
EXTENSIONIN:
- 扩展字段对应的用于增强的两种结构:BAPI_TE_E1MARA,BAPI_TE_E1MARA2,
BAPI_TE_E1MARA 的字段MATERIAL长度只有18位,适合SAP ECC;
BAPI_TE_E1MARA2 的字段MATERIAL长度40位,适合SAP S4 。 - 在传值给valuepart1时需要注意计算:
valuepart1的长度 = MATERIAL的长度 + 其它字段的长度 = 240个字符长度。
valuepart1的值 = MATERIAL的值 + 其它字段的值。
以上是相关参数和注意事项的介绍。
作者HOT583.com曾经也是SAP ABAP beginners ,开始学习DELPI,后面师从SAP,到处去找Tutorial for Constant。
需要自学很久,没人给咱免费培训。
写个测试代码DEMO举例子。下面是代码。希望您喜欢~
DATA:begin of ls_exmara,
matnr type mara-matnr,
include STRUCTURE zabapi_te_e1mara2,
end of ls_exmara.
DATA:begin of ls_exmarax.
data matnr type mara-matnr.
include STRUCTURE zabapi_te_e1mara2x.
data end of ls_exmarax.
DATA: l_valuepart(960),
l_valuepartx(960).
data:lt_extensionin like STANDARD TABLE OF bapie1parex WITH HEADER LINE,
lt_extensioninx like STANDARD TABLE OF bapie1parexx WITH HEADER LINE.
MOVE-CORRESPONDING zsmara TO ls_exmara.
l_valuepart = ls_exmara.
lt_extensionin-material_long = zsmara-matnr.
lt_extensionin-structure = ‘BAPI_TE_E1MARA2’.
lt_extensionin-valuepart1 = l_valuepart(240).
lt_extensionin-valuepart2 = l_valuepart+240(480).
APPEND lt_extensionin.
*扩展字段
ls_exmarax-matnr = zsmara-matnr.
ls_exmarax-BRGEW = ‘X’.
ls_exmarax-VOLEH = ‘X’.
ls_exmarax-VOLUM = ‘X’.
ls_exmarax-ZZCPLB = ‘X’.
ls_exmarax-ZZCC = ‘X’.
ls_exmarax-ZZSW = ‘X’.
ls_exmarax-ZZGL = ‘X’.
ls_exmarax-ZZZDKH = ‘X’.
ls_exmarax-ZZCX = ‘X’.
ls_exmarax-ZZJX = ‘X’.
ls_exmarax-ZZHGBM = ‘X’.
ls_exmarax-ZZSQR = ‘X’.
ls_exmarax-ZZSQDAT = ‘X’.
ls_exmarax-ZZGLGX = ‘X’.
ls_exmarax-ZZWLCR = ‘X’.
ls_exmarax-ZZBQTY = ‘X’.
ls_exmarax-ZZBZGG = ‘X’.
ls_exmarax-ZZPRD = ‘X’.
ls_exmarax-ZZAUFNR = ‘X’.
ls_exmarax-ZZOBNAME = ‘X’.
l_valuepartx = ls_exmarax.
lt_extensioninx-material_long = zsmara-matnr.
lt_extensioninx-structure = ‘BAPI_TE_E1MARA2X’.
lt_extensioninx-valuepart1 = l_valuepartx(240).
lt_extensioninx-valuepart2 = l_valuepartx+240(480).
APPEND lt_extensioninx.
CALL FUNCTION ‘BAPI_MATERIAL_SAVEREPLICA’
EXPORTING
noappllog = ”
nochangedoc = ”
testrun = ”
inpfldcheck = ”
IMPORTING
return = ls_return
TABLES
headdata = it_headdata
clientdata = lt_clientdata
clientdatax = lt_clientdatax
plantdata = lt_plantdata
plantdatax = lt_plantdatax
materialdescription = lt_bapimakt
extensionin = lt_extensionin “扩展字段
extensioninx = lt_extensioninx
materiallongtext = lt_mltx
returnmessages = lt_return.
执行完毕后,可以去表MARA,MARC,MARD等相关的表去查找对应的创建记录。
如果您不记得表名字,有个小的技巧就是输入事务代码SE16N之后,表那里输入MAR+,然后点F4按钮。
基本就全出来了带描述的表名。可以自己挑选了~
本文链接 :http://www.hot583.com/2022/04/13/bapi_material_savereplica/
本文为作者原创,如果这篇文章对您有用,欢迎转载,
转载请务必注明来源《今日热点在看》http://www.hot583.com/
我的微信公众号【 hot583 】 或者在这个链接联系我
微信原文《全文完》