プログラムに問題があります。CS_BOM_EXPL_MAT_V2
品目の BOM を取得するために汎用モジュールを使用しています。たとえばMAT1
、ff を持つマテリアルがあります。BOM 爆発。
MAT1
- COMP1 with Qty 2
- COMP2 with Qty 1
- COMP3 with Qty 1
そして、 componentCOMP1
には、サブコンポーネントもあります。
COMP1
- SUBCOMP1 with Qty 1
- SUBCOMP2 with Qty 1
したがって、 を使用して私のプログラムで期待してCS_BOM_EXPL_MAT_V2
いるのは、レポートの数量がSUBCOMP1
= 2 およびSUBCOMP2
= 2 であることです (MAT1
は の 2 数量を使用するためCOMP1
)。しかし、私が得ているのはSUBCOMP1
= 1 qty とSUBCOMP2
= 1 qty です。BOM のみを考慮してCOMP1
おり、数量はCOMP1
考慮されていないと思うからです。
transactionCS12
を実行すると、 material の出力は正しい ( SUBCOMP1
= 2, SUBCOMP2
= 2) ですMAT1
。
CS_BOM_EXPL_MAT_V2
では、コンポーネントのカウント (この場合COMP1
は Qty 2) を尊重し、値をサブコンポーネント (この場合はSUBCOMP1
and ) にカスケードしSUBCOMP2
、それを乗算して正しい数量を返すようにするにはどうすればよいですか? 、この場合、トランザクションのように両方のサブコンポーネントに Qty 2 が必要CS12
ですか?
これが FM で不可能な場合は、CS_BOM_EXPL_MAT_V2
これを実現する他の方法を提案してください。
現在、私の FM は次のようになっています。
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
aumgb = 'X'
capid = 'PP01'
datuv = v_datuv "date input in selection screen
endhl = '1'
mehrs = 'X'
mmory = '1'
mtnrv = v_matnr "material input in selection screen
stlal = v_stlal "alternative BOM input in selection screen
stpst = 0 "Level in multi-bom expl.
svwvo = 'X'
werks = v_werks "plant input in selection screen
vrvso = 'X'
IMPORTING
topmat = gs_top
TABLES
stb = gt_stb
matcat = gt_matca
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.