【转载】ABAP物料仓位扩充

这是一个SAP ABAP函数,用于扩展物料在特定工厂库位的库存数据。当指定的物料、工厂和库位不存在时,该函数会创建相关数据。通过调用'BAPI_MATERIAL_SAVEDATA'来保存头数据和存储位置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


FUNCTION ZMM_EXTEND_MATERIAL_LGORT.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_MATNR) TYPE  MARD-MATNR
*"     VALUE(I_WERKS) TYPE  MARD-WERKS
*"     VALUE(I_LGORT) TYPE  MARD-LGORT
*"----------------------------------------------------------------------
 
  DATA:I_HEADDATA             LIKE  BAPIMATHEAD,
       I_STORAGELOCATIONDATA  LIKE BAPI_MARD,
       I_STORAGELOCATIONDATAX LIKE  BAPI_MARDX,
       I_RETURN               LIKE BAPIRET2.
  DATA: LW_MARD TYPE MARD.
  SELECT SINGLE * FROM MARD INTO LW_MARD
    WHERE MATNR = I_MATNR
    AND WERKS = I_WERKS
    AND LGORT = I_LGORT.
  IF SY-SUBRC <> 0."不存在 扩库位
    CLEAR I_HEADDATA.
    I_HEADDATA-MATERIAL = I_MATNR.
    I_HEADDATA-STORAGE_VIEW = 'X'.
    CLEAR I_STORAGELOCATIONDATA.
    CLEAR I_STORAGELOCATIONDATAX.
    I_STORAGELOCATIONDATA-PLANT    = I_WERKS.
    I_STORAGELOCATIONDATA-STGE_LOC = I_LGORT.
    I_STORAGELOCATIONDATAX-PLANT = I_WERKS.
    I_STORAGELOCATIONDATAX-STGE_LOC = I_LGORT.
    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        HEADDATA             = I_HEADDATA
        STORAGELOCATIONDATA  = I_STORAGELOCATIONDATA
        STORAGELOCATIONDATAX = I_STORAGELOCATIONDATAX
      IMPORTING
        RETURN               = I_RETURN.
  ENDIF.
ENDFUNCTION.

————————————————
版权声明:本文为优快云博主「SAP剑客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/zhongguomao/article/details/79591023

### 关于ABAP中进行物料批量BOM展开 在处理SAP中的物料清单(Bill of Material, BOM),特别是当涉及到批量操作时,可以利用特定的功能模块来实现这一目标。对于批量BOM的展开,`CS_BOM_EXPL_MAT_V2` 是一个常用的功能模块[^3]。 下面是一个基于此功能模块的简单例子,用于展示如何通过ABAP编程语言执行多个物料的BOM展开: ```abap DATA: lt_stpox TYPE STANDARD TABLE OF stpo, lt_matcat TYPE STANDARD TABLE OF mara. LOOP AT it_materials INTO wa_material. "假设it_materials包含了要处理的所有物料编号列表 CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING capid = 'PP01' " 生产BOM datuv = sy-datum " 当前日期 emeng = 1 " 使用量 * mdmps = 'X' " 如果有虚拟件则取消注释并设置为X以展开它们 mehrs = 'X' " 多层次结构 mmory = '0' " 记忆体选项,默认即可 mtnrv = wa_material-matnr " 物料号 stlal = wa_material-stlal " BOM视图版本 stlan = wa_material-stlan " 工程变更级别 werks = wa_material-werks " 工厂编码 TABLES stb = lt_stpox " 结果集-BOM条目 matcat = lt_matcat " 材料分类信息 EXCEPTIONS alt_not_found = 1 call_invalid = 2 material_not_found = 3 missing_authorization = 4 no_bom_found = 5 no_plant_data = 6 no_suitable_bom_found = 7 conversion_error = 8 OTHERS = 9. IF sy-subrc <> 0. " 错误处理逻辑... ELSE. " 成功后的后续处理逻辑... ENDIF. ENDLOOP. ``` 上述代码片段展示了如何遍历一组物料(`it_materials`)并对每一个调用 `CS_BOM_EXPL_MAT_V2` 功能模块来进行其对应的BOM展开工作。这里需要注意的是,在实际应用环境中可能还需要考虑更多的参数配置以及异常情况下的错误处理机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值