Regarding BOM report

Hi friends,
     If anyone have developed ALV report for Bill Of Material.than pls give me sample code....
Material A
   Mterial B
     Material C

thank for reply.that i know..but how to find multiples level BOM.........like
material A
subcomponent B
subcomponent D
subcomponent F
subcomponent G
subcomponent E
subcomponent H
subcomponent B

Similar Messages

  • BOM Report without drill down

    Hello,
    I am trying to create a BOM report where the user inputs the father item and all the other child items are displayed below it, Including the childs of other father items inside the BOM.
    Has anyone done this before ?
    Some BOMs items are made of other BOMs.
    Kind Regards,

    Hi,
    Let's think together,
    1. We have the list of the WH journal in the OINM table, and we can filter it as production transactions....
    2. We have the bacth transaction details in IBT1 table, and we can link this table to the OINM....
    select T0.ItemCode, T0.InQty, T0.OutQty , T1.BatchNum
    from oinm T0 inner join ibt1 T1 on T0.ItemCode =  T1.ItemCode and T0.Warehouse = T1.WhsCode and T0.TransType = T1.BaseType and T0.CreatedBy = T1.BaseEntry and T0.DocLineNum = T1.BaseLinNum
    where T0.applobj = '202'
    3. We have a reqursive query which gives as the list of the subcomponents...
    So combine them
    Let's modify the prevoius stored procedure.....
    Alter Procedure BoomTree(@itemcode nvarchar(20))
    AS
    BEGIN
    WITH BOM (Code) AS
    SELECT     ROOT.Code as Code
    FROM         dbo.OITT AS ROOT
    WHERE     ROOT.Code =  @itemcode
    UNION ALL
    SELECT     CHILD.Code
    FROM         dbo.ITT1 AS CHILD
    JOIN BOM ON CHILD.Father = BOM.Code
    select T0.ItemCode, T0.InQty, T0.OutQty
    , T1.BatchNum
    from oinm T0
    inner join ibt1 T1 on T0.ItemCode =  T1.ItemCode and T0.Warehouse = T1.WhsCode and T0.TransType = T1.BaseType and T0.CreatedBy = T1.BaseEntry and T0.DocLineNum = T1.BaseLinNum
    where T0.applobj = '202'
    and T0.ItemCode in (select code from BOM)
    OPTION (MAXRECURSION 10); -- Handles 10 levels dept of BOM
    RETURN
    END
    GO
    exec boomtree 'P0001'
    So it was easy.....
    Regards,
    J.

  • Color to header materail field in BOM report

    hi experts,
    I am doing BOM report in that header material of BOM and their component i moved in same field but
    i cant identity which one is a header material (MAST-MATNR)  and which one is a componental (STPO-IDNRK)  so, I want to color for header material.
    Plz send me reply earliest.
    Thanks,
    Jyotsna

    Hi,
    As you can make out the header material for BOM, so for a header material you will be having number of component materials.
    Then can check whenever a header material is encountered and can use colors in classical reports.
    Hope this helps you.
    Regards,
    Tarun

  • BOM Report to view BOM vaildity date

    Hi All,
             Is there any standard BOM report where i can view the BOM - valid from date and vaild to date ?
    Regards,
    PSS

    Hi,
    You will get Valid from date from many BOMs table both at header level and item level but the default valid to date will be 31.12.9999, and you will not get the value till you delete the BOM either at header level or at item level.
    Once you delete the BOm or item within BOM then this deletion date will become vaild to date and this will be available in concerns tables.
    With change number also valid to date will not be capture till you delete the BOMs ot items within the BOM with the change number.
    You can only work with header items using production versions  valid from and valid to date and restrict the validity of the BOM.
    Regards
    TAJUDDIN

  • Descrepency in BOM Report

    Dear All
    Please clarify the following discrepancy I found in BOM report in one of my Customer database:
      Schenario - 1
          Parent Item A  --  Qty 1 kg
                Child Item B  --  Qty 1.2 kg
           Parent Item B  --  Qty 1 kg
                  Child Item C  --  Qty 1.2 kg
    When BOM report is processed  and system displays following which is correct :
        Item A  --  1 kg
           Item B  --  1.2 kg
              Item C  --   1.44 kg
    Schenario - 2
    Now they changed the BOM of Item B as follow :
         Parent Item B  --  2 kg
                Child Item C  --  7 kg
    Again BOM report is processed and system displays following containing wrong value for Item B :
          Item A  --  1 kg
              Item B  --  0.6 kg
                  Item C  --  4.2 kg
    Since1 kg of Item A requires 1.2 kg of Item B as per BOM defined so in case of Schenario - 2 it should show the same in this case also. Also requirement of Item C of 4.2 kg will also produce 1.2 kg of Item B and not 0.6 kg as shown by the system.
    Please clarify this anamoly.
    Thanks & with regards
    S K Ganguly

    Dear Gordon / Swaijis
    I am not convinced in Gordons point as user will be confused to see the report though working will not hamper. My point is with respect to BOM report and not with the process of Production routine.
    And for Swaijis -- have you enterd my values of 2nd schenario i.e. Quanityt of Parent item of Child BOM should not have unit (1) quantity but more than unit i.e. 2 or 3 etc. and accordingly quantity of child items of this parent to be changed.
    Now you take the BOM report of Parent Item of Parent Item of child item and explode it. You will find error in the report.
    Thanks & with regards
    S K Ganguly

  • BOM reports using a group of Materials

    Hi all
    I am looking at standard SAP BOM reports CS11, CS12, CS13. All of them require that I enter a Material number. Do we have standard reports where we can look at BOM using a generic group of materials example where multiple selection of materials is allowed, or selecting BOMs using for all materials belonging to a material group etc.
    thanks a lot

    Hi John,
    There are no Standard reports available for BOM.
    You may consider creating a query or an ABAP report.
    If you are planning to develop a report you may use the Function module CSAP_MAT_BOM_READ which will list the BOM for a material in Internal tables
    Regards,
    Jayakandan

  • Modification of BOM Report! (CS03 )

    Dear Experts,
    Actually iam required to add an additional field in to a standard BOM Report i.e. CS03
    In this report the requirement is to have the additional field for 'stock quantity' available.
    Now in order to accomplish this i need to have a custom BOM Report so that i can manipulate according to my requirements,
    I humbly request all the experts to help me by giving me the code snippet and any guidelines if possible.
    Regards,
    Parwez.

    Dear Mr Vinayak
    I request you to kindly guide me as how can we use BADI-CEWB_BOM_CUS_FIELDS , so that in standard report using CS03  we can have additional field like "Stock Quantity" .
    Sir, It will be great help , if you can pl send me the detail procedure to be followed for this .
    Regards
    B Mittal

  • 'Valid to' dates for both the Header & the components in the BOM report.

    Hi Experts,
    My Requirement:
    Need to display the 'Valid to' dates for both the Header & the components in the BOM report.
    Right now we are using the Functional modules 'GET_STKO' & 'GET_STPO' for the header
    & the components respectively. The report gives the correct output for the all the BOM alternatives
    which exist. But for the BOM alternatives which have been deleted(updated in STKO-LKENZ)
    'Valid to' dates are displayed as'00/00/0000'.
    (Note:ECM is used for BOMs)
    Is there any Logical Database that I can fetch the 'Valid to' dates of both BOM Header & components
    which are deleted?
    Regards,
    Mahesh

    Dear Mahesh,
    In my understanding I dont think you cannot get the valid to date for BOM header,unless a ECN,(engineering change number) is
    used to set the deletion flag.In otherwords none of the business sets for all these BOM's the valid to date(which means the
    default valid to date 31.12.9999 is taken).
    Check with this FM, CS_BOM_EXPL_MAT_V2 whether can you get the valid to date for the components(infact here also the
    valid from date given in the input screen impacts the report output).
    Check and revert back.
    Regards
    Mangalraj.S

  • BOM Report - List Prices

    Hello, i'm new to the forum and to SBO.
    i've searched the entire forum for this answer:
    I wan't to know if it's possible to display on the BOM report all the child item prices when the Parent item is expanded.
    Thank you for your help, and i hope to learn as much as possible and contribute to theis excellent forum for SBO.
    Regards,
    GuillermoL.-

    Hello Gordon!
    I'm glad to see your replied to my posts, i've been around as a guest viewing your posts and i've seen you help so many people, inluding me.
    There is only one more level below the parent item (Level 2), and i need to display the parent item price and those level 2 child items price, but i also have several Price Lists, so i need to be able to select The price list too.
    Thank you in advanced.
    Best Regards,
    Guillermo.-

  • BOM Reports

    Hi Experts..
    I have udf in Item Master Data as Drg No. & I want to get this udf in BOM Reports.
    Thanks in Advance..
    Regards,
    Ravi

    Hi RAVI_JHA_SAP ,
    i have a solution to your problem.
    1.create a UDF under BOM rows ( DRG_NO)
    2. then create a FMS that will compare the value of Items selected in the BOM row into your Item master data. after doing this  select the value of the DRG No and inser the OITM and insert it into you created UDF in the BOM row.
    3. set auto refresh on Item row in BOM.
    Hope you can use this workaround.
    Thank you!
    Best Regards,
    Darius Gragasin

  • Help needed regarding ALV report

    Hi,
    I have a query regarding ALV report.
    The requirement is as follows:-
    When the user executes the ALV report and if he sums one numeric field column values and filters out some of the field columns ( for example there r 5 columns in the report and the user has filtered out 2 of them and viewing only 3 columns)
    and now the requirements is that when the user runs the report later he should see the modified report ( i mean only 3 cloumns and the total value of the column which he has made) but not the original output which was there when the report was developed.
    First of all i wanna know is it possible to do r not. If yes then how
    Hope u have got what i want.
    eagerly waiting for ur reply.
    regards,
    maqsood

    Hi
    Yes you can! You have to manage the layout variant.
    So when you call your ALV you have to set the parameter I_SAVE = 'A'.
    In this way you'll allow the user to save the variants for layout.
    After you has to have a chance to choose the variant in selection-screen.
    See the demo program BCALV_GRID_11 to manage the variant in selection-screen.
    Max

  • Regarding Interactive reports

    Hi All,
    Yesterday i submitted a query regarding Interactive reports.and i recieved lots of reply .But the replies are all about ALV interactive report.I want to know just about the interactive reports where ew use AT LINE OF SELECTION, HIDE e.c.
    PLZ send methe documents related that.
    Thanks and Regards
    RASHMI

    Hi
    Interactive Reports
    As the name suggests, the user can Interact with the report. We can have a drill down into the report data. For example, Column one of the report displays the material numbers, and the user feels that he needs some more specific data about the vendor for that material, he can HIDE that data under those material numbers. And when the user clicks the material number, another report (actually sub report/secondary list) which displays the vendor details will be displayed.
    We can have a basic list (number starts from 0) and 20 secondary lists (1 to 21). Events associated with Interactive Reports are: 1. AT LINE-SELECTION 2. AT USER-COMMAND 3. AT PF<key> 4. TOP-OF-PAGE DURING LINE-SELECTION. HIDE statement holds the data to be displayed in the secondary list. sy-lisel : contains data of the selected line. sy-lsind : contains the level of report (from 0 to 21)
    Interactive Report Events:
    AT LINE-SELECTION : This Event triggers when we double click a line on the list, when the event is triggered a new sublist is going to be generated. Under this event what ever the statements that are been return will be displayed on newly generated sublist.
    AT PFn: For predefined function keys...
    AT USER-COMMAND : It provides user functions keys.
    REPORT ZTEJ_INTAB1 LINE-SIZE 103 LINE-COUNT 35(5) NO STANDARD PAGE
    HEADING.
    *TABLES DECLARATION
    TABLES : KNA1, VBAK, VBAP.
    *SELECT OPTIONS
    SELECT-OPTIONS: CUST_NO FOR KNA1-KUNNR.
    *INITIALIZATION
    INITIALIZATION.
    CUST_NO-LOW = '01'.
    CUST_NO-HIGH = '5000'.
    CUST_NO-SIGN = 'I'.
    CUST_NO-OPTION = 'BT'.
    APPEND CUST_NO.
    *SELECTION SCREEN VALIDATION
    AT SELECTION-SCREEN ON CUST_NO.
    LOOP AT SCREEN.
    IF CUST_NO-LOW < 1 OR CUST_NO-HIGH > 5000.
    MESSAGE E001(ZTJ1).
    ENDIF.
    ENDLOOP.
    *BASIC LIST SELECTION
    START-OF-SELECTION.
    SELECT KUNNR NAME1 ORT01 LAND1 INTO
    (KNA1-KUNNR, KNA1-NAME1,KNA1-ORT01,KNA1-LAND1)
    FROM KNA1
    WHERE KUNNR IN CUST_NO.
    WRITE:/1 SY-VLINE,
    KNA1-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
    16 SY-VLINE,
    KNA1-NAME1 UNDER 'NAME',
    61 SY-VLINE,
    KNA1-ORT01 UNDER 'CITY',
    86 SY-VLINE,
    KNA1-LAND1 UNDER 'COUNTRY',
    103 SY-VLINE.
    HIDE: KNA1-KUNNR.
    ENDSELECT.
    ULINE.
    *SECONDARY LIST ACCESS
    AT user-command.
    IF SY-UCOMM = 'IONE'.
    PERFORM SALES_ORD.
    ENDIF.
    IF SY-UCOMM = 'ITWO'.
    PERFORM ITEM_DET.
    ENDIF.
    *TOP OF PAGE
    TOP-OF-PAGE.
    FORMAT COLOR 1.
    WRITE : 'CUSTOMER DETAILS'.
    FORMAT COLOR 1 OFF.
    ULINE.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'CUSTOMER NO.',
    16 SY-VLINE,
    18 'NAME',
    61 SY-VLINE,
    63 'CITY',
    86 SY-VLINE,
    88 'COUNTRY',
    103 SY-VLINE.
    ULINE.
    FORMAT COLOR 3 OFF.
    *TOP OF PAGE FOR SECONDARY LISTS
    TOP-OF-PAGE DURING LINE-SELECTION.
    *TOP OF PAGE FOR 1ST SECONDARY LIST
    IF SY-UCOMM = 'IONE'.
    ULINE.
    FORMAT COLOR 1.
    WRITE : 'SALES ORDER DETAILS'.
    ULINE.
    FORMAT COLOR 1 OFF.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'CUSTOMER NO.',
    16 SY-VLINE,
    18 'SALES ORDER NO.',
    40 SY-VLINE,
    42 'DATE',
    60 SY-VLINE,
    62 'CREATOR',
    85 SY-VLINE,
    87 'DOC DATE',
    103 SY-VLINE.
    ULINE.
    ENDIF.
    FORMAT COLOR 3 OFF.
    *TOP OF PAGE FOR 2ND SECONDARY LIST
    IF SY-UCOMM = 'ITWO'.
    ULINE.
    FORMAT COLOR 1.
    WRITE : 'ITEM DETAILS'.
    ULINE.
    FORMAT COLOR 1 OFF.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'SALES ORDER NO.',
    40 SY-VLINE,
    42 'SALES ITEM NO.',
    60 SY-VLINE,
    62 'ORDER QUANTITY',
    103 SY-VLINE.
    ULINE.
    ENDIF.
    FORMAT COLOR 3 OFF.
    *END OF PAGE
    END-OF-PAGE.
    ULINE.
    WRITE :'USER :',SY-UNAME,/,'DATE :', SY-DATUM, 85 'END OF PAGE:',
    SY-PAGNO.
    SKIP.
    *& Form SALES_ORD
    *& FIRST SECONDARY LIST FORM
    FORM SALES_ORD .
    SELECT KUNNR VBELN ERDAT ERNAM AUDAT INTO
    (VBAK-KUNNR, VBAK-VBELN, VBAK-ERDAT, VBAK-ERNAM, VBAK-AUDAT)
    FROM VBAK
    WHERE KUNNR = KNA1-KUNNR.
    WRITE:/1 SY-VLINE,
    VBAK-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
    16 SY-VLINE,
    VBAK-VBELN UNDER 'SALES ORDER NO.' HOTSPOT ON,
    40 SY-VLINE,
    VBAK-ERDAT UNDER 'DATE',
    60 SY-VLINE,
    VBAK-ERNAM UNDER 'CREATOR',
    85 SY-VLINE,
    VBAK-AUDAT UNDER 'DOC DATE',
    103 SY-VLINE.
    HIDE : VBAK-VBELN.
    ENDSELECT.
    ULINE.
    ENDFORM. " SALES_ORD
    *& Form ITEM_DET
    *& SECOND SECONDARY LIST FORM
    FORM ITEM_DET .
    SELECT VBELN POSNR KWMENG INTO
    (VBAP-VBELN, VBAP-POSNR, VBAP-KWMENG)
    FROM VBAP
    WHERE VBELN = VBAK-VBELN.
    WRITE : /1 SY-VLINE,
    VBAP-VBELN UNDER 'SALES ORDER NO.',
    40 SY-VLINE,
    VBAP-POSNR UNDER 'SALES ITEM NO.',
    60 SY-VLINE,
    VBAP-KWMENG UNDER 'ORDER QUANTITY',
    103 SY-VLINE.
    ENDSELECT.
    ULINE.
    ENDFORM. " ITEM_DET
    REPORT demo_list_at_pf.
    START-OF-SELECTION.
    WRITE 'Basic List, Press PF5, PF6, PF7, or PF8'.
    AT pf5.
    PERFORM out.
    AT pf6.
    PERFORM out.
    AT pf7.
    PERFORM out.
    AT pf8.
    PERFORM out.
    FORM out.
    WRITE: 'Secondary List by PF-Key Selection',
    / 'SY-LSIND =', sy-lsind,
    / 'SY-UCOMM =', sy-ucomm.
    ENDFORM.
    After executing the program, the system displays the basic list. The user can press the function keys F5 , F6 , F7 , and F8 to create secondary lists. If, for example, the 14th key the user presses is F6 , the output on the displayed secondary list looks as follows:
    Secondary List by PF-Key Selection
    SY-LSIND = 14
    SY-UCOMM = PF06
    Example for AT USER-COMMAND.
    REPORT demo_list_at_user_command NO STANDARD PAGE HEADING.
    START-OF-SELECTION.
    WRITE: 'Basic List',
    / 'SY-LSIND:', sy-lsind.
    TOP-OF-PAGE.
    WRITE 'Top-of-Page'.
    ULINE.
    TOP-OF-PAGE DURING LINE-SELECTION.
    CASE sy-pfkey.
    WHEN 'TEST'.
    WRITE 'Self-defined GUI for Function Codes'.
    ULINE.
    ENDCASE.
    AT LINE-SELECTION.
    SET PF-STATUS 'TEST' EXCLUDING 'PICK'.
    PERFORM out.
    sy-lsind = sy-lsind - 1.
    AT USER-COMMAND.
    CASE sy-ucomm.
    WHEN 'FC1'.
    PERFORM out.
    WRITE / 'Button FUN 1 was pressed'.
    WHEN 'FC2'.
    PERFORM out.
    WRITE / 'Button FUN 2 was pressed'.
    WHEN 'FC3'.
    PERFORM out.
    WRITE / 'Button FUN 3 was pressed'.
    WHEN 'FC4'.
    PERFORM out.
    WRITE / 'Button FUN 4 was pressed'.
    WHEN 'FC5'.
    PERFORM out.
    WRITE / 'Button FUN 5 was pressed'.
    ENDCASE.
    sy-lsind = sy-lsind - 1.
    FORM out.
    WRITE: 'Secondary List',
    / 'SY-LSIND:', sy-lsind,
    / 'SY-PFKEY:', sy-pfkey.
    ENDFORM.
    When you run the program, the system displays the following basic list with a the page header defined in the program:
    You can trigger the AT LINE-SELECTION event by double-clicking a line. The system sets the status TEST and deactivates the function code PICK. The status TEST contains function codes FC1 to FC5. These are assigned to pushbuttons in the application toolbar. The page header of the detail list depends on the status.
    Here, double-clicking a line no longer triggers an event. However, there is now an application toolbar containing five user-defined pushbuttons. You can use these to trigger the AT USER-COMMAND event. The CASE statement contains a different reaction for each pushbutton.
    For each interactive event, the system decreases the SY-LSIND system field by one, thus canceling out the automatic increase. All detail lists now have the same level as the basic list and thus overwrite it. While the detail list is being created, SY-LSIND still has the value 1.
    Regards
    Anji

  • BOM report on Production order

    Dear All,
    I need to make BOM report as per production order.
    Very helpfull for me if any FM for that?
    I need also the table where I can get the relation of that.
    Can anybody help me?
    Thanks in advance.

    hi
    hope it 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 Report with Alternative Items

    Hello Experts,
    I am trying to write a query of BOM Report with the first Alternative Item (from OALI)
    Your help please..
    Thank You
    Meitalmo

    Then what is this report using for? Check this to start:
    SELECT T0.Father, CASE WHEN T1.OrigItem IS NULL THEN T0.Code ELSE T1.AltItem END as 'Item No.', Case WHEN T1.OrigItem IS NULL THEN T2.ItemName ELSE T3.ItemName END 'Item Description'
    FROM dbo.ITT1 T0
    LEFT JOIN dbo.OALI T1 ON T1.OrigItem = T0.Code
    LEFT JOIN dbo.OITM T2 ON T2.ItemCode = T0.Code
    LEFT JOIN dbo.OITM T3 ON T3.ItemCode = T1.AltItem
    WHERE T0.Father = '[%0\]'

  • BOM report in R/3

    Hi, are there any R/3 BOM reports that will detail the <b>current</b> BOM for a range of materials not just one material?. Need to output the results to .xls

    OK, I choose "order tree" and I get a pop-up message:
    "Order tree for the first procurement element PrdOrd 000009200002/PP04/Re is displayed"
    with a long text containing:
    <i><b>Diagnosis</b>
    The order tree for an MRP element is to be displayed. However, no MRP element was selected in the list.
    <b>Procedure</b>
    If you wish to display the order tree for a different MRP element, select the MRP element in this list by placing the cursor in the respective list. Then choose the function 'Switch to order tree'.</i>
    As a result I get a tree with a node corresponding to a production order number which in turn contains a single subnode corresponding to the material BOM. That's all. No components of the BOM appear.
    I've tried various clicking combinations (according to the message long text) - still I can't see any way to get a view of components as you say.
    regards

Maybe you are looking for

  • Mbean Null  /// PermGen // Manifest.mf  --- Many many errors.

    Hello, im setting up, an Liferay 6.1.1 on an WebLogic 11G all based on Linux Redhead. At the moment i get this error after 5 hours using Google, it still cant help me with MBean null errors :-/ My problem: Weblogic installtion was succesfull and with

  • Restful Webservice -- Page Not Found

    Using the web service wizard in SQL workshop, I have created a simple Restful web service using a GET request of Media Resource Type. The SQL statement gets the mime_type and a blob value from a table via an ID parameter. The code works fine in my st

  • Auto-insert digital signature

    Using LCD 8.1 Is it possible to generate a non-interactive form with a digital signature already in-place? We're generating invoices out of SAP and need to have a digital signature in place when we email the PDF to our vendor. The digital signature w

  • RecipeFox doesn't work because of Java issues when I have Java installed

    Recipe Fox grabit has been working but now I keep getting message that I need to install Java when it's already installed. This appears to be after a Firefox update.

  • Pass Records to Oracle Reports

    Hi, Lets say that I've already fetched a set of records on Oracle Form, I want to pass these records to a Report " on the Report I don't wana use range or where clause to give me these records" In other way I just want to pass these records on the re