使用FM'MATERIAL_SAVE_CONFIGURATION'配置变体记录

2020-08-23 20:49发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我在使用FM'M...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我在使用FM'MATERIAL_SAVE_CONFIGURATION'配置变体记录时遇到问题

我已经编写了一个程序来配置变体记录,如下所示,但它不起作用

lt_e1cuval-charc = gw_details-atnam01。

lt_e1cuval-value = gw_details-atwrt01。

APPEND lt_e1cuval。

lt_e1cuval-charc = gw_details-atnam02。

lt_e1cuval-value = gw_details-atwrt02。

APPEND lt_e1cuval。

lt_e1cuval-charc = gw_details-atnam03。

lt_e1cuval-value = gw_details-atwrt03。

APPEND lt_e1cuval。

lt_e1cuval-charc = gw_details-atnam04。

lt_e1cuval-value = gw_details-atwrt04。

APPEND lt_e1cuval。

lt_e1cuval-charc = gw_details-atnam05。

lt_e1cuval-value = gw_details-atwrt05。

APPEND lt_e1cuval。


* 2.在客户端使用FM MATERIAL_SAVE_CONFIGURATION保存配置

*和工厂级别。

* ----------客户端特定的配置-------------------------------- ------

通话功能'MATERIAL_SAVE_CONFIGURATION'

导出

材质= gw_details-matnr

" conf_matl = lv_matnr

表格

e1cucfg = lt_e1cucfg

e1cuins = lt_e1cuins

e1cuval = lt_e1cuval

e1cucom = lt_e1cucom

returnmessages = gt_returnmessages。


调用功能'BAPI_TRANSACTION_COMMIT'。


* -----------特定于工厂的配置------------------------------- ----------

* ---保存每个工厂的配置-----------------------------------

通话功能'MATERIAL_SAVE_CONFIGURATION'

导出

材质= gw_details-matnr

plant = gw_details-werks" iv_plant

conf_matl_plant = gw_details-stdpd

表格

e1cucfg_w = lt_e1cucfg

e1cuins_w = lt_e1cuins

e1cuval_w = lt_e1cuval

e1cucom_w = lt_e1cucom

returnmessages = gt_returnmessages。

调用功能'BAPI_TRANSACTION_COMMIT'。



下面显示了错误消息的屏幕截图,

结果:

请协助,


此致,

Liyana

使用bapi在Material Master(MM02)中配置材料 error1.PNG (17.8 kB)
2条回答
天桥码农
2020-08-23 21:07 .采纳回答

您好Liyana,

请查看有关MATERIAL_SAVE_CONFIGURATION功能模块的OSS注释736873。

这里是一个基于您的代码并使用我的沙盒系统特性和硬编码值(可根据您的情况进行调整的可配置材料,工厂,特征,特性值等)的FM使用示例。 试试看。

起点是一个新创建的材料,尚未引用任何工厂特定的配置(MRP3字段为空)。

报告zflatest。

数据:带有标题行的e1cucfg的lt_e1cucfg类型标准表,

lt_e1cuins标头行的e1cuins类型标准表,

带有标题行的e1cuval的lt_e1cuval类型标准表,

e1cucom的lt_e1cucom类型标准表,

gt_returnmessage类型标准表bapi_matreturn2。

数据:gv_matnr TYPE matnr。

lt_e1cucfg-POSEX ='4000'。

lt_e1cucfg-CONFIG_ID ='000001'。

lt_e1cucfg-ROOT_ID ='00000001'。

lt_e1cucfg-COMPLETE ='T'。

lt_e1cucfg-CONSISTENT ='T'。

APPEND lt_e1cucfg。

lt_e1cuins-INST_ID ='00000001'。

lt_e1cuins-OBJ_TYPE ='MARA'。

lt_e1cuins-CLASS_TYPE ='300'。

lt_e1cuins-OBJ_KEY ='C_GLTP'。

lt_e1cuins-QUANTITY ='1000'。

lt_e1cuins-QUANTITY_UNIT ='KG'。

lt_e1cuins-COMPLETE ='T'。

lt_e1cuins-CONSISTENT ='T'。

lt_e1cuins-OBJECT_GUID ='C_GLTP'。

APPEND lt_e1cuins。

gv_matnr ='000000000004002322'。

* -----特征值管理

lt_e1cuval-inst_id ='00000001'。

lt_e1cuval-valcode ='1'。

lt_e1cuval-charc ='SHOT_PEENING_Y_N'。

lt_e1cuval-value ='N'。

APPEND lt_e1cuval。

lt_e1cuval-charc ='BENDING_Y_N'。

lt_e1cuval-value ='N'。

APPEND lt_e1cuval。

lt_e1cuval-charc ='LENGTH_MIN_DISCRIMINATING_MM'。

lt_e1cuval-value ='5000'。

APPEND lt_e1cuval。

lt_e1cuval-charc ='LENGTH_MAX_DISCRIMINATING_MM'。

lt_e1cuval-value ='7000'。

APPEND lt_e1cuval。

* -----------特定于工厂的配置-------------------------------- -------------

* ---保存每个工厂的配置----------------- -

CALL FUNCTION'MATERIAL_SAVE_CONFIGURATION'

导出

材质= gv_matnr

plant ='4000'" iv_plant

conf_matl_plant ='C_GLTP'

表格

e1cucfg_w = lt_e1cucfg

e1cuins_w = lt_e1cuins

e1cuval_w = lt_e1cuval

e1cucom_w = lt_e1cucom

returnmessages = gt_returnmessages。

CALL FUNCTION'BAPI_TRANSACTION_COMMIT'

导出

WAIT ='X'。

运行代码后,此处是来自功能模块的消息:

这里是具有更新值的配置:

如果材料已经配置并且需要更改配置,则代码应首先使用CUXM_GET_CONFIGURATION功能模块读取配置结构(请参见上面的OSS注释)。

我希望这会有所帮助。

谢谢,再见

Flavio

一周热门 更多>