100% found this document useful (1 vote)
907 views

Multi Level BOM Explosion With Alternative - Notepad

This document describes a program for performing a multi-level bill of materials (BOM) explosion that handles all alternative BOMs at each level. The program collects the material and BOM data, recursively calls the BOM explosion function to get all levels and alternatives, and displays the results in an ALV grid. It demonstrates exploding a BOM to get the full component structure including all alternative configurations.

Uploaded by

sacc001
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
907 views

Multi Level BOM Explosion With Alternative - Notepad

This document describes a program for performing a multi-level bill of materials (BOM) explosion that handles all alternative BOMs at each level. The program collects the material and BOM data, recursively calls the BOM explosion function to get all levels and alternatives, and displays the results in an ALV grid. It demonstrates exploding a BOM to get the full component structure including all alternative configurations.

Uploaded by

sacc001
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Copy of multi level BOM explosion with alternative This program demonstrate Multilevel BOM Explosion With all

alternative BOMs like CS03 T-code. In CS12 we can explode the Multilevel BOM for only one alternate BOMs .There is no standard program for Multilevel BOM Explosion With all alternative BOMs in each level by level.This customized program will give you the output but it will take long time to execute for the material having more number of alternative BOMs. REPORT ZPP_BOM11.

TYPES : begin of ty_tab, matnr TYPE mara-matnr, werks TYPE mast-werks, stlaN TYPE mast-stlaN, stlnr TYPE mast-stlnr, stlal TYPE mast-stlal, end of ty_tab. data: it_tab TYPE STANDARD TABLE OF ty_tab, wa_tab TYPE ty_tab. TYPES : begin of ty_STB. INCLUDE STRUCTURE TYPES: END OF TY_STB.

STPOX.

DATA : IT_STB TYPE STANDARD TABLE OF TY_STB, WA_STB TYPE TY_STB, fs_stb TYPE TY_STB. TYPES : begin of ty_STB1, matnr TYPE mara-matnr, ojtxb TYPE ojtxp, mtart TYPE mtart, mnglg TYPE cs_e_mnglg, meins TYPE meins, idnrk TYPE matnr, ojtxp TYPE ojtxp, END OF TY_STB1. DATA : IT_STB1 TYPE STANDARD TABLE OF TY_STB1, WA_STB1 TYPE TY_STB1, fs_stb1 TYPE ty_stb1. types: begin of ty_final, matnr TYPE mara-matnr, ojtxb TYPE ojtxp, mtart TYPE mtart, mnglg TYPE cs_e_mnglg, meins TYPE meins, idnrk TYPE matnr, ojtxp TYPE ojtxp, end of ty_final. data : it_final TYPE STANDARD TABLE OF ty_final, wa_final TYPE ty_final. TYPE-POOLS: slis. DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE, gd_repid LIKE sy-repid. Page 1

Copy of multi level BOM explosion with alternative * *Screen elements................................ selection-screen begin of block b1 with frame title text-001. parameters: p_matnr type mast-matnr default '' obligatory," Material Number p_werks type mast-werks default 'wtch' obligatory, " Plant p_stlan type mast-stlan default '1' obligatory, " Alternative BOM p_capid type rc29l-capid default 'BEST' obligatory. " Application selection-screen end of block b1. START-OF-SELECTION. perform perform PERFORM perform bom_header. Bom_child. Build_catalog. display_output.

*&---------------------------------------------------------------------* *& Form BOM_HEADER *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM BOM_HEADER . select matnr werks stlaN stLnr stlal from mast INto CORRESPONDING FIELDS OF TABLE it_tab where matnr = p_matnr and werks = p_werks and stlAn = p_stlAn. clear wa_tab. loop at it_tab INTO wa_tab. CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING CAPID = 'PP01' DATUV = SY-DATUM MKTLS = 'X' MTNRV = wa_tab-matnr STLAL = wa_tab-stlal STLAN = wa_tab-stlan STPST = 0 SVWVO = 'X' WERKS = WA_TAB-WERKS TABLES STB = IT_STB MATCAT = IT_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 . Page 2

Copy of multi level BOM explosion with alternative 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: wa_stb1 , wa_stb. loop at it_stb INTO wa_stb. wa_stb1-matnr = wa_tab-matnr. wa_stb1-ojtxb = WA_STB-OJTXB. wa_stb1-mtart = wa_stb-mtart. wa_stb1-mnglg = wa_stb-mnglg. wa_stb1-meins = wa_stb-meins. wa_stb1-idnrk = wa_stb-idnrk. wa_stb1-ojtxp = wa_stb-ojtxp. APPEND wa_stb1 to it_stb1. ENDLOOP. ENDLOOP. ENDFORM. " BOM_HEADER *&---------------------------------------------------------------------* *& Form BOM_CHILD *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM BOM_CHILD . clear fs_stb1. if IT_STB1 is not initial. loop at IT_STB1 into fs_stb1. if sy-subrc = 0. wa_final-matnr = fs_stb1-matnr. wa_final-ojtxb = FS_STB1-OJTXB. wa_final-mtart = fs_stb1-mtart. wa_final-mnglg = fs_stb1-mnglg. wa_final-meins = fs_stb1-meins. wa_final-idnrk = fs_stb1-idnrk. wa_final-ojtxp = fs_stb1-ojtxp. append wa_final to it_final. ENDIF. endloop. ENDIF. clear wa_final. loop at it_final INTO wa_final. PERFORM RECURSIVE_BOM . endloop.

ENDFORM. FORM RECURSIVE_BOM .

" BOM_CHILD

Page 3

Copy of multi level BOM explosion with alternative CLEAR : it_tab, IT_STB , IT_STB1. clear : fs_stb,fs_stb1,wa_tab. select matnr werks stlaN stLnr stlal from mast INto CORRESPONDING FIELDS OF TABLE it_tab where matnr = WA_FINAL-IDNRK and werks = p_werks and stlAn = p_stlAn. loop at it_tab INTO wa_tab. CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING CAPID = 'PP01' DATUV = SY-DATUM MKTLS = 'X' MTNRV = wa_tab-matnr STLAL = wa_tab-stlal STLAN = wa_tab-stlan STPST = 0 SVWVO = 'X' WERKS = WA_TAB-WERKS TABLES STB = IT_STB 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: wa_stb1, wa_stb. loop at it_stb INTO wa_stb. wa_stb1-matnr = wa_tab-matnr. wa_stb1-ojtxb = WA_STB-OJTXB. wa_stb1-mtart = wa_stb-mtart. wa_stb1-mnglg = wa_stb-mnglg. wa_stb1-meins = wa_stb-meins. wa_stb1-idnrk = wa_stb-idnrk. wa_stb1-ojtxp = wa_stb-ojtxp. APPEND wa_stb1 to it_stb1. ENDLOOP. loop at IT_STB1 into fs_stb1. if sy-subrc = 0. wa_final-matnr wa_final-ojtxb wa_final-mtart wa_final-mnglg wa_final-meins = = = = = fs_stb1-matnr. FS_STB1-OJTXB. fs_stb1-mtart. fs_stb1-mnglg. fs_stb1-meins. Page 4

Copy of multi level BOM explosion with alternative wa_final-idnrk = fs_stb1-idnrk. wa_final-ojtxp = fs_stb1-ojtxp. append wa_final to it_final. ENDIF. endloop. ENDLOOP. ENDFORM. " RECURSIVE_BOM *&---------------------------------------------------------------------* *& Form BUILD_CATALOG *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM BUILD_CATALOG . fieldcatalog-fieldname = 'MATNR'. fieldcatalog-seltext_m = 'FG/ Parant'. fieldcatalog-col_pos = 0. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'OJTXB'. fieldcatalog-seltext_m = 'FG/ Parant Desc'. fieldcatalog-col_pos = 1. fieldcatalog-outputlen = 40. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'IDNRK'. fieldcatalog-seltext_m = 'Child'. fieldcatalog-col_pos = 2. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'OJTXP'. fieldcatalog-seltext_m = 'Child Desc'. fieldcatalog-col_pos = 3. fieldcatalog-outputlen = 40. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'MTART'. fieldcatalog-seltext_m = 'Material Type'. fieldcatalog-col_pos = 4. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'MNGLG'. fieldcatalog-seltext_m = 'Quantity Required'. fieldcatalog-col_pos = 5. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'MEINS'. fieldcatalog-seltext_m = 'Unit Of Measure'. fieldcatalog-col_pos = 6. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. ENDFORM. " BUILD_CATALOG *&---------------------------------------------------------------------* Page 5

Copy of multi level BOM explosion with alternative *& Form DISPLAY_OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM DISPLAY_OUTPUT . gd_repid = sy-repid. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = gd_repid it_fieldcat = fieldcatalog[] i_callback_top_of_page = 'TOP-OF-PAGE' I_SAVE = 'X' IS_VARIANT = g_variant TABLES t_outtab = it_final EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. ENDIF. ENDFORM. " DISPLAY_OUTPUT

* *

Page 6

You might also like