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

Similar Messages

  • 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

  • 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

  • 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.

  • 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

  • How about this implementation of BOM Explosion(simulate stack)

    REPORT  YZWX00301_06 LINE-SIZE  142
                         LINE-COUNT 65
                         MESSAGE-ID YM1
                         NO STANDARD PAGE HEADING .
    INCLUDE
    INCLUDE: YXXI00050.
    *TABLES use table define
    TABLES: MARA,        " Material General Table
            MARC,        " Plant Data for Material
            MDMA,        " MRP Area table
            EORD,        " Vendor table
            A018,        " Vendor material mapping table
            KONP,        " Vendor condition table
            MAST,        " Material BOM table
            STPO,        " Material BOM Component table
            STAS.        " Material BOM Component table detail
    *CONSTANTS define
    CONSTANTS:
      C_DAT_X        TYPE C VALUE 'X',
      C_MODE         LIKE dxfields-fileoper VALUE 'R',
      C_MASK         LIKE dxfields-filemask VALUE '.',
      C_FLG_LOCATION TYPE C VALUE 'A',
      C_DFPATH(15)   TYPE C VALUE '\bmwx\'.
    Work Area Define
    ---- build stack structure -
    DATA: BEGIN OF WK_STACK,
            LEVEL(1)      TYPE C,            "Save Level
            QUANT         TYPE I,            "Save Quantity
          END OF WK_STACK.
    ---- BOM work area -
    DATA: BEGIN OF WK_BOM,
             LEVEL(1)     TYPE C,            "BOM LEVEL
             MATNR        LIKE MARC-MATNR,   "MATERIAL      18
             POSTP        LIKE STPO-POSTP,   "ITEM CATEGORY  1
             MENGE        LIKE STPO-MENGE,   "BOM COMPONENT 13
             DATUV        LIKE STPO-DATUV,   "VALID FROM    10
             DATUB        LIKE STPO-DATUV,   "VALID TO      10
    END OF WK_BOM.
    ---- DATA work area -
    DATA: BEGIN OF DATAITEM,
             LEVEL(1)     TYPE C,            "BOM LEVEL
             MATNR        LIKE MARC-MATNR,   "MATERIAL
             POSTP        LIKE STPO-POSTP,   "ITEM CATEGORY
             MENGE        LIKE STPO-MENGE,   "BOM COMPONENT
             DATUV        LIKE STPO-DATUV,   "VALID FROM!!!
             DATUB        LIKE STPO-DATUV,   "VALID TO
             EKGRP        LIKE MARC-EKGRP,   "PURCHASE ORG
             LIFNR        LIKE EORD-LIFNR,    "Vendor code     10
             MARK(1)      TYPE C,             "Mark
             KBETR        LIKE KONP-KBETR,    "Rate price      11
             KONWA        LIKE KONP-KONWA,    "Currency        5
             KPEIN        LIKE KONP-KPEIN,    "Unit Qty        5
             KMEIN        LIKE KONP-KMEIN,    "Condition Unit  3
             DATAB        LIKE A018-DATAB,    "Condition from  10
             DATBI        LIKE A018-DATBI,    "Condition to    10
           END OF DATAITEM.
    ---- File Line work area -
    DATA: BEGIN OF LINE,
             WERKS(4)     TYPE C,                               "Plaint   4
             MATNR(18)    TYPE C,             "Material Number 18
             EKGRP(3)     TYPE C,             "Purchase Group  3
             LIFNR(10)    TYPE C,             "Vendor code     10
             VDATU        LIKE EORD-VDATU,    "Vendor valid from 10
             BDATU        LIKE EORD-BDATU,    "Vendor valid to   10
             MARK(1)      TYPE C,             "Mark
             KSCHL(4)     TYPE C,             "Condition type  4
             KBETR(18)    TYPE C,             "Rate price      11
             KPEIN(5)     TYPE C,             "Rate unit       5
             KONWA(5)     TYPE C,             "Currency        5
             KMEIN(3)     TYPE C,             "Condition Unit  3
             DATAB        LIKE A018-DATAB,    "Condition from  10
             DATBI        LIKE A018-DATBI,    "Condition to    10
           END OF LINE.
    *Local Data Object Define
    DATA:  WK_CNT TYPE I,                   "Count variable
           WK_LVL TYPE I,                   "BOM level
           WK_QTY TYPE I.                   "BOM component qty
    DATA: WK_LIFNR LIKE EORD-LIFNR,
          WK_MATNR LIKE MARC-MATNR.
    *Internal Table define
    DATA TAB_STACK LIKE STANDARD TABLE OF WK_STACK.   "STACK TABLE
    DATA TAB_BOM   LIKE STANDARD TABLE OF WK_BOM.     "FOR BOM
    DATA TAB_DATA  LIKE STANDARD TABLE OF DATAITEM.   "FOR ALL
    Parameter in Block1
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.         "TITLE TEXT-001.
    PARAMETERS:
      P_WERKS LIKE MARC-WERKS DEFAULT 'WX01',              "Plant
      P_STLTY LIKE STPO-STLTY DEFAULT 'M',                 "BOM Category
      P_MATNR LIKE MARC-MATNR OBLIGATORY,                  "Material
      P_STDAT LIKE EORD-VDATU OBLIGATORY DEFAULT SY-DATUM. "Standard Date
    SELECTION-SCREEN END OF BLOCK B1.
    Parameter in Block2
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: P_SCREEN RADIOBUTTON GROUP R1.     "Screen output
    SELECTION-SCREEN COMMENT 03(21) TEXT-001.
    SELECTION-SCREEN POSITION 32.
    PARAMETERS: P_FILE RADIOBUTTON GROUP R1.       "NTFILE output
    SELECTION-SCREEN COMMENT 34(17) TEXT-002.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK B2.
    Parameter in Block3
    SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME.
    PARAMETERS:
    P_NTFILE(45)  TYPE C    LOWER CASE OBLIGATORY.
      P_PCFILE      LIKE RLGRAP-FILENAME.
    SELECTION-SCREEN END   OF BLOCK B3.
    INITIALIZATION
    INITIALIZATION .
      CLEAR :  WK_CNT,
               WK_LVL,
               WK_QTY,
               WK_MATNR,
               WK_STACK,
               WK_BOM,
               DATAITEM.
      WK_LVL = 0.
      WK_QTY = 1.
      REFRESH: TAB_STACK,
               TAB_DATA,
               TAB_BOM.
    *&      AT SELECTION-SCREE ON VALUE-REQUEST
    *AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_NTFILE.
    PERFORM F_SHOW_FILE_POPUP CHANGING P_NTFILE.       "Popup display
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PCFILE.
      PERFORM F_FILENAME_GET USING P_PCFILE
                          CHANGING P_PCFILE.
    *&      Form  F_FILENAME_GET
      --> ST_DAT_PATH     : Preset path
      <-- ST_DAT_FILENAME : Selected file name
    FORM F_FILENAME_GET USING st_dat_path
                     CHANGING st_dat_filename.
      CALL FUNCTION 'WS_FILENAME_GET'
        EXPORTING
          def_filename     = SPACE
          def_path         = st_dat_path
          mask             = ',.,.,'
          mode             = '0'
          title            = 'TXT-file select'
        IMPORTING
          filename         = st_dat_filename
        EXCEPTIONS
          inv_winsys       = 1
          no_batch         = 2
          selection_cancel = 3
          selection_error  = 4
          OTHERS           = 5.
      IF sy-subrc <> 0.
        MESSAGE s002(yf1) WITH 'F_FILENAME_GET' sy-subrc.
      ENDIF.
    ENDFORM.                    "F_FILENAME_GET
    MAIN PROCESS
    START-OF-SELECTION.
    ---- Check material -
      PERFORM CHECK_PROD.
    ---- get vendor data -
      PERFORM GET_VENDOR_DATA.
    ---- output screen/file -
      IF P_SCREEN = 'X'.
        PERFORM SET_OUTPUT.            "Output to screen directly
      ELSEIF P_FILE = 'X'.
        IF P_PCFILE <> ''.
          PERFORM DOWNLOAD_DATA.       "Write data into ntfile
        ELSE.
          MESSAGE E007(00) WITH 'P_PCFILE'.
        ENDIF.
      ENDIF.
    END-OF-SELECTION.
      ULINE (142).
      WRITE: /002 'Component Material Count:', WK_CNT.
    TOP-OF-PAGE
    TOP-OF-PAGE.
      WRITE: /002 'Product:', 013 P_MATNR,
              030 '****** BOM Price List ******',
              070 SY-DATUM,
              095 'PAGE:',
              100 SY-PAGNO.
      ULINE (142).
      WRITE: /001   '|Level',
              007   '|Material',
              026   '|Cat',
              030   '|Quantity',
              044   '|From',
              055   '|To',
              066   '|PurG',
              071   '|Vendor',
              082   '|MK',
              085   '|Price',
              101   '|Crncy',
              107   '|UnitQty',
              115   '|Unit',
              120   '|From',
              131   '|To',
              142   '|'.
      ULINE (142).
    *&FORM CHECK_PROD
    text
    -->p1      text
    <--p2      text
    FORM CHECK_PROD.
      SELECT SINGLE * FROM MARC
                     WHERE WERKS = P_WERKS           " Plant
                     AND   MATNR = P_MATNR           " Material
                     AND   DISPR IN ('F100','F200'). " Product
      IF SY-SUBRC = 0.
        PERFORM CHECK_BOM1 USING MARC-MATNR MARC-WERKS. " CHECK_BOM1
      ELSE.
        MESSAGE E022.
      ENDIF.
    ENDFORM.                                         " CHECK_PROD
    *&FORM CHECK_BOM1
    text
    -->p1      text
    <--p2      text
    FORM CHECK_BOM1 USING VALUE(FP_MATNR) VALUE(FP_WERKS).
      SELECT SINGLE * FROM  MAST
                      WHERE MATNR = FP_MATNR     AND      "Material
                            WERKS = FP_WERKS.             "Plant
      IF SY-SUBRC = 0.
        PERFORM PUSH_STACK USING WK_LVL WK_QTY.   "Save parent attribute
        PERFORM CHECK_BOM2 USING MAST-STLNR.                    "Check BOM2
      ENDIF.
    ENDFORM.                                                    "CHECK_BOM1
    *&FORM CHECK_BOM2
    text
    -->p1      text
    <--p2      text
    FORM CHECK_BOM2 USING VALUE(FP_STLNR).
      SELECT * FROM  STPO
               WHERE STLTY = P_STLTY        AND        "BOM category
                     STLNR = FP_STLNR.                 "BOM number
        PERFORM POPOUT_WK.                  "Pop out to work area
        WK_BOM-LEVEL = WK_LVL.              "Current BOM level
        WK_BOM-MATNR = STPO-IDNRK.          "Material number
        WK_BOM-POSTP = STPO-POSTP.          "ITEM Category
        WK_QTY       = STPO-MENGE * WK_QTY. "For Stack
        WK_BOM-MENGE = WK_QTY.              "BOM Component qty
        PERFORM CHECK_BOM3 USING STPO-STLTY STPO-STLNR STPO-STLKN.
        PERFORM CHECK_BOM1 USING STPO-IDNRK P_WERKS.
      ENDSELECT.
      PERFORM POPOUT_STACK.
    ENDFORM.                                                    "CHECK_BOM2
    *&FORM CHECK_BOM3
    text
    -->p1      text
    <--p2      text
    FORM CHECK_BOM3 USING VALUE(FP_STLTY) VALUE(FP_STLNR) VALUE(FP_STLKN).
      SELECT SINGLE * FROM  STAS
                      WHERE STLTY = FP_STLTY        "BOM category
                      AND   STLNR = FP_STLNR        "BOM number
                      AND   STLKN = FP_STLKN        "BOM item
                      AND   DATUV <= P_STDAT        "Valid from
                      AND   LKENZ = ' ' .           "Valid
      IF SY-SUBRC = 0.
        WK_BOM-DATUV = STAS-DATUV.                  "Valid from
      ENDIF.
      SELECT SINGLE * FROM  STAS
                      WHERE STLTY = FP_STLTY        "BOM category
                      AND   STLNR = FP_STLNR        "BOM number
                      AND   STLKN = FP_STLKN        "BOM item
                    AND   DATUV > P_STDAT         "Valid from
                      AND   LKENZ = 'X' .           "Invalid
      IF SY-SUBRC = 0.
        SELECT SINGLE * FROM  STAS
                       WHERE STLTY = FP_STLTY        "BOM category
                       AND   STLNR = FP_STLNR        "BOM number
                       AND   STLKN = FP_STLKN        "BOM item
                       AND   DATUV > P_STDAT         "Valid from
                       AND   LKENZ = 'X' .           "Invalid
        IF SY-SUBRC = 0.
          WK_BOM-DATUB = STAS-DATUV.          "Valid to
          APPEND WK_BOM TO TAB_BOM.
        ENDIF.
      ELSE.
        WK_BOM-DATUB = '99991231'.          "Manul input
        APPEND WK_BOM TO TAB_BOM.
      ENDIF.
    ENDFORM.                                                    "CHECK_BOM3
    *&FORM PUSH_STACK
    text
    -->p1      text
    <--p2      text
    FORM PUSH_STACK USING VALUE(FP_LVL) VALUE(FP_QTY).
      WK_STACK-LEVEL = FP_LVL + 1.
      WK_STACK-QUANT = FP_QTY.
      APPEND WK_STACK TO TAB_STACK.    "Push stack
      SORT TAB_STACK BY LEVEL.         "Sort table by level
    ENDFORM.                           "PUSH_STACK
    *&FORM PUSH_STACK
    text
    -->p1      text
    <--p2      text
    FORM POPOUT_STACK.
      DESCRIBE TABLE TAB_STACK LINES WK_CNT.
      IF WK_CNT > 0.
        DELETE TAB_STACK INDEX WK_CNT.     "Popout stack
        SORT TAB_STACK BY LEVEL.           "Sort table by level
      ENDIF.
    ENDFORM.                               "POPOUT_STACK
    *&FORM POPOUT_WK
    text
    -->p1      text
    <--p2      text
    FORM POPOUT_WK.
      DESCRIBE TABLE TAB_STACK LINES WK_CNT.
      IF WK_CNT > 0.
        READ TABLE TAB_STACK INTO WK_STACK INDEX WK_CNT.   "Popout stack
        IF SY-SUBRC = 0.
          WK_LVL = WK_STACK-LEVEL.                         "Current Level
          WK_QTY = WK_STACK-QUANT.                         "Parent Qty
        ENDIF.
      ENDIF.
    ENDFORM.                    "POPOUT_WK
    *&FORM DOWNLOAD_DATA
    text
    -->p1      text
    <--p2      text
    FORM DOWNLOAD_DATA.
      DATA: L_RETURN     TYPE   SY-SUBRC.
      PERFORM GUI_DOWNLOAD
                  TABLES
                     TAB_DATA
                  USING
                     P_PCFILE
                     'X'
                  CHANGING
                     L_RETURN.
      IF L_RETURN <> 0.
        MESSAGE S020.
      ELSE.
        MESSAGE S021.
      ENDIF.
    ENDFORM.                    " DOWNLOAD_DATA
    *&FORM GET_VENDOR_DATA
    text
    -->p1      text
    <--p2      text
    FORM GET_VENDOR_DATA.
      LOOP AT TAB_BOM  INTO WK_BOM.
        CLEAR DATAITEM.
        SELECT * FROM MARC
                WHERE WERKS = P_WERKS             "Plant
                  AND MATNR = WK_BOM-MATNR.       "Material
          DATAITEM-EKGRP = MARC-EKGRP.
          SELECT SINGLE * FROM  MARA
                          WHERE MATNR = MARC-MATNR    AND   "Material number
                                MTART IN ('1211','1221').
          IF SY-SUBRC = 0.
            SELECT COUNT(*) FROM  EORD
                           INTO  (WK_CNT)
                     WHERE WERKS  = P_WERKS        AND  "Plaint
                           MATNR  = WK_BOM-MATNR   AND  "Material
                           VDATU <= P_STDAT        AND  "Valid-From
                           BDATU >  P_STDAT.            "Valid-To
            IF WK_CNT > 1.
              DATAITEM-MARK = '*'.
            ELSEIF WK_CNT = 0.
              MOVE-CORRESPONDING WK_BOM TO DATAITEM.
              APPEND DATAITEM TO TAB_DATA.
            ENDIF.
            SELECT * FROM  EORD
                     WHERE WERKS  = P_WERKS        AND  "Plaint
                           MATNR  = WK_BOM-MATNR   AND  "Material
                           VDATU <= P_STDAT        AND  "Valid-From
                           BDATU >  P_STDAT.            "Valid-To
              MOVE-CORRESPONDING WK_BOM TO DATAITEM.
              DATAITEM-LIFNR  = EORD-LIFNR.             "Vendor code
              SELECT  * FROM  A018
                        WHERE LIFNR  =  EORD-LIFNR  AND  "Vendor code
                              MATNR  =  EORD-MATNR  AND  "Material
                              EKORG  =  EORD-EKORG  AND  "Purchase org
                              DATAB <=  P_STDAT     AND  "Valid-from
                              DATBI >   P_STDAT.         "Valid-to
                DATAITEM-DATAB = A018-DATAB.    "Condition From
                DATAITEM-DATBI = A018-DATBI.    "Condition To
                IF SY-SUBRC = 0.
                  SELECT * FROM  KONP
                           WHERE KNUMH = A018-KNUMH   AND   "Cnd Number
                                 KSCHL = A018-KSCHL   AND   "Cnd Type
                                 KAPPL = A018-KAPPL.        "Cnd Cat
                    DATAITEM-KBETR = KONP-KBETR.            "Price
                    DATAITEM-KONWA = KONP-KONWA.            "Currency
                    DATAITEM-KPEIN = KONP-KPEIN.            "Price Unit
                   DATAITEM-KMEIN = KONP-KMEIN.            "Unit of Material
                    APPEND DATAITEM TO TAB_DATA.            "Append TAB_DATA
                  ENDSELECT.
                ENDIF.
              ENDSELECT.
            ENDSELECT.
          ELSE.
            MOVE-CORRESPONDING WK_BOM TO DATAITEM.
            APPEND DATAITEM TO TAB_DATA.
          ENDIF.
        ENDSELECT.
        IF SY-SUBRC <> 0.
          MOVE-CORRESPONDING WK_BOM TO DATAITEM.
          APPEND DATAITEM TO TAB_DATA.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    "GET_DATA
    *&      Form  SET_OUTPUT
          text
    -->  p1        text
    <--  p2        text
    FORM SET_OUTPUT .
      CLEAR WK_CNT.
      LOOP AT TAB_DATA INTO DATAITEM.
        WRITE: /001   '|', 002 DATAITEM-LEVEL,   "Material Number
                007   '|', 008 DATAITEM-MATNR,   "Purchase Grp
                026   '|', 027 DATAITEM-POSTP,   "Item category
                030   '|', 031 DATAITEM-MENGE,   "BOM Component qty
                044   '|', 045 DATAITEM-DATUV,   "BOM valid from
                055   '|', 056 DATAITEM-DATUB,   "BOM valid to
                066   '|', 067 DATAITEM-EKGRP,   "Purchase Org
                071   '|', 072 DATAITEM-LIFNR,   "Vendor
                082   '|', 083 DATAITEM-MARK,    "Mark flag
                085   '|', 086 DATAITEM-KBETR,   "Price
                101   '|', 102 DATAITEM-KONWA,   "Currency
                107   '|', 108 DATAITEM-KPEIN,   "Unit Qty
                115   '|', 116 DATAITEM-KMEIN,   "Unit OM
                120   '|', 121 DATAITEM-DATAB,   "Cnd From
                131   '|', 132 DATAITEM-DATBI,   "Cnd To
                142   '|'.
        WK_CNT = WK_CNT + 1.
      ENDLOOP.
    ENDFORM.                    " SET_OUTPUT

    Prabhu Peram,
    Thanks very much.
    I want to show an idea of BOM explosion by constructing a stack.
    BOM explosion uses first-root-searching and pushes the "root" material into stack.If the "root" has no left-child,pops out the "root" material and searchs the right-child....and completes the entire BOM explosion.
    Message was edited by:
            Mic chen
    Message was edited by:
            Mic chen

  • BOM Explosion needed on PO and/or Delivery for Stock Transfer PO Process

    Good afternoon,
      I have been researching the SDN and web for a solution to my problem to no avail so far. 
    The business problem I need to solve is the requirement for our STPO process to explode certain BOM's that are transfered from one company/plant to another company/plant in order to record batch/serial # component information by the delivering plant on the delivery and verification of the batch/serial # in the receiving plant during MIGO processing of the delivery.  This is needed by our Service Mgmt department in order to track servicable items within the Finished Good (medical devices industry).
    It appears on the SDN that a BOM can not be exploded on a non-Subcontracting PO (which would be ideal for us), but barring this problem, we are trying to have the BOM explode in the Delivery created from the STPO via the VL10B transaction.
    The STPO generates a Delivery doc with type NLCC and item category NLC.  I have maintained the material master for the BOM material to have an Item Category Group of ERLA, and I have modified Item Category Determination in configuration in Logistics Execution for deliveries to include ERLA, usage V, and NLC as default item category.  But, the deliveries generated from the STPO still do not explode, like what normally happens if the delilvery of the BOM was created from a standard Order.
    The components for the BOM need to be displayed on the Delivery (if not the STPO), so the cleark can record the Batch/Serial #'s for each component.  Then when the receiving plant posts the Goods Receipt for the delivery a user exit we have (based on movement type and material document code) builds a Service Mgmt table that is then processed to De-install the BOM and components from the former plant and install the BOM and components at the receiving plant (and then subsequently at the ultimate customer's location when a normal sale is made), generating a new Functional Location.
    Has anyone here had to do anything like this before?  Would any of you have any ideas on how this BOM explosion might work on the PO or Delivery?
    Thanks in advance.
    Scott.

    No responses to this question.
    Subject dropped.

  • BOM Explosion needed on Delivery for Intercompany Stock Transfer Order

    Good afternoon,
    I have been researching the SDN and web for a solution to my problem to no avail so far.
    The business problem I need to solve is the requirement for our STPO process to explode certain BOM's that are transfered from one company/plant to another company/plant in order to record batch/serial # component information by the delivering plant on the delivery and verification of the batch/serial # in the receiving plant during MIGO processing of the delivery. This is needed by our Service Mgmt department in order to track servicable items within the Finished Good (medical devices industry).
    It appears on the SDN that a BOM can not be exploded on a non-Subcontracting PO (which would be ideal for us), but barring this problem, we are trying to have the BOM explode in the Delivery created from the STPO via the VL10B transaction.
    The STPO generates a Delivery doc with type NLCC and item category NLC. I have maintained the material master for the BOM material to have an Item Category Group of ERLA, and I have modified Item Category Determination in configuration in Logistics Execution for deliveries to include ERLA, usage V, and NLC as default item category. But, the deliveries generated from the STPO still do not explode, like what normally happens if the delilvery of the BOM was created from a standard Order.
    The components for the BOM need to be displayed on the Delivery (if not the STPO), so the cleark can record the Batch/Serial #'s for each component. Then when the receiving plant posts the Goods Receipt for the delivery a user exit we have (based on movement type and material document code) builds a Service Mgmt table that is then processed to De-install the BOM and components from the former plant and install the BOM and components at the receiving plant (and then subsequently at the ultimate customer's location when a normal sale is made), generating a new Functional Location.
    Has anyone here had to do anything like this before? Would any of you have any ideas on how this BOM explosion might work on the PO or Delivery?
    Thanks in advance.
    Scott.

    No responses to this question.
    Subject dropped.

  • BOM explosion in subcontracting PR

    Hi...
    I have one issue of BOM explosion in subcontracting PR.
    I have created BOM, routing & PV. Production version maintained in info record.
    While creating manaul subcontracting PR , BOM is not exploded giving error message as "Not possible to determine any components".
    I have checked validity of BOM, PV found ok.
    Also Proc. type X & Spl. proc type 30 maintained.
    Any suggestion to the problem appreciated
    Regards
    Tushar

    Dear Tushar,
    Check this link
    [Sub contracting PO - BOM components are not seen;
    Regards
    Madhu

  • How to restrict BOM explosion in Quotation and Sales  Order

    Dear all,
    How can we restrict BOM main item explosion in Sales Order.
    this BOM main item is having special order items which have to generate purchase requisition (item category - BANC),
    with out exploding bom main item, can we generate a  purchase requisition for BOM subitems, can any body explain me that how can we do that.
    your suggestions will be highly appreciated.
    thank you
    Raghu Ram

    Hi Raghu Ram,
    The BOM explosion is controlled by item category.
    In the item category configuration screen, under "Bills of Material/ Configuration", you can see "Structure Scope" field.
    Select the one which is applicable to your case:-
    "blank" - Do not explode material structure
    A - Explode single-level BOM
    B - Explode multi-level BOM
    C - Configuration, no BOM explosion
    D - Configuration, poss. with BOM explosion
    E - Structure from Customer_Function (product selection)
    Hope this helps
    Regards,
    Nicole

Maybe you are looking for

  • Non-english character display as square box

    Hi all, I'm not very sure if this question should be asked here or in the JRE board, thus I'm trying here also I have been trying an opensourced application called Alliancep2p (could be obtained from www.alliancep2p.com) using JRE 1.6 on an English W

  • Thinkpad W520 - Win7 - Bluetooth device not recognized by Windows 7/64

    The W520 does have Bluetooth. Had it before, I was able to switch it on/off by the Fn/F5 switch. But I did something "stupid" and deleted something  I was not supposed to, which I can not recall. Dumb me. -reinstalled Lenovo and Intel network drivers

  • Planned production order

    Hello Every body Based on sales order a planned production order has to be made which is not getting generated. Please let me know where exactly the problem would be. As far as Item category is concerned there is no problem but has it to do some thin

  • Clients roaming in and out of coverage area

    Hi, I am currently getting reports from my user base that they are having to re-authenticate every 5 min's. They claim this is happening when using our visitor network which is a webauth based setup with a 4 hour session time out. My thinking on this

  • Saving logo for web – What's an Illy thread doing here?

    This thread: http://forums.adobe.com/thread/470690?tstart=0 Is in the Illustrator forum... so, why is it here? Are the threads now starting to bridge the continuum?