天天看點

BOM多層展開,中間半品數量不為1的問題

使用者回報當中間半品數量不為1時,半品下的物料展開時還是按一個半品的數量來展開的。

BOM展開内表有三個字段

MENGE  元件數量

MNGLG  以基本計量機關為準的已計算的元件數量

MNGKO 以元件計量機關為準的已計算的元件數量

是以多層展開時,應該使用MNGLG是沒有問題的。

但是當将PC等機關本來應該是整數的機關當小數來用,就會發現展開的數量就變成了1或其它整數,結果就不對了。

解決辦法:

張開函數中有STUFE 層次,如果層次不為1,可能就要考慮使用下面的辦法來計算。

如果層次STUFE不為1,且固定數量FMENG不為X.

則這個物料的數量=他上層半品的展開數量   *  這個物料的數量 / 上層半品的基本數量

查找上層半品的展開數量的方法。

 READ TABLE l_i_stb2 WITH KEY xtlty = i_stb2-stlty xtlnr = i_stb2-stlnr.

        IF sy-subrc EQ 0.

          i_subit-menge = i_stb2-menge *  l_i_stb2-menge /  l_i_stb2-xmeng.

        ELSE.

          MESSAGE '查找上層半品用量沒有找到' TYPE 'I'.

        ENDIF.

在展開的内表中查找 XTLTY (上層半品的BOM類型) = STLTY  且 XTLNR(上層半品的BOM清單号) = STLNR (該物料的所在BOM的清單号)

如果多層都需要考慮的話,

就先從第2層開始,将所有第二層的用量計算清楚。

再從第3層,将所有第三層的用量計算清楚。

以此類推,直到最後一層。

繼續閱讀