【无标题】BOM报表开发分析

困扰许久的一个问题,终于得到了解决。一直以来,基本上每个项目都有下载BOM清单的需求。一般用的也是标准的FM,一来是省事,不用去把各个后台表做关联,二来是BOM中的Valid To字段,在STPO表中是空白的,需要去其它表取数,比较麻烦。但因此带来的问题的,性能会比较慢,使用标准的FM需要展开的内容比较多,展开一个BOM可能就要花0.5秒了。遇到的客户大部分物料都比较多,比如最近一个客户,有几千万的产品,其中十几万个产品是有BOM的,下载一次完整的BOM清单就要一个小时左右了。
测试下来一个BOM至少要0.4秒到0.5秒:

在这里插入图片描述 最近和一个开发在沟通时,让我们使用直接从后台表取数,这样可以大大提升性能。经过双比,50万个产品BOM清单,只需要7分钟,就能下载下来。这还不是用CDS View的情况,仅仅是用常规的读表取数的方式。 对于BOM清单中的Valid To,有两种解决方案: 1)使用STAS表,找出相应的Valid To,进行判断

```c
      * to get active component from STAS that has component status and from & to dates.
  SELECT
  A~STLTY A~STLNR A~STLKN A~STPOZ A~SCHGT A~IDNRK A~MEINS
  A~MENGE A~POSNR A~POSTP A~POTX1 A~POTX2 A~UPSKZ
  A~EWAHR A~ALPST A~ALPRF STAS~STLAL
  INTO CORRESPONDING FIELDS OF TABLE BOM_ITEM
  FROM STPO AS A JOIN STAS ON  ( A~STLTY EQ STAS~STLTY AND
                                 A~STLNR EQ STAS~STLNR AND
                                 A~STLKN EQ STAS~STLKN )
          FOR ALL ENTRIES IN BOM_HEADER
          WHERE A~STLTY = BOM_HEADER-STLTY AND
                A~STLNR = BOM_HEADER-STLNR AND
                A~LKENZ NE 'X'             AND
                STAS~STLAL = BOM_HEADER-STLAL .

  IF SY-SUBRC EQ 0.
    SELECT STLTY STLNR STLKN STLAL
           INTO CORRESPONDING FIELDS OF TABLE I_STAS
              FROM STAS
              FOR ALL ENTRIES IN BOM_ITEM
              WHERE STLTY EQ BOM_ITEM-STLTY AND
                    STLNR EQ BOM_ITEM-STLNR AND
                    STLKN EQ BOM_ITEM-STLKN AND
                    LKENZ EQ 'X'            AND
                    DATUV LE VALIDFRO       AND
                    AENNR NE SPACE.

    LOOP AT I_STAS.
      READ TABLE BOM_ITEM WITH KEY STLTY = I_STAS-STLTY
                                  STLNR = I_STAS-STLNR
                                  STLKN = I_STAS-STLKN
                                  STLAL = I_STAS-STLAL.
      IF SY-SUBRC EQ 0.
        DELETE BOM_ITEM INDEX SY-TABIX.
      ENDIF.
    ENDLOOP.

ENDIF.


  方案2)在S/4 HANA中有一个配置,可以激发Valid To字段的计算
  ![在这里插入图片描述](https://img-blog.csdnimg.cn/015aca76c0e34196affd15b8de11ddd7.png)
Run cs_bom_valid_to_calc to calculate “valid to” in STPO for existing BOMs
![在这里插入图片描述](https://img-blog.csdnimg.cn/5675e831510f407e85b0d2edeb45d9b4.png)
最终效果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/1941ae6b950c42e49d623f2406cb77e6.png)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值