读取bom封装函数

如果程序中多次要求调用BOM函数时,可用此方式解决之:

*定义:

data: begin of i_bom occurs 0.    "存储bom的内表

        include structure stpox.

data:  end of i_bom.


*调用方法:

PERFORM READBOM using hd_itab-Matnr hd_itab-Werks '01' _TmpPlanQty.


*函数定义:

FORM READBOM USING T_Matnr T_Werks T_STLAL T_EMENG.  "物料编码、工厂、BOM版本、需求数量

    data: _TmpQty like STKO-BMENG.

   CLEAR i_bom.
   CLEAR i_bom[].
   _tmpQty = T_EMENG.
    CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
      EXPORTING
        capid                 = 'PP01'
        ALEKZ                 = 'X'
        EMENG                 = _TmpQty    "指定需求数
        datuv                 = sy-datum
        mtnrv                 = T_Matnr           "itab-matnr        "产品物料信息
        mehrs                 = 'X'            "完全展开
        stlan                 = '1'
*        stlal                 = ' '             "可选BOM信息,如果可选BOM为空,那么系统指定为最小值
        stlal                 = T_STLAL        "itab-STLAL  可选的BOM
        werks                 = T_Werks        " '1000'         "工厂信息
      TABLES
        stb                   = i_bom          "最终输出的物料信息
*        matcat                = i_mat          "物料索引信息
      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 _tmpQty <= 0.
     loop at i_bom.
        i_bom-MNGKO = 0.
        modify i_bom.
     endloop.
   endif.
ENDFORM.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值