如何使用CS_BOM_EXPL_MAT_V2获取BOM爆炸的正确数量的组件?

时间:2012-06-07 09:41:02

标签: sap abap

我的程序出现问题。我正在使用功能模块CS_BOM_EXPL_MAT_V2来获取材料的BOM。例如,我有一个具有ff的材料MAT1。 BOM爆炸。

MAT1
- COMP1 with Qty 2
- COMP2 with Qty 1
- COMP3 with Qty 1

然后,对于组件COMP1,它还有子组件:

COMP1
- SUBCOMP1 with Qty 1
- SUBCOMP2 with Qty 1

因此,我在我的计划中使用CS_BOM_EXPL_MAT_V2期望的是,报告的数量为SUBCOMP1 = 2且SUBCOMP2 = 2(因为{{1} }使用2个数量的MAT1)。但我得到的是COMP1 = 1个数量和SUBCOMP1 = 1个数量,因为我认为只考虑SUBCOMP2的物料清单和COMP1的数量不是考虑到了。

运行事务COMP1时,材料CS12的输出正确(SUBCOMP1 = 2,SUBCOMP2 = 2)。

那么,我如何让MAT1工作,以便它尊重组件的数量,在这种情况下CS_BOM_EXPL_MAT_V2与数量2,并将值级联到子组件,在此大小写COMP1SUBCOMP1,并将其相乘,以便返回正确的数量,在这种情况下,两个子组件都应具有数量2,如在事务SUBCOMP2中一样?

如果使用FM CS12无法做到这一点,请提供其他方法来实现此目的。

以下是我的FM目前的样子:

CS_BOM_EXPL_MAT_V2

2 个答案:

答案 0 :(得分:1)

这是Laurent Fournier在snc.sap.com上给出的答案。这对我很有帮助,因此我想在这里保留它。

I think that you must set multilevel indicator. Take a look at the following code and see if this can help you.

FORM EXPLODE_BOM  USING U_DATE
                        U_MATNR
                        U_MENGE
                        U_WERKS
                        U_MULTI
                CHANGING   C_SUCCESS.

  CLEAR : C_SUCCESS.

  CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
    EXPORTING
*   FTREL                       = ' '
*   ALEKZ                       = ' '
*   ALTVO                       = ' '
*   AUFSW                       = ' '
    AUMGB                       = 'X'
*   AUMNG                       = 0
    AUSKZ                       = ' '
*   AMIND                       = ' '
*   BAGRP                       = ' '
*   BEIKZ                       = ' '
*   BESSL                       = ' '
*   BGIXO                       = ' '
*   BREMS                       = ' '
    CAPID                       = 'PP01'
*   CHLST                       = ' '
*   COSPR                       = ' '
*   CUOBJ                       = 000000000000000
*   CUOVS                       = 0
*   CUOLS                       = ' '
    DATUV                       = U_DATE
*   DELNL                       = ' '
*   DRLDT                       = ' '
*   EHNDL                       = ' '
*   EMENG                       = 0
*   ERSKZ                       = ' '
*   ERSSL                       = ' '
*   FBSTP                       = ' '
*   KNFBA                       = ' '
*   KSBVO                       = ' '
*   MBWLS                       = ' '
*   MKTLS                       = 'X'
*   MDMPS                       = ' '
    MEHRS                       = U_MULTI
*   MKMAT                       = ' '
*   MMAPS                       = ' '
*   SALWW                       = ' '
*   SPLWW                       = ' '
*   MMORY                       = ' '
    MTNRV                       = U_MATNR
*   NLINK                       = ' '
*   POSTP                       = ' '
*   RNDKZ                       = ' '
*   RVREL                       = ' '
*   SANFR                       = ' '
*   SANIN                       = ' '
*   SANKA                       = ' '
*   SANKO                       = ' '
*   SANVS                       = ' '
*   SCHGT                       = ' '
*   STKKZ                       = ' '
*   STLAL                       = '1'
*   STLAN                       = '1'
    STPST                       = 0
*   SVWVO                       = 'X'
    WERKS                       = U_WERKS
*   NORVL                       = ' '
*   MDNOT                       = ' '
*   PANOT                       = ' '
*   QVERW                       = ' '
*   VERID                       = ' '
*   VRSVO                       = 'X'

*  IMPORTING
*   TOPMAT                      =
*   DSTST                       =
    TABLES
    STB                         = BOM_EXPL
*   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

答案 1 :(得分:0)

我认为,如果您用X标记AUMGB(Ausschussmenge berechnen)字段,那么您应该在结果中得到计算出的数量。检查名为STB(table type STPOX [BOM Items Extended for List Displays])的表,其字段为MNGLG(以基本计量单位计算的组件数量)。字段MENGE应带有基本数量。