Discontinued parts in BoM explosion reports

I am having difficulty with the BoM explosion reports (CS11-13, and CSP1-3), in that they seem to take no notice of discontinuation.  In particular we have some assemblies which are discontinued, and replaced by alternative parts with a different sub-assembly BoM.  It does not seem possible to explode through the new BoM - the reports appear to continue to use the obsolete assembly.
Am I doing something wrong?  It would seem clear that the reports should explode the BoM through the new assemblies, particularly if there is no stock of the obsolete part.
Is there an alternative way to get a BoM explosion report which does take note of the discontinuation data?

Hi,
In my opinion discontinuation is considered only during MRP run (planning) and has nothing to do with BOM reports (CS03, CS11, CS12, CSMB, etc).
SAP online help:
If this indicator is set, the material is defined as 'to be discontinued'. The material is then discontinued in MRP. MRP transfers dependent requirements that are no longer covered by stock of this material to the follow-up material.
So, I think you won't see the follow-up material in BOM reports. Even if you maintain the discountinuation in BOM I think you cannot see the actual sitruation in BOM reports (you will see both follow-up and discontinued material).
I hope I'm mistaken and this is a solved issue in SAP.
Regards,
Csaba

Similar Messages

  • BOM Explosion report

    Hi All,
    I have problem with BOM explosion report CS12.
    We have material with 3 level BOM. While we are running CS12, upto 2nd level appears in the report. 3 rd level components dose'nt show. what may be the reason. I have checked validity period & BOM status is active for all levels.
    REgards,
    Srijit.

    HI
    Check the explosion types in OS17 also check whether phantom asseblies indicator in OS17.
    Check In BOM for whether you have defined some material as Phantom or not?
    Check and revert
    Regards
    Anupam Sharma

  • Alternative unit of measure in BOM explosion report

    Dear gurus
    I want to get the alternative unit of measure along with the base unit of measure during the BOM explosion report in CS11.I tried with the layout but I cant find the same.
    How is this possible?
    regards
    kumar s

    Hi Kumar,
    You can develop  a Z report. In the standard CS11, the functionality of displaying the alternate UOM is not feasible.
    thanks and regards
    Muruegsan

  • BOM explosion report and lot size

    Hi all
    We have created a Z report for BOM explosion . Here it gives the user the option to explode the BOM at the desired level.
    We have an enhancement ticket where  the user wants an additional field of Minimum lot size and Maximum lot size in the report.
    Before assigning a task to the ABAP team , I request if some one explains the feasibility and its impact on this report. Thanks in advance .
    Kind Regards
    Ayaz

    Thanks Bramhankar for the reply .How does the functional module affect this report ?Thanks
    Kind regards
    Ayaz

  • What will be the effect of discontinuation material in BOM on Reports?

    If I discontinue material A and introduce follow up with material B,
    then,  how will material B behave in case of settlement  .i.e. suppose
    at the end of the day the system create a report about days consumption ,then does B will reflect directly in reports with consumption quantity or there are some changes need to do ?

    Hi Naimesh,
    Thanks for your reply.
    But here if I check the function group in which the RFC is defined im able to find the following Includes:
    *   System-defined Include-files.                                 *
      INCLUDE LZPRODORDRFCTOP.                   " Global Data
      INCLUDE LZPRODORDRFCUXX.                   " Function Modules
    *   User-defined Include-files (if necessary).                    *
    *  INCLUDE LZPRODORDRFCF...                   " Subprograms
    * INCLUDE LZPRODORDRFCO...                   " PBO-Modules
    * INCLUDE LZPRODORDRFCI...                   " PAI-Modules
    INCLUDE LZPRODORDRFCF01.
    But in not able locate the include  LZPRODORDRFCV07 which i have mentioned above.
    I would also like to know what would happen if the %_RFC is removed.Would the addition of %_RFC affect the performance of the program in any manner.
    Im not able to execute the program myself as it is linked with another server.
    Regards,
    Vineela.

  • BOM explosion for Multiple  materials

    Dear All
    In Cs11 where we can get bom explosion  report for single material,but i need multiple material more than one material as desired.
    Any Std T code is there.

    Dear Sukendar,
    1.For this requirement you have to go for a Z report and you can give the Functional Spec's to prepare
    this report to your ABAP consultant.Prepare the input format,logic of the program and the output format.
    In the logic part you can make use of this Functional Modules's CSAP_MAT_BOM_READ or 
    CSEP_MAT_BOM_READ  or CS_BOM_EXPLOSION   or CS_BOM_EXPL_MAT_V2 .
    2.Using CEWB helps you to identify all the material that's having the BOM,but here the report does not
    shows you the level by level by BOM for a FERT.
    Check and revert back.
    Regards
    Mangalraj.S

  • Report for Cost of Multiple products with Multilevel BOM explosion

    Hi,
    Our client has a requirement of a report showing standard cost estimate of multiple FG products, with multi-level BOM explosion.
    In short, the requirement is to get a CK13N report for multiple products.
    Has anyone come across such requirement? The requirements seems to be very normal.
    But, I have not seen any standard report for the same. If there is any, please suggest.
    or suggest a better solution for the same.
    Thanks in advance. Pts guaranteed.

    Hi,
    I totally agree with you that this is a totally vague requirement.
    However, let me share the reason for such client requirement.
    We have a customer, for which we produce certain parts for select models. Now, the arrangement with customer for pricing is based on the raw material and other production cost for all such parts. Based on the fluctuations in cost, the pricing would be finalised.. on a monthly or quarterly basis.
    For this purpose, the customer requires to know the raw materials used in each of the part.
    Individually it could have been managed. But the price change in terms of % is decided at global level and not for each part.
    Please suggest

  • BOM Explosion in Webi Report

    Hi all, I want to perform  Bill of material explosion in webi report. Is it possible in 4.0 ? Thanks Arvind Shukla

    Rogerio,
    It is the Bill Of Material (BOM) - list of parts or components required to build a product. So the BOM explosion is to display all the that list of parts for each finished product. The data will be stored in a parent-child relationship in a tree structure.
    Hope some body will share further details on how they achieved to get this data in BO reports.
    -CK

  • BOM Explosion for Multiple Process Orders

    Hi,
    I hope someone can assist me with the following: Is there a report I can run or transaction I can do to have BOM explosion for multiple Process Orders? I would like to input process orders for a week and see the BOM details per PO.
    Thanks

    Dear Sukendar,
    1.For this requirement you have to go for a Z report and you can give the Functional Spec's to prepare
    this report to your ABAP consultant.Prepare the input format,logic of the program and the output format.
    In the logic part you can make use of this Functional Modules's CSAP_MAT_BOM_READ or 
    CSEP_MAT_BOM_READ  or CS_BOM_EXPLOSION   or CS_BOM_EXPL_MAT_V2 .
    2.Using CEWB helps you to identify all the material that's having the BOM,but here the report does not
    shows you the level by level by BOM for a FERT.
    Check and revert back.
    Regards
    Mangalraj.S

  • URGENT: REGARDING BOM EXPLORE REPORT

    HI,
    I making dis report and i want to display the BOM Explosion in which i have to display the output whihc conatins the details of it. I am sending my code in whihc it displays correct for 1 BOM but when comes to miultiple BOM it has following problem:-
    1.) The materaial no does not change on the top of report .
    2.) The DIVSION No. of the some of the materails are displayed and some of dem are not displaying.
    plzz help me out with dis problem as help will be definately rewarded.
    REPORT ZTET1.
    TABLES: MBEW,           "Material Valuation
            MSLB,           "Special stocks with vendor
            MARA,           "Material Master
            MAKT,           "Material Descriptions
            MARD,           "Material Master: Storage Location/Batch Segment
            MAST,           "BOM Header
            STKO,           "BOM Detail
            STPO,           "Bom Components
            STAS.           "BOM Alternative
    Text Elements
    Plant
    SELECT-OPTIONS: S_WERKS FOR MAST-WERKS DEFAULT 'CA',
    Material
                    S_MATNR FOR MAST-MATNR,
    Material Type
                    S_MTART FOR MARA-MTART.
    Base Quantity
    PARAMETERS: S_BASE TYPE I DEFAULT '1'.
    Display up to Level
    PARAMETERS: S_LVL  TYPE I DEFAULT '99'.
    PARAMETERS: stlal  type mast-stlal default '01'.
    SELECTION-SCREEN SKIP.
    Include Vendor Stock
    PARAMETERS: X_MSLB  AS CHECKBOX.
    DATA: W_MATNR LIKE MAPL-MATNR.
    DATA: PARENT_MATNR LIKE MAST-MATNR,
          CHILD_MATNR LIKE STPO-IDNRK,
          CHILD_WERKS LIKE MAST-WERKS,
          CHILD_STLAL LIKE MAST-STLAL,
          W_MAKTX LIKE MAKT-MAKTX,
          W_STD TYPE P DECIMALS 5,
          W_MAV TYPE P DECIMALS 5,
          W_MENGE TYPE P DECIMALS 3,
          W_LEVEL TYPE I,
          W_DOT(1),
          W_LVL(12),
          W_LVL1(12),
          W_LVL2(2),
          W_COL TYPE I,
          W_LFLAG,
          W_TTL LIKE MARD-LABST.
      DATA: SPART LIKE MARA-SPART.
    DATA: BEGIN OF INT1 OCCURS 50,
            LGORT(6),
            LABST LIKE MARD-LABST,
          END OF INT1.
    IF S_BASE EQ 0.
      S_BASE = 1.
    ENDIF.
    append multi level routing
    SELECT * FROM MAST WHERE WERKS IN S_WERKS AND
         MATNR IN S_MATNR and stlal = stlal.
      SELECT SINGLE SPART FROM MARA INTO SPART WHERE MATNR = MAST-MATNR.
        write: 'aaaaa', sy-dbcnt.
    SELECT SINGLE * FROM MARA WHERE MATNR = MAST-MATNR AND
          MTART IN S_MTART.
      IF SY-SUBRC NE 0.
        CONTINUE.
      ENDIF.
      IF MARA-LVORM <> 'X'.
        PARENT_MATNR = MAST-MATNR.
        CHILD_MATNR  = MAST-MATNR.
        CHILD_WERKS  = MAST-WERKS.
        CHILD_STLAL  = MAST-STLAL.
        SELECT SINGLE * FROM MAKT WHERE MATNR = MAST-MATNR AND
             SPRAS = 'E'.
        W_MAKTX = MAKT-MAKTX.
       REFRESH INT1.
       SELECT * FROM MARD WHERE MATNR = MAST-MATNR AND
            WERKS = MAST-WERKS AND
            LABST NE 0.
         MOVE MARD-LGORT TO INT1-LGORT.
         MOVE MARD-LABST TO INT1-LABST.
         APPEND INT1.
       ENDSELECT.
       IF X_MSLB EQ 'X'.
         SELECT * FROM MSLB WHERE MATNR EQ MAST-MATNR AND
              WERKS EQ MAST-WERKS AND
              LBLAB NE 0.
           MOVE MSLB-LIFNR TO INT1-LGORT.
           MOVE MSLB-LBLAB TO INT1-LABST.
           APPEND INT1.
         ENDSELECT.
       ENDIF.
        W_LEVEL = 1.
       NEW-PAGE.
        PERFORM GETCHILD.
      ENDIF.
    ENDSELECT.
    get child parts
    FORM GETCHILD.
      SELECT * FROM STPO WHERE STLNR = MAST-STLNR
            ORDER BY POSNR.
        SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR
              AND STLAL = MAST-STLAL.
        SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
              STLKN = STPO-STLKN AND
              STLAL = MAST-STLAL.
        IF SY-SUBRC EQ 0.
          CLEAR: W_DOT, W_LVL, W_LVL1.
          PERFORM WRT_DTL.
          CHILD_MATNR = STPO-IDNRK.
          W_LEVEL = W_LEVEL + 1.
          IF W_LEVEL <= S_LVL.
            PERFORM SUBCHILD.
          ENDIF.
          W_LEVEL = W_LEVEL - 1.
        ENDIF.
      ENDSELECT.
    ENDFORM.
    get grand children parts
    FORM SUBCHILD.
      SELECT SINGLE * FROM MAST WHERE MATNR = CHILD_MATNR
         AND WERKS = CHILD_WERKS.
      IF SY-SUBRC NE 0.
        EXIT.
      ENDIF.
      SELECT * FROM STPO WHERE STLNR = MAST-STLNR.
        SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR AND
          STLAL = MAST-STLAL.
        SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
            STLKN = STPO-STLKN AND
            STLAL = STKO-STLAL.
          IF SY-SUBRC EQ 0.
            W_DOT = '.'.
            PERFORM WRT_DTL.
            CHILD_MATNR = STPO-IDNRK.
            W_LEVEL = W_LEVEL + 1.
            IF W_LEVEL <= S_LVL.
              PERFORM SUBCHILD.
            ENDIF.
            W_LEVEL = W_LEVEL - 1.
            SHIFT W_LVL.
          ENDIF.
        ENDSELECT.
    ENDFORM.
    TOP-OF-PAGE.
    WRITE:/ SY-DATUM,SY-UZEIT,
           85 'ABC PTE LTD',
          182 'Page', SY-PAGNO.
    WRITE: / SY-REPID,
             75 'BOM STRUCTURE  (WITH LOCATION BALANCES)',
             182 SY-UNAME.
    SKIP.
    CLEAR W_LFLAG.
    WRITE:/ 'Material No.:', PARENT_MATNR,
            60 'Plant    :', MAST-WERKS.
    W_COL = 90.
    CLEAR W_TTL.
    **LOOP AT INT1.
    IF W_COL > 195.
       IF W_LFLAG IS INITIAL.
         WRITE:/ 'Description :', W_MAKTX,
              60 'Base Qty :', S_BASE LEFT-JUSTIFIED.
         W_LFLAG = 'X'.
         W_COL = 90.
       ELSE.
         W_COL = 90.
         SKIP.
       ENDIF.
    ENDIF.
    WRITE AT W_COL 'Loc :'.
    W_COL = W_COL + 6.
    WRITE AT W_COL INT1-LGORT.
    W_COL = W_COL + 7.
    WRITE AT W_COL(12) INT1-LABST LEFT-JUSTIFIED.
    W_COL = W_COL + 16.
    W_TTL = W_TTL + INT1-LABST.
    **ENDLOOP.
    **IF W_LFLAG IS INITIAL.
    WRITE:/ 'Description :', W_MAKTX,
          60 'Base Qty :', S_BASE LEFT-JUSTIFIED,
          90 'Total :', W_TTL LEFT-JUSTIFIED.
    **ELSE.
    WRITE AT W_COL 'Total :'.
    W_COL = W_COL + 8.
    WRITE AT W_COL W_TTL LEFT-JUSTIFIED.
    **ENDIF.
    SKIP.
    ULINE.
    WRITE: /001 'Level',
            011 'Item',
            017 'Component',
            037 'Description',
            079 '    Per',
            089 'UOM',
            094 ' Std Price',
            106 'Moving Avg',
            119 'Location',
            128 ' Balance',
            139 'Location',
            148 ' Balance',
            159 'Location',
            168 ' Balance',
            179 'Total Quantity'.
    ULINE.
    FORM WRT_DTL.
      CLEAR: MAKT-MAKTX, W_MAV, W_STD.
      SELECT SINGLE * FROM MAKT WHERE MATNR = STPO-IDNRK AND
           SPRAS = 'E'.
    SELECT SINGLE * FROM MBEW WHERE MATNR = STPO-IDNRK AND
          BWKEY = MAST-WERKS.
    IF SY-SUBRC = 0.
       W_MAV = MBEW-VERPR / MBEW-PEINH.
       W_STD = MBEW-STPRS / MBEW-PEINH.
    ENDIF.
    W_MENGE = ( STPO-MENGE / STKO-BMENG ) * S_BASE.
    W_LVL2 = W_LEVEL.
      CONCATENATE W_DOT W_LVL INTO W_LVL.
      CONCATENATE W_LVL W_LVL2 INTO W_LVL1.
    SELECT SINGLE SPART FROM MARA INTO SPART WHERE MATNR = MAST-MATNR.
    SELECT SINGLE SPART FROM MARA INTO SPART WHERE MATNR = STPO-IDNRK.
      WRITE: /001 ' ',
              011 STPO-POSNR,
              017 STPO-IDNRK,
              037 MAKT-MAKTX,
              079 SPART.
             079(8) W_MENGE,
             089 STPO-MEINS,
             094(10) W_STD,
             106(10) W_MAV.
    W_COL = 119.
    CLEAR W_TTL.
    SELECT * FROM MARD WHERE MATNR = STPO-IDNRK AND
          WERKS = MAST-WERKS AND
          LABST NE 0.
       IF W_COL > 166.
         W_COL = 119.
         WRITE AT /W_COL ' '.
       ENDIF.
       WRITE AT W_COL MARD-LGORT.
       W_COL = W_COL + 5.
       WRITE AT W_COL(13) MARD-LABST.
       W_COL = W_COL + 15.
       W_TTL = W_TTL + MARD-LABST.
    ENDSELECT.
    IF X_MSLB EQ 'X'.
       SELECT * FROM MSLB WHERE MATNR = STPO-IDNRK AND
            WERKS = MAST-WERKS AND
            LBLAB NE 0.
         IF W_COL > 166.
           W_COL = 119.
           WRITE AT /W_COL ' '.
         ENDIF.
         WRITE AT W_COL(6) MSLB-LIFNR.
         W_COL = W_COL + 6.
         WRITE AT W_COL(12) MSLB-LBLAB.
         W_COL = W_COL + 14.
         W_TTL = W_TTL + MSLB-LBLAB.
       ENDSELECT.
    ENDIF.
    WRITE AT 179(15) W_TTL.
    ENDFORM.

    Hi Ric
    hope this will help you.
    pls reward if help.
    REPORT ZMULTIBOM NO STANDARD PAGE HEADING LINE-SIZE 195
                    LINE-COUNT 60(2) MESSAGE-ID Z1.
    TABLES: MBEW,           "Material Valuation
            MSLB,           "Special stocks with vendor
            MARA,           "Material Master
            MAKT,           "Material Descriptions
            MARD,           "Material Master: Storage Location/Batch Segment
            MAST,           "BOM Header
            STKO,           "BOM Detail
            STPO,           "Bom Components
            STAS.           "BOM Alternative
    Text Elements
    Plant
    SELECT-OPTIONS: S_WERKS FOR MAST-WERKS DEFAULT 'CA',
    Material
                    S_MATNR FOR MAST-MATNR,
    Material Type
                    S_MTART FOR MARA-MTART.
    Base Quantity
    PARAMETERS: S_BASE TYPE I DEFAULT '1'.
    Display up to Level
    PARAMETERS: S_LVL  TYPE I DEFAULT '99'.
    SELECTION-SCREEN SKIP.
    Include Vendor Stock
    PARAMETERS: X_MSLB  AS CHECKBOX.
    DATA: W_MATNR LIKE MAPL-MATNR.
    DATA: PARENT-MATNR LIKE MAST-MATNR,
          CHILD-MATNR LIKE STPO-IDNRK,
          CHILD-WERKS LIKE MAST-WERKS,
          CHILD-STLAL LIKE MAST-STLAL,
          W_MAKTX LIKE MAKT-MAKTX,
          W_STD TYPE P DECIMALS 5,
          W_MAV TYPE P DECIMALS 5,
          W_MENGE TYPE P DECIMALS 3,
          W_LEVEL TYPE I,
          W_DOT(1),
          W_LVL(12),
          W_LVL1(12),
          W_LVL2(2),
          W_COL TYPE I,
          W_LFLAG,
          W_TTL LIKE MARD-LABST.
    DATA: BEGIN OF INT1 OCCURS 50,
            LGORT(6),
            LABST LIKE MARD-LABST,
          END OF INT1.
    IF S_BASE EQ 0.
      S_BASE = 1.
    ENDIF.
    append multi level routing
    SELECT * FROM MAST WHERE WERKS IN S_WERKS AND
         MATNR IN S_MATNR.
      SELECT SINGLE * FROM MARA WHERE MATNR = MAST-MATNR AND
           MTART IN S_MTART.
      IF SY-SUBRC NE 0.
        CONTINUE.
      ENDIF.
      IF MARA-LVORM <> 'X'.
        PARENT-MATNR = MAST-MATNR.
        CHILD-MATNR  = MAST-MATNR.
        CHILD-WERKS  = MAST-WERKS.
        CHILD-STLAL  = MAST-STLAL.
        SELECT SINGLE * FROM MAKT WHERE MATNR = MAST-MATNR AND
             SPRAS = 'E'.
        W_MAKTX = MAKT-MAKTX.
        REFRESH INT1.
        SELECT * FROM MARD WHERE MATNR = MAST-MATNR AND
             WERKS = MAST-WERKS AND
             LABST NE 0.
          MOVE MARD-LGORT TO INT1-LGORT.
          MOVE MARD-LABST TO INT1-LABST.
          APPEND INT1.
        ENDSELECT.
        IF X_MSLB EQ 'X'.
          SELECT * FROM MSLB WHERE MATNR EQ MAST-MATNR AND
               WERKS EQ MAST-WERKS AND
               LBLAB NE 0.
            MOVE MSLB-LIFNR TO INT1-LGORT.
            MOVE MSLB-LBLAB TO INT1-LABST.
            APPEND INT1.
          ENDSELECT.
        ENDIF.
        W_LEVEL = 1.
        NEW-PAGE.
        PERFORM GETCHILD.
      ENDIF.
    ENDSELECT.
    get child parts
    FORM GETCHILD.
      SELECT * FROM STPO WHERE STLNR = MAST-STLNR
            ORDER BY POSNR.
        SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR
              AND STLAL = MAST-STLAL.
        SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
              STLKN = STPO-STLKN AND
              STLAL = MAST-STLAL.
        IF SY-SUBRC EQ 0.
          CLEAR: W_DOT, W_LVL, W_LVL1.
          PERFORM WRT_DTL.
          CHILD-MATNR = STPO-IDNRK.
          W_LEVEL = W_LEVEL + 1.
          IF W_LEVEL <= S_LVL.
            PERFORM SUBCHILD.
          ENDIF.
          W_LEVEL = W_LEVEL - 1.
        ENDIF.
      ENDSELECT.
    ENDFORM.
    get grand children parts
    FORM SUBCHILD.
      SELECT SINGLE * FROM MAST WHERE MATNR = CHILD-MATNR
         AND WERKS = CHILD-WERKS.
      IF SY-SUBRC NE 0.
        EXIT.
      ENDIF.
      SELECT * FROM STPO WHERE STLNR = MAST-STLNR
            ORDER BY POSNR.
        SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR AND
          STLAL = MAST-STLAL.
        SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
            STLKN = STPO-STLKN AND
            STLAL = STKO-STLAL.
          IF SY-SUBRC EQ 0.
            W_DOT = '.'.
            PERFORM WRT_DTL.
            CHILD-MATNR = STPO-IDNRK.
            W_LEVEL = W_LEVEL + 1.
            IF W_LEVEL <= S_LVL.
              PERFORM SUBCHILD.
            ENDIF.
            W_LEVEL = W_LEVEL - 1.
            SHIFT W_LVL.
          ENDIF.
        ENDSELECT.
    ENDFORM.
    TOP-OF-PAGE.
    WRITE:/ SY-DATUM,SY-UZEIT,
           85 'ABC PTE LTD',
          182 'Page', SY-PAGNO.
    WRITE: / SY-REPID,
             75 'BOM STRUCTURE  (WITH LOCATION BALANCES)',
             182 SY-UNAME.
    SKIP.
    CLEAR W_LFLAG.
    WRITE:/ 'Material No.:', PARENT-MATNR,
            60 'Plant    :', MAST-WERKS.
    W_COL = 90.
    CLEAR W_TTL.
    LOOP AT INT1.
      IF W_COL > 195.
        IF W_LFLAG IS INITIAL.
          WRITE:/ 'Description :', W_MAKTX,
               60 'Base Qty :', S_BASE LEFT-JUSTIFIED.
          W_LFLAG = 'X'.
          W_COL = 90.
        ELSE.
          W_COL = 90.
          SKIP.
        ENDIF.
      ENDIF.
      WRITE AT W_COL 'Loc :'.
      W_COL = W_COL + 6.
      WRITE AT W_COL INT1-LGORT.
      W_COL = W_COL + 7.
      WRITE AT W_COL(12) INT1-LABST LEFT-JUSTIFIED.
      W_COL = W_COL + 16.
      W_TTL = W_TTL + INT1-LABST.
    ENDLOOP.
    IF W_LFLAG IS INITIAL.
      WRITE:/ 'Description :', W_MAKTX,
           60 'Base Qty :', S_BASE LEFT-JUSTIFIED,
           90 'Total :', W_TTL LEFT-JUSTIFIED.
    ELSE.
      WRITE AT W_COL 'Total :'.
      W_COL = W_COL + 8.
      WRITE AT W_COL W_TTL LEFT-JUSTIFIED.
    ENDIF.
    SKIP.
    ULINE.
    WRITE: /001 'Level',
            011 'Item',
            017 'Component',
            037 'Description',
            079 '    Per',
            089 'UOM',
            094 ' Std Price',
            106 'Moving Avg',
            119 'Location',
            128 ' Balance',
            139 'Location',
            148 ' Balance',
            159 'Location',
            168 ' Balance',
            179 'Total Quantity'.
    ULINE.
    FORM WRT_DTL.
      CLEAR: MAKT-MAKTX, W_MAV, W_STD.
      SELECT SINGLE * FROM MAKT WHERE MATNR = STPO-IDNRK AND
           SPRAS = 'E'.
      SELECT SINGLE * FROM MBEW WHERE MATNR = STPO-IDNRK AND
           BWKEY = MAST-WERKS.
      IF SY-SUBRC = 0.
        W_MAV = MBEW-VERPR / MBEW-PEINH.
        W_STD = MBEW-STPRS / MBEW-PEINH.
      ENDIF.
      W_MENGE = ( STPO-MENGE / STKO-BMENG ) * S_BASE.
      W_LVL2 = W_LEVEL.
      CONCATENATE W_DOT W_LVL INTO W_LVL.
      CONCATENATE W_LVL W_LVL2 INTO W_LVL1.
      WRITE: /001 W_LVL1,
              011 STPO-POSNR,
              017 STPO-IDNRK,
              037 MAKT-MAKTX,
              079(8) W_MENGE,
              089 STPO-MEINS,
              094(10) W_STD,
              106(10) W_MAV.
      W_COL = 119.
      CLEAR W_TTL.
      SELECT * FROM MARD WHERE MATNR = STPO-IDNRK AND
           WERKS = MAST-WERKS AND
           LABST NE 0.
        IF W_COL > 166.
          W_COL = 119.
          WRITE AT /W_COL ' '.
        ENDIF.
        WRITE AT W_COL MARD-LGORT.
        W_COL = W_COL + 5.
        WRITE AT W_COL(13) MARD-LABST.
        W_COL = W_COL + 15.
        W_TTL = W_TTL + MARD-LABST.
      ENDSELECT.
      IF X_MSLB EQ 'X'.
        SELECT * FROM MSLB WHERE MATNR = STPO-IDNRK AND
             WERKS = MAST-WERKS AND
             LBLAB NE 0.
          IF W_COL > 166.
            W_COL = 119.
            WRITE AT /W_COL ' '.
          ENDIF.
          WRITE AT W_COL(6) MSLB-LIFNR.
          W_COL = W_COL + 6.
          WRITE AT W_COL(12) MSLB-LBLAB.
          W_COL = W_COL + 14.
          W_TTL = W_TTL + MSLB-LBLAB.
        ENDSELECT.
      ENDIF.
      WRITE AT 179(15) W_TTL.
    ENDFORM.

  • BOM Explosion control based on Procurement type

    Gurus ,
    We have a scenario where we have a Multilevel BOM . During one point of time there is a chnce that one SFG ehich is "E" type gets converted manual into an "F" type due to some practical reasons (I know F part shud not have a BOM). Users do not  delete or inactivate the BOM of this SFG(which has now become F part) .  As a consequence it impacts a report for CUSTOMS wherein a multilevel BOM is exploded for HEADER and reports all the F parts. The result expected is list of all F parts
    EXAMPLE we have FG1 , with Components RM1 and SFG1 .(This SFG1 was [previosly having componets RM1,RM2 and RM3) .
    Scenario 1- if SFG1 was with procurement E , then result iof report after exploding FG1 would be RM1,RM2 and RM3.
    Scenario 2: If SFG1 got converted to F part , then result of report after exploding FG1 should be RM1,SFG1
    Is there a way to control BOM multilevel explosion for only E parts so that BOMs for F parts donot get exploded)
    Ie, BOM application etc...
    THNX
    HKR

    GURU VIVEK
    THANKYOU for the solution, It worked for ME without any issues.
    If you dont mind one small question..when I execute this function module in SE37 I get list of Importa parameters (fields),but do not get its descriptions. HOW TO GET THE DESCRIPTIONS in that sreen.
    THANKYOU LOTSSSS
    Regards,HKR

  • BOM explosion number.

    Hello SAP Gurus,
    What is the use of BOM explosion number? after creation how & where to assigne it?
    with regards,
    dev123.

    Hi,
    If you want to ensure that for a certain production unit, the BOM structure is always exploded with the same date, you can assign a BOM explosion number to the planned order (or for make-to-order production it can be directly assigned to the sales order).
    If you do not use the assignment of a BOM explosion number, the planned start date of the planned order is always used as the explosion date for the BOM. The system explodes the particular BOM that is valid on this date.
    For multi-level BOM structures, larger time intervals may exist between the explosion dates of the individual assemblies. If BOMs (or alternative BOMs) have been changed in the meantime (for example, exchanging individual components due to new technical drawings, changed production techniques, due to parts to be discontinued etc.) a situation may exist whereby an assembly that is used repeatedly is produced with different BOM structures.
    Create BOM Explosion Number:-
    1.  Starting from the MRP menu, choose Master data --> BOM explosion number -->Edit (MDSP)
    The system displays the initial screen for maintaining the BOM explosion number.
    2.  Choose  .
    The screen for maintaining the BOM explosion numbers now appears.
    3.  Choose New entries.
    A screen now appears where you can enter new BOM explosion numbers.
    4.  Enter data as required.
    BOM explosion number
    The BOM explosion number is the object for which the following data is maintained. It can be entered alphanumerically.
    Fixed key date
    The fixed key date determines which bill of material is exploded.
    Plant
    You can also specify a BOM explosion number for a specific plant. Enter the appropriate plant in this case.
    Material
    You can specify a BOM explosion number for a specific material. Enter the appropriate material in this case.
    Status
    You can set the BOM explosion number to active or inactive using the status field. Only active BOM explosion numbers are used in the planning run.
    Save your entries.

  • How to find out if a Material is part of BOM ?

    HI Guru's,
    I have material XXXXXXX and I am trying to find out if this material is part of BOM ? How can do that? and how can I find out in which hierarchy it's set?
    Please can someone help me.
    Best Regards,
    Yasmeen

    Hello,
    You can use transaction CS15, and your material as input=> System displays all BOMs to which your material belong
    If you have a bom, then use CS12 to explose material and look for your material

  • MRP RUN- KIT BOM explosion not working

    We setup one layer BOM’s for our maintenance KITs as parent material and components as child material.  For  example KIT is TS10000-K1 and components are TS10001, TS10002 etc setup as next layer with in the BOM. Both KITS and components are defined as material types ERSA (Spare parts). These one layers BOMs are setup as production BOMs and expected to create purchase requisitions for KITS and components by exploding BOMs during MRP runs. We use purchase requisitions and convert them into POs to procure both KITS and components. We DO NOT USE Panned orders and Production orders. 
    The safety stocks / reorder point are considered as demand for KITS and components as we do not have any external demand for KITS and components.  
    MRP run is creating purchase requisitions automatically for both KITS and components as per safety stocks and reorder point defined in MRP Views of Material Master. This is working as expected.  
    The issue is: KIT BOM’s are not exploding to generate purchase requisitions for the dependent components of KIT BOM. Please suggest the way to resolve this issue. 
    Split valuation: Also we plan to use split valued KITS with both new and refurbished. So we need BOM explosion for split valued KITS
    also (after the 1st issue is resolved).   
    I verified the following items to make sure the required configuration and data setup is defined correctly.
    1) Planning file activated Plant - OMDU 
    2) Executed MRP run with Total Planning - MDBT and MD02 (single item, multiple levels)
    3) BOM explosion for MRP activated- OS23 
    4) MRP type in MRP1 view- PD and VB (I tried both separately but BOM is not exploding).
    5) Procurement type “F” (MRP 2 view) and lot size “EX”  
    6) Planning strategy in MRP 3 view (tested w/o planning strategy and with strategies 10 and 40. But BOM is not exploded)
    7) BOM status and usage (status is active and usage is for production-CS02 and OS20)  
    8) BOM Validity date (Valid) 
    9) BOM structure in CS12 (BOM is exploding in CS11) 
    10) Availability check  
    11) Selection of BON ID to have BOM usage indicator assign (OS31).
    12) No alternate BOMs or production versions or work scheduling view are used.
    Please review the above 2 issues and suggest any workable solution. Thanks in advance!
    NOTE: I extensively used MRP with multi-level BOM explosion in my earlier projects without any issue. However the above issue is a  bit strange  why one layer BOM is not exploded in this case. 
    Regards
    Srini  

    Hi
    Thanks for your response. I reviewed all SAP notes and none of them are applicable to my scenario.
    1808396 - BOM changes not considered by MRP: I have not changed BOMs.
    1781324 - MD11: Valid BOM alternative is not found. We do not have alternative BOMs.
    1791009 - No BOM explosion after changing production version: We am not using production versions.
    Our Material KITS are PM spare assemblies set up as BOMs and consists of individual spare parts as components. We are creating purchase requisitions and not planned orders. We are not using PP functionality/Production orders.
    MRP is generating purchase requisitions for KITS and components as per ROP and safety stocks. In other words it is working as expected.  The issue is BOMs which are parent assemblies are not exploding to the next lower level components.
    Please note that I am not getting any error messages when MRP is executed.
    Regards
    Srini.

  • Routing details with bom explosion

    hi friends
    i have developend the report for pp,in routing details
    how to get the details of bom explosion with workcenter and routing operations
    If procurement type is E or X, system has to check the routing through CA03.
    If procurement type if F, leave this field as blank and then fetch the relevant vendor
    CS_BOM_EXPL_MAT_V2 - using this fm to get the bom explosion
    after that how to relate between workcenter and routing details.
    input is material number
    plant
    1.operator
    2.material - i got through fm
    3.material description i got through fm
    4.workcenter
    5.vendor
    6.operation description
    7.uom -i got through fm
    8.qty - i got through fm
    9.uom
    10.setuptime
    11.processingtime
    12.deliverytime
    code for review.
    TABLES : MAST
    DATA: BEGIN OF ISTPO OCCURS 1000.
    INCLUDE STRUCTURE STPOX.
    DATA: END OF ISTPO.
    DATA: BEGIN OF MATCAT OCCURS 1000.
    INCLUDE STRUCTURE CSCMAT.
    DATA: END OF MATCAT.
    DATA: W_TOPMAT LIKE CSTMAT.
    SELECT-OPTIONS : P_MATNR FOR MAST-MATNR.
    PARAMETERS : P_WERKS TYPE MAST-WERKS.
    DATA : BEGIN OF ITAB OCCURS 0,
    MATNR LIKE MAST-MATNR,
    WERKS LIKE MAST-WERKS,
    END OF ITAB.
    DATA: IT_STB LIKE ISTPO OCCURS 0 WITH HEADER LINE.
    data : istpotemp like stpox occurs 0 with header line.
    data : istpofinal like stpox occurs 0 with header line.
    START-OF-SELECTION.
    CLEAR ISTPO. REFRESH ISTPO.
    SELECT MATNR WERKS FROM MAST INTO TABLE ITAB
    WHERE MATNR IN P_MATNR AND WERKS = P_WERKS.
    LOOP AT ITAB.
    CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
    EXPORTING
    CAPID = 'PP01'
    MEHRS = 'X'
    MMAPS = ' '
    MDMPS = ' '
    BREMS = 'X'
    DISMM = ' '
    LIFNR = ' '
    WEBAZ = ' '
    DATUV = SY-DATUM
    MTNRV = ITAB-MATNR
    WERKS = P_WERKS
    EMENG = '1'
    STKKZ = ' '
    FBSTP = ' '
    FTREL = ' '
    IMPORTING
    TOPMAT = W_TOPMAT
    TABLES
    STB = ISTPO
    MATCAT = 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
    OTHERS = 8.
    WRITE: / W_TOPMAT-MATNR UNDER TEXT-H00 COLOR COL_HEADING,
    W_TOPMAT-MAKTX UNDER TEXT-H01 COLOR COL_HEADING.
    sort istpo by index descending.
    loop at istpo.
    WRITE :/ ISTPO-POSNR,
    ISTPO-IDNRK,
    ISTPO-OJTXP,
    ISTPO-MENGE,
    ISTPO-MEINS,
    endloop.
    refresh istpo.
    endloop.

    HI,
            i got the workcenter also,but i need to classify
    if the material procurment type is E OR X CHECK FOR routing details
    or else if its F THEN pick the vendor and uom -PLPO-VGE01,PLPO-PLIFZ.
    how shall i implement this
    Regards
    ds

Maybe you are looking for