关于对物料计量单位的维护
1、业务背景
一般情况下,在设计产品时,明确了物料的计量单位,并在维护物料主数据时,维护完整单位数据。
但也有例外情况,例如当设计产品时,不明确未来的打包方式,不明确要维护哪些种计量单位,只有当生产完成之后,再确定通过包还是箱等方式包装产品,并将新的计量单位同步给外围系统方便运输。因此就需要在生产完成之后,再修改对应的物料主数据的计量单位。
前台操作,事务代码MM02,维护物料的量纲和附加数据里面的计量单位
附加数据
2、代码参考
调用BAPI:BAPI_MATERIAL_SAVEDATA,增删改计量单位
"--------------------@斌将军-------------------- DATA:ls_head TYPE bapimathead, ls_mara TYPE bapi_mara, ls_marax TYPE bapi_marax, lt_marm TYPE TABLE OF bapi_marm, ls_marm TYPE bapi_marm, lt_marmx TYPE TABLE OF bapi_marmx, ls_marmx TYPE bapi_marmx, ls_return TYPE bapiret2. ls_head-material = '000000000002000076'. "SAP物料编码 "修改量纲 ls_mara-net_weight = 1."净重 ls_marax-net_weight = 'X'."净重 CLEAR:ls_marm. ls_marm-alt_unit = 'M'."基本单位 ls_marm-gross_wt = 3."毛重 ls_marm-unit_of_wt = 'KG'."重量单位 ls_marm-volume = 1."业务量 ls_marm-volumeunit = 'M3'."体积单位 APPEND ls_marm TO lt_marm. CLEAR:ls_marmx. ls_marmx-alt_unit = 'M'."基本单位 ls_marmx-gross_wt = 'X'."毛重 ls_marmx-unit_of_wt = 'X'."重量单位 ls_marmx-volume = 'X'."业务量 ls_marmx-volumeunit = 'X'."体积单位 APPEND ls_marmx TO lt_marmx. "删除附加数据计量单位 CLEAR:ls_marm. ls_marm-alt_unit = 'EA'."基本单位 ls_marm-del_flag = 'X'."删除 APPEND ls_marm TO lt_marm. "维护多个单位 CLEAR:ls_marm. ls_marm-alt_unit = 'EA'."基本单位 ls_marm-numerator = 23."分子 ls_marm-denominatr = 10."分母 APPEND ls_marm TO lt_marm. CLEAR:ls_marmx. ls_marmx-alt_unit = 'EA'."基本单位 ls_marmx-numerator = 'X'."分子 ls_marmx-denominatr = 'X'."分母 APPEND ls_marmx TO lt_marmx. CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' EXPORTING headdata = ls_head clientdata = ls_mara clientdatax = ls_marax IMPORTING return = ls_return TABLES unitsofmeasure = lt_marm unitsofmeasurex = lt_marmx. IF ls_return-type = 'E'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. MESSAGE ls_return-message TYPE 'S' DISPLAY LIKE 'E'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. MESSAGE '成功' TYPE 'S'. ENDIF. "--------------------@斌将军--------------------
定期更文,欢迎关注