on 2012 Jun 13 9:16 PM
hi guys we have a cross plant multilevel bom strategy, ie after two levels of explosion the material is maintained in another plant,[from 1001 to 1003]
i made a code but that is exploding till 2nd level only . as the plant changes it stops. i thought of passing the plant 1003 explicitly but did not worked.
kindly help what shold i do inside the code only so that as the plant changes the next level of explosion takes place within and gets displayed.
REPORT ZPP_BOMEXPLODE NO STANDARD PAGE HEADING MESSAGE-ID zfi.
TABLES: mara,t001w,marc.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_makt,
matnr TYPE matnr,
spras TYPE spras,
maktx TYPE maktx,
END OF ty_makt,
BEGIN OF ty_final,
matnr TYPE matnr,
werks TYPE werks_d,
maktx TYPE maktx,
level TYPE histu,
idnrk TYPE idnrk,
ojtxp TYPE ojtxp,
menge TYPE kmpmg,
dispo TYPE dispo,
END OF ty_final.
DATA: gtb_mara TYPE STANDARD TABLE OF mara,
gtb_makt TYPE STANDARD TABLE OF ty_makt,
gtb_final TYPE STANDARD TABLE OF ty_final,
gtb_stpo TYPE STANDARD TABLE OF stpox,
gtb_fcat TYPE STANDARD TABLE OF slis_fieldcat_alv,
gtb_marc TYPE STANDARD TABLE OF marc.
DATA: gwa_mara TYPE mara,
gwa_makt TYPE ty_makt,
gwa_final TYPE ty_final,
gwa_stpo TYPE stpox,
gwa_marc TYPE marc.
SELECTION-SCREEN BEGIN OF BLOCK sell WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_matnr FOR mara-matnr,
s_dispo FOR marc-dispo.
PARAMETERS: p_werks TYPE t001w-werks.
SELECTION-SCREEN END OF BLOCK sell.
AT SELECTION-SCREEN.
PERFORM val_matnr.
PERFORM val_werks.
PERFORM val_dispo.
START-OF-SELECTION.
PERFORM refff.
PERFORM data_select.
***Display Data in ALV grid format.
PERFORM display_data.
*&---------------------------------------------------------------------*
*& Form val_matnr
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM val_matnr .
SELECT * FROM mara INTO TABLE gtb_mara WHERE matnr IN s_matnr.
IF sy-subrc NE 0.
MESSAGE e010 WITH 'Invalid Material'(002).
ENDIF.
ENDFORM. " val_matnr
*&---------------------------------------------------------------------*
*& Form val_werks
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM val_werks .
DATA: ltb_t001w TYPE STANDARD TABLE OF t001w.
IF NOT p_werks IS INITIAL.
SELECT * FROM t001w INTO TABLE ltb_t001w WHERE werks = p_werks.
IF sy-subrc NE 0.
MESSAGE e010 WITH 'Invalid Plant'(003).
ENDIF.
ELSE.
MESSAGE e010 WITH 'Enter Plant'(005).
ENDIF.
ENDFORM. " val_werks
*&---------------------------------------------------------------------*
*& Form val_dispo
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form val_dispo .
SELECT * FROM marc INTO TABLE gtb_marc WHERE dispo IN s_dispo.
IF sy-subrc NE 0.
MESSAGE e010 WITH 'Invalid MRP Controller'(007).
ELSE.
SORT GTB_MARC BY MATNR WERKS.
ENDIF.
endform. " val_dispo
*&---------------------------------------------------------------------*
*& Form DATA_SELECT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_select .
SELECT matnr
spras
maktx
FROM makt
INTO TABLE gtb_makt
WHERE matnr IN s_matnr
AND spras = sy-langu.
REFRESH: gtb_final,
gtb_stpo.
CLEAR: gwa_final,
gwa_stpo,
gwa_mara.
LOOP AT gtb_mara INTO gwa_mara.
READ TABLE GTB_MARC INTO GWA_MARC
WITH KEY MATNR = gwa_mara-matnr
WERKS = P_WERKS BINARY SEARCH.
IF SY-SUBRC = 0.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'PP01'
datuv = sy-datum
mktls = 'X'
mehrs = 'X'
mtnrv = gwa_mara-matnr
stlal = '01'
stlan = '1'
stpst = '0'
svwvo = '0'
werks = p_werks
vrsvo = 'X'
TABLES
stb = gtb_stpo
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.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR: gwa_stpo.
LOOP AT gtb_stpo INTO gwa_stpo.
gwa_final-dispo = gwa_marc-dispo.
gwa_final-matnr = gwa_mara-matnr.
gwa_final-werks = p_werks.
CLEAR: gwa_makt.
READ TABLE gtb_makt INTO gwa_makt WITH KEY matnr = gwa_mara-matnr.
IF sy-subrc = 0.
gwa_final-maktx = gwa_makt-maktx.
ENDIF.
gwa_final-level = gwa_stpo-stufe.
gwa_final-idnrk = gwa_stpo-idnrk.
gwa_final-ojtxp = gwa_stpo-ojtxp.
gwa_final-menge = gwa_stpo-menge.
APPEND gwa_final TO gtb_final.
ENDLOOP.
REFRESH: gtb_stpo.
CLEAR: gwa_stpo,gwa_marc.
ENDIF.
ENDLOOP.
ENDFORM. " DATA_SELECT
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_data .
IF NOT gtb_final[] IS INITIAL.
PERFORM fill_fcat.
PERFORM sub_dislay_report.
ELSE.
MESSAGE e010 WITH 'No Data Exists'(004).
ENDIF.
ENDFORM. " DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form FILL_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fill_fcat .
PERFORM sub_fill_catalog USING:
'MATNR' 'Material No',
'WERKS' 'Plant',
'MAKTX' 'Material Desc',
'DISPO' 'MRP Controller',
'LEVEL' 'Level',
'IDNRK' 'Component',
'OJTXP' 'Description',
'MENGE' 'Quantity'.
ENDFORM. " FILL_FCAT
*&---------------------------------------------------------------------*
*& Form SUB_FILL_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0383 text
* -->P_0384 text
*----------------------------------------------------------------------*
FORM sub_fill_catalog USING value(lva_fieldname)
value(lva_seltext).
DATA: lwa_fcat TYPE slis_fieldcat_alv.
STATICS: lva_col TYPE i.
lva_col = lva_col + 1.
lwa_fcat-col_pos = lva_col.
lwa_fcat-fieldname = lva_fieldname.
lwa_fcat-tabname = 'GTB_FINAL'.
IF lwa_fcat-fieldname = 'MATNR'
OR lwa_fcat-fieldname = 'IDNRK'.
lwa_fcat-no_zero = 'X'.
ENDIF.
lwa_fcat-seltext_l = lva_seltext.
APPEND lwa_fcat TO gtb_fcat.
ENDFORM. " SUB_FILL_CATALOG
*&---------------------------------------------------------------------*
*& Form SUB_DISLAY_REPORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sub_dislay_report .
DATA: lva_repid TYPE sy-repid,
lwa_layout TYPE slis_layout_alv.
lwa_layout-zebra = 'X'.
lwa_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = lva_repid
is_layout = lwa_layout
it_fieldcat = gtb_fcat
i_save = 'A'
TABLES
t_outtab = gtb_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i001(00) WITH 'Report Cannot be displayed'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. " SUB_DISLAY_REPORT
*&---------------------------------------------------------------------*
*& Form refff
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM refff .
REFRESH: gtb_makt,
gtb_final,
gtb_stpo,
gtb_fcat.
CLEAR: gwa_mara,
gwa_makt,
gwa_stpo,
gwa_final.
ENDFORM. " refff
Request clarification before answering.
This thread is currently in SCN Support, which is the support space for SAP Community Network and not SAP products. Please select an appropriate space where topic experts will see and reply to it: SCN Site Index
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
97 | |
11 | |
10 | |
9 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.