我的程序出现问题。我正在使用功能模块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,并将值级联到子组件,在此大小写COMP1
和SUBCOMP1
,并将其相乘,以便返回正确的数量,在这种情况下,两个子组件都应具有数量2,如在事务SUBCOMP2
中一样?
如果使用FM CS12
无法做到这一点,请提供其他方法来实现此目的。
以下是我的FM目前的样子:
CS_BOM_EXPL_MAT_V2
答案 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应带有基本数量。