SAP ABAP BAPI函数50之14-BAPI_MATERIAL_SAVEREPLICA

这两天太忙了,没来得及更新。春天的季节,气候变化比较频繁。

做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 】 或者在这个链接联系我

微信原文《全文完》

今日热点在看SAP HOT583