Report For BOM Amendment

Dear Sir,
We have Make-To-Order scenario . Our BOM is multilevel one . We are required to develop a Report showing the details related to Changes Made in the BOM during a Period .
The Report contain the information :
Item Code   ,   Old Quantity , Amended Quantity , Amendment Date
I request SAP experts to kindly guide me as how to develop such a Report please .
With Thanks and Regards
S M Mittal

PL refer two tables CDHRD and CDPOS
Input for CDHRD is
Object name is client number,BOM type,BOM number - example 070M00000006.
You will get the details of BOM type and BOM number in MAST.
from CDHRD you will get Document number which you have to pass it to CDPOS to get the data of component changed.
In STPO if you enter the data, you will get the details of item
table key-XXXMYYYYYYAAAAAAABBBBBB
XXX  client number
M - BOM type- STPO-STLTY
YYYYYY - STPO-STLNR
AAAAAAA - STPO-STLKN
BBBBBB  - STPO-STPOZ
I hope you got it, if required come back

Similar Messages

  • The standard report for BOMs of a material with a selected period?

    Hi Gurus
    Is there any  standard report for BOMs of a material with a selected period?

    Hi,
    You will have to develop a report for your requirement,
    The following tables will be used for the report
    MAST-WERKS
    STPO-MATNR
    MARA-MAKTX
    STPO-BMENG
    STPO-POSNR
    STPO-IDNRK
    STPO-MAKTX
    STPO-DATUV
    STPO-MENGE
    STKO-MEINS
    STPO-AVOAU
    Regards
    Merwyn

  • Customized report for BOM changes

    Hi PP Gurus,
    My client is not having ECM. he want to create one Z report for BOM changes. I checked tables MAST, STKO, STPO, CDPOS and CDHDR. In CDPOS I can see replaced component and replced quantity. But if I deleted any component or inserted any new component I can not see this in any table. Please suggest me how can I track such changes without ECM.
    Jayesh Narvankar
    SAP PP

    Dear ,
    You can try to develope a report with the help of you ABAPer with following FM /BAPI :
    CSAP_MAT_BOM_MAINTAIN
    CSAP_MAT_BOM_OPEN
    CSAP_BOM_ITEM_MAINTAIN
    CSAP_MAT_BOM_CLOSE
    Refer this experts theards on this issues : Deletion of BOM item using BAPI/FM
    If you need to go ahead with ECM , you refer  our earlier posting in the same issue :
    Changes in Production Orders
    Regards
    JH

  • Report for BOM materials

    Dear Experts,
    i have scenario which i need to capture but do not have any standard report and for that reason i am going in for Z development of the reports. please guide me so as to which field to be pulled to get the desired output.
    Scenario:
    We create Purchase order with a version control
    1. First version has the data which act as baseline and we want to compare rest of the  versions as variance
    2. If the line item in PO is a subcontracting material with L- then the subcomponents will be present as a BOM
    3. when i ammend the PO for the Qty the BOM items also get ammended but do not reflect in the version control - display changes
    4. I want to capture the PO with each line item against which there is qty change and also the material BOM change due to qty change.
    Is there any table from which i capture the data.
    Pl. help me out it would be of great help
    Thanks & Regards,
    Farhan

    Hi
    the following tables might be useful
    MAST
    STKO - Header Table of BOM
    STPO - Item Level for BOM
    MAKT
    regards
    maniraj

  • Std report for BOM : Reg.

    Hi experts,
         I need to display the materials along with the BOM of those materials with its quantity and its total price while user give the vendor name and date range as input.
    Is there any std report for the same? Try to give apt solution on it.
    Thanks and Regards
    Raaam's...

    Hi,
    CS12 is to get multi-level BOM report. You can insert satndard price field and vendor filed into the layout and you can filter it within the report itself.
    But what if you have several sources of supply and several prices (in info records!) for your goods? And this report can display only the multi-level BOM of one single material...
    If you want a transaction described by you, you should develop an own report in ABAP - I guess...
    You can post this thread in PP forum as well but I'm afraid there's no such kind of standard report in SAP...
    BR
    Csaba

  • BDC report for BOM master

    can any body help me to do one bdc for
    BOM master?? i m doing this first time so i need some input
    thanks well in advance.
    points ll be rewarded...
    Message was edited by:
            soumya shekhar

    hi
    good
    When you try to create, you would find a pushbutton 'INSERT NEW LINES' or something simialr to enter your data in the next line. Say you're entering the Material inthe first row, its field position would be MARA-MATNR(01). Now when you click the Insert Pushbitton the cursor always is at positon 2. so you have to loop the remaining data to enter in MARA-MATNR(02). Yougenereally set a counter and pass that counter value (in this case the counter value is 2 always)
    The other case when you don't have a push button to Insert. Enter all the rows and then do a Page down. Now your cursor would sit back at position 2 again. Say if there are 20 rows in the first screen. You would keep incrementing the counter and then when it is 21 you do a pagedown and then reset the counter to 2. You loop the pagedown and in it you loop the counter.
    I have attached a BDC where I use the second case (no push button). Do a recording and then you would know all the answers by yourself.
    *& REPORT ZPP0122 *
    *& Module : PP |
    *& Application : The program loads the Material Assignment of Routings |
    *& |
    REPORT zpp0122 NO STANDARD PAGE HEADING
    MESSAGE-ID z0
    LINE-SIZE 132
    LINE-COUNT 65(2).
    Internal Tables *
    *Internal table for the Routing fields.
    DATA: BEGIN OF i_rout OCCURS 0,
    plnnr(8),
    plnal(2),
    matnr(18),
    werks(4),
    END OF i_rout.
    DATA:
    g_my_rec_in LIKE i_rout.
    Declare internal table for Call Transaction and BDC Session
    DATA: i_bdc_table LIKE bdcdata OCCURS 0 WITH HEADER LINE.
    Global Variables *
    DATA: g_counter(2) TYPE n,
    g_field_name(18) TYPE c,
    zc_yes TYPE syftype VALUE 'X'.
    Selection Screen *
    SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.
    PARAMETERS: p_fname1 TYPE localfile .
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.
    PARAMETERS: p_rloc1 AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-005.
    PARAMETERS p_group(12) OBLIGATORY DEFAULT 'ZROUTING'.
    SELECTION-SCREEN END OF BLOCK c.
    SELECTION-SCREEN END OF BLOCK b.
    SELECTION-SCREEN END OF BLOCK a.
    **WRITE the report header
    TOP-OF-PAGE.
    INCLUDE zheading.
    Start of selection *
    START-OF-SELECTION.
    Load Input file
    PERFORM f_load_input_file.
    Create BDC records.
    PERFORM create_bdc_records .
    *& Form Create_BDC_records
    perform the BDC for the records in the internal table
    FORM create_bdc_records .
    IF NOT i_rout[] IS INITIAL.
    Open BDC session
    PERFORM open_bdc_session.
    LOOP AT i_rout.
    g_my_rec_in = i_rout.
    AT NEW plnnr.
    CLEAR i_bdc_table[].
    PERFORM insert_screen_header.
    ENDAT.
    CONCATENATE 'MAPL-PLNAL(' g_counter ')' INTO g_field_name.
    PERFORM bdc_field USING g_field_name i_rout-plnal.
    CONCATENATE 'MAPL-MATNR(' g_counter ')' INTO g_field_name.
    PERFORM bdc_field USING g_field_name i_rout-matnr.
    CONCATENATE 'MAPL-WERKS(' g_counter ')' INTO g_field_name.
    PERFORM bdc_field USING g_field_name i_rout-werks.
    PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
    g_counter = g_counter + 1.
    Page Down for further entries
    IF g_counter = 19.
    PERFORM bdc_field USING 'BDC_OKCODE' '=P+'.
    PERFORM bdc_dynpro USING 'SAPLCZDI' '1010'.
    g_counter = 2.
    ENDIF.
    AT END OF plnnr.
    PERFORM bdc_field USING 'BDC_OKCODE' '=BACK'.
    PERFORM bdc_dynpro USING 'SAPLCPDI' '1200'.
    PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
    PERFORM insert_bdc_new.
    ENDAT.
    ENDLOOP.
    CLEAR i_rout[].
    PERFORM close_bdc_session.
    Release the BDC sessions created
    PERFORM release_bdc.
    ENDIF.
    ENDFORM. " open_group
    *& Form bdc_dynpro_start
    Call the screen for the input of fields
    -->P_G_PROGRAM_1
    -->P_G_SCREEN
    FORM bdc_dynpro USING p_g_program_1
    p_g_screen.
    CLEAR i_bdc_table.
    i_bdc_table-program = p_g_program_1.
    i_bdc_table-dynpro = p_g_screen.
    i_bdc_table-dynbegin = 'X'.
    APPEND i_bdc_table.
    ENDFORM. " bdc_dynpro_start
    *& Form bdc_field
    Insert field *
    FORM bdc_field USING f_name f_value.
    IF f_value <> space.
    CLEAR i_bdc_table.
    i_bdc_table-fnam = f_name.
    i_bdc_table-fval = f_value.
    APPEND i_bdc_table.
    ENDIF.
    ENDFORM. "bdc_insert_field
    *& Form open_bdc_session
    Create the BDC session
    FORM open_bdc_session .
    Open BDC session and creat and update condition records
    CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
    client = sy-mandt
    DEST = FILLER8
    group = p_group
    HOLDDATE = FILLER8
    keep = 'X'
    user = sy-uname
    RECORD = FILLER1
    PROG = SY-CPROG
    IMPORTING
    QID =
    EXCEPTIONS
    client_invalid = 1
    destination_invalid = 2
    group_invalid = 3
    group_is_locked = 4
    holddate_invalid = 5
    internal_error = 6
    queue_error = 7
    running = 8
    system_lock_error = 9
    user_invalid = 10
    OTHERS = 11
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDFORM. " create_bdc_session
    *& Form insert_screen_header
    Header Data inserted
    FORM insert_screen_header .
    g_counter = 1.
    First screen
    PERFORM bdc_dynpro USING 'SAPLCPDI' '1010'.
    PERFORM bdc_field USING 'BDC_CURSOR' 'RC271-PLNNR'.
    PERFORM bdc_field USING 'BDC_OKCODE' '=ALUE'.
    PERFORM bdc_field USING 'RC271-PLNNR' g_my_rec_in-plnnr.
    PERFORM bdc_field USING 'RC27M-MATNR' ' '.
    PERFORM bdc_field USING 'RC27M-WERKS' ' '.
    PERFORM bdc_field USING 'RC271-PLNAL' ' '.
    *next screen
    PERFORM bdc_dynpro USING 'SAPLCPDI' '1200'.
    PERFORM bdc_field USING 'BDC_OKCODE' '=MTUE'.
    *next screen
    PERFORM bdc_dynpro USING 'SAPLCZDI' '1010'.
    ENDFORM. " insert_screen_header
    *& Form insert_bdc
    Insert the BDC for the transaction
    FORM insert_bdc_new .
    CALL FUNCTION 'BDC_INSERT'
    EXPORTING
    tcode = 'CA02'
    POST_LOCAL = NOVBLOCAL
    PRINTING = NOPRINT
    SIMUBATCH = ' '
    CTUPARAMS = ' '
    TABLES
    dynprotab = i_bdc_table
    EXCEPTIONS
    internal_error = 1
    not_open = 2
    queue_error = 3
    tcode_invalid = 4
    printing_invalid = 5
    posting_invalid = 6
    OTHERS = 7
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    CLEAR i_bdc_table[].
    ENDFORM. " insert_bdc
    *& Form close_bdc_session
    Close the session
    FORM close_bdc_session .
    CALL FUNCTION 'BDC_CLOSE_GROUP'
    EXCEPTIONS
    not_open = 1
    queue_error = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDFORM. " close_bdc_session
    *& Form f_load_input_file
    Load the data file
    FORM f_load_input_file.
    The data file is from Presentation server
    IF p_rloc1 = zc_yes.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
    filename = p_fname1
    filetype = 'DAT'
    TABLES
    data_tab = i_rout
    EXCEPTIONS
    conversion_error = 1
    file_open_error = 2
    file_read_error = 3
    invalid_type = 4
    no_batch = 5
    unknown_error = 6
    invalid_table_width = 7
    gui_refuse_filetransfer = 8
    customer_error = 9
    OTHERS = 10.
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    EXIT.
    ENDIF.
    ENDIF.
    ENDFORM. " f_load_input_file
    *& Form release_bdc
    Release BDC session
    FORM release_bdc.
    SUBMIT rsbdcsub WITH mappe EQ p_group
    WITH von EQ sy-datum
    WITH bis EQ sy-datum
    WITH fehler EQ '.'
    EXPORTING LIST TO MEMORY
    AND RETURN.
    ENDFORM.
    reward point if helpful.
    thanks
    mrutyun^

  • Report  for bom wise target and actual cost as well as qty at line item

    Dear Experts,
    Is there any standard tcode for bom wise target and actual cost as well as qty at line item level for the month.
    there is one tcode s_alr_87013127 but user has to double click in order to get line item details.
    I want to see line item wise breakup/bom wise target and cost cost as well as qty.
    Thanks in advance.
    regards
    RK

    Dear experts,
    I am still looking for a revert.
    regards
    RK

  • Report of BOM from pr

    Hi experts,
    I need to take report for BOm based on the PR number.
    My client is asking they have the PR number and they like to see the BOM.
    Kindly advice
    regards
    arun

    Hi Arun,
    pls explain in details for your question
    Regards,
    Sankaran

  • 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

  • Consumption Report for Production order(BOM)

    Hi All
    Is there any option to see consumption reports for any particular BOM.

    Hi Richa,
    Unfortunately there is no such a report in SBO. But you can write a report to show the consumption of BOMs using the Query Generator or Wizard. (Thus no SDK work is required).

  • Purchase reports for components of production BOM Based on Its Sales BOM

    Hi all
    I have sales BOM and the components of Sales BOM are production items having Production BOM and the components of production BOM are purchase items
    My problem is when i create a sales order for my Sales BOM, i should be able to get a report for purchase items that is how much i have to purchase with out using MRP
    pls anyone help me with approbriate queries
    Thanks and Regards
    Boopathi.T

    Hi Boopathi,
    You may try this one:
    SELECT Distinct T1.Code, SUM(T0.Quantity * T1.Quantity) 'PO Qty', T2.DocNum
    FROM dbo.RDR1 T0
    INNER JOIN dbo.OITT T3 ON T3.TreeType = 'S' AND T3.Code = T0.ItemCode
    INNER JOIN dbo.ITT1 T1 ON T1.Father = T3.Code
    INNER JOIN dbo.ORDR T2 ON T2.DocEntry = T0.DocEntry
    WHERE T2.DocNum LIKE '[%0\]%'
    GROUP BY T1.Code, T2.DocNum
    Thanks,
    Gordon

  • I need help in Report for production orders for my customer.

    Hi All
    I have scenario where plant A needs the following report for Material XXX which has setting as Stock Trnasfer order from Plant B.
    Need report withthe following details, Storage Unit number, Material No, Quantity, Planned Order Date in plant A,  Date Produced in plant B, Date Received by Plant A. 
    Please tell me if there is any standard report to take the following details. Scenario is that the header material YYY in Plant A has one material XXX as BOM component. Now this material has setting as Stock transfer from Plant B. On creating a plan order for Header material it will create a Plan order in plant B for component XXX. The above said detail is required for component XXX in plant A.

    Dear
    Did you explore the report in CO46-Order Progress Report based on Sales Order /Material /Production Order
    Or COOIS/COHV  for your requirement.Here you can get the Planned Order Details and also Production Order Details .
    Regards
    JH
    Edited by: Jiaul Haque on Sep 27, 2010 2:57 PM

  • Period Balance Report for Actual/ Commitment only

    Hi,
    Do we have any report for getting Periodic balance for cost Centre Actual and commitment Balances.
    Regards,
    Venkat

    If there is not a specific YtD report, then it is easy to create one: Using the report painter, copy the existinf report, and amend the columns to reflect not the current month, but from the 1st period to the current month.

  • REPORT FOR SUBCONTRACTING

    DEAR FRIENDS,
    I am making a program for tracking the materials given (mb1b 541 movt.) for subcontracting and taken by me (101 for actual good receipt, 543 for the given material- stock type inward, 545 for the scrap returns). but while i made the program i am unable to pick up the materials BOM from the PO which is essential to take the difference between these and the supplied quantities taken-in by GR.
    following is the program.
    Please suggest the changes.   Thanks,
    Deepak
    *& Report  ZMM_SUBCONTRACTING_PO_REPORT
    *& Author:
    *& Date  :
    *& Reason: Sub Contracting PO Report.
    *&         Find Discreprancy in PO and BOM. according to 543 and 545
    REPORT  ZMM_SUBCONTRACTING_PO_REPORT NO STANDARD PAGE HEADING
                                         LINE-SIZE 157.
    *& TABLES DECLARATION
    TABLES: EKKO,
            EKPO,
            EKBE,
            ENT5303.
    *& SELECTION-SCREEN.
    SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_MATNR FOR EKPO-MATNR,
                    S_WERKS FOR EKBE-WERKS OBLIGATORY.
    PARAMETERS:     P_BUKRS LIKE EKKO-BUKRS OBLIGATORY.
    SELECT-OPTIONS: S_BUDAT FOR EKBE-BUDAT OBLIGATORY,
                    S_EBELN FOR EKKO-EBELN,
                    S_BELNR FOR EKBE-BELNR,
                    S_GJAHR FOR EKBE-GJAHR.
    SELECTION-SCREEN: END OF BLOCK B1.
    *& INTERNAL TABLES DECLARATION.
    DATA: BEGIN OF IT_EKKO OCCURS 0,
          EBELN LIKE EKKO-EBELN,
          END OF IT_EKKO.
    DATA: BEGIN OF IT_EKBE OCCURS 0,
          EBELN LIKE EKBE-EBELN,
          EBELP LIKE EKBE-EBELP,
          GJAHR LIKE EKBE-GJAHR,
          BELNR LIKE EKBE-BELNR,
          BUZEI LIKE EKBE-BUZEI,
          BEWTP LIKE EKBE-BEWTP,
          BWART LIKE EKBE-BWART,
          BUDAT LIKE EKBE-BUDAT,
          MENGE LIKE EKBE-MENGE,
          DMBTR LIKE EKBE-DMBTR,
          LFBNR LIKE EKBE-LFBNR,
          MATNR LIKE EKBE-MATNR,
          WERKS LIKE EKBE-WERKS,
          BUKRS LIKE WB2_V_EKKO_EKPO2-BUKRS,
          MENGE_I LIKE WB2_V_EKKO_EKPO2-MENGE_I,
          LIFNR LIKE WB2_V_EKKO_EKPO2-LIFNR,
          COUNT TYPE P DECIMALS 4,
          BMENGE LIKE EKBE-MENGE,
          MENGE101 LIKE EKBE-MENGE,
          MENGE543 LIKE EKBE-MENGE,
          MENGE545 LIKE EKBE-MENGE,
          DIFFER   LIKE EKBE-MENGE,
          TMENGE   LIKE EKBE-MENGE,
          RATE     LIKE EKBE-DMBTR,
          NAME1 LIKE LFA1-NAME1,
          LINE_COLOR(4),
          END OF IT_EKBE.
    DATA: WA LIKE IT_EKBE.
    DATA: BEGIN OF IT_FINAL OCCURS 0.
          INCLUDE STRUCTURE IT_EKBE.
    DATA: END OF IT_FINAL.
    DATA: BEGIN OF IT_FINAL_TEMP OCCURS 0.
          INCLUDE STRUCTURE IT_EKBE.
    DATA: END OF IT_FINAL_TEMP.
    DATA: BEGIN OF IT_BOM OCCURS 0.
          INCLUDE STRUCTURE CAPP_ITM.
    DATA: END OF IT_BOM.
    DATA: BEGIN OF IT_BOM_HEAD OCCURS 0.
          INCLUDE STRUCTURE CAPP_BOM.
    DATA: END OF IT_BOM_HEAD.
    *& DATA DECLARATION.
    DATA: COUNT TYPE P DECIMALS 4,
          V_CNT TYPE P DECIMALS 4 VALUE '0.0001' ,
          V_MENGE LIKE EKBE-MENGE,
          V_DELETE.
    TYPE-POOLS: slis.
    DATA:  l_date(12) TYPE c,
           l_date1(12) TYPE c,
           l_time(10) TYPE c,
           l_list(60) TYPE c.
    DATA:  CATALOG TYPE SLIS_FIELDCAT_ALV, "FIELDCAT
           TCATALOG TYPE SLIS_T_FIELDCAT_ALV, "IT FIELDCAT
           EVENT TYPE SLIS_ALV_EVENT, "EVENT
           TEVENT TYPE SLIS_T_EVENT,  "IT EVENT
           LAYOUT TYPE SLIS_LAYOUT_ALV, "LAYOUT
           PG_TOP TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
           PG_HEAD TYPE SLIS_T_LISTHEADER,
           EXIT1  TYPE SLIS_EXIT_BY_USER,
           VAR1 LIKE DISVARIANT,
           VAR2 LIKE DISVARIANT.
    *& START-OF-SELECTION.
    START-OF-SELECTION.
    PERFORM PROCESS_SELECTION.
    PERFORM DELETE_CANCELLED_DOCUMENTS.
    PERFORM EXPLODE_BOM_FOR_101.
    SORT IT_FINAL BY COUNT.
    PERFORM DISPLAY_OUTPUT.
    FREE IT_FINAL_TEMP.
    *& ALV FORMATTING
    *&                  ALV DISPLAY
      PERFORM GENERATE_ALV_FIELDCAT.
    PERFORM EVENTS USING TEVENT.
    PERFORM TEXT USING PG_HEAD.
      PERFORM ALV_SHOW.
    *& FORM PROCESS_SELECTION.
    FORM PROCESS_SELECTION.
    SELECT
      A~EBELN
      A~EBELP
      A~GJAHR
      A~BELNR
      A~BUZEI
      A~BEWTP
      A~BWART
      A~BUDAT
      A~MENGE
      A~DMBTR
      A~LFBNR
      A~MATNR
      A~WERKS
      B~BUKRS
      B~MENGE_I
      B~LIFNR
    FROM
      EKBE AS A
    JOIN
      WB2_V_EKKO_EKPO2 AS B
    ON
      AEBELN = BEBELN AND
      AEBELP = BEBELP_I
    INTO
      CORRESPONDING FIELDS OF TABLE IT_EKBE
    WHERE
    A~MATNR IN S_MATNR AND
      A~WERKS IN S_WERKS AND
      A~BUDAT IN S_BUDAT AND
      A~EBELN IN S_EBELN AND
      A~BELNR IN S_BELNR AND
      A~GJAHR IN S_GJAHR AND
      A~VGABE IN ('1', '7') AND
      A~BEWTP IN ('E', 'O') AND
      ( A~BWART IN ('101', '545', '543') OR
      ( ABWART = '102' AND ABEWTP = 'E' ) ) AND
      B~BUKRS = P_BUKRS AND
      B~BSTYP = 'F' AND
      B~BSART = 'SUBC'."AND
    B~LOEKZ <> 'X'.
    SORT IT_EKBE BY EBELN EBELP GJAHR BELNR BUZEI.
    ENDFORM.
    *& FORM DELETE_CANCELLED_DOCUMENTS.
    FORM DELETE_CANCELLED_DOCUMENTS.
    DELETE IT_EKBE WHERE BWART = '102' AND BEWTP <> 'E'.
    LOOP AT IT_EKBE WHERE BWART = '102'.
      READ TABLE IT_EKBE INTO WA WITH KEY BELNR = IT_EKBE-LFBNR.
      IF SY-SUBRC = 0.
        DELETE IT_EKBE WHERE BELNR = WA-BELNR.
      ENDIF.
    ENDLOOP.
    CLEAR WA.
    DELETE IT_EKBE WHERE BWART = '102'.
    ENDFORM.
    *& FORM EXPLODE_BOM_FOR_101.
    FORM EXPLODE_BOM_FOR_101.
    CLEAR COUNT.
    LOOP AT IT_EKBE WHERE BWART = '101' OR
                          BWART = '543'.
    IF NOT IT_EKBE-MATNR IN S_MATNR.
      V_DELETE = 'X'.
    ELSE.
      CLEAR V_DELETE.
    ENDIF.
    IF V_DELETE <> 'X'.
    COUNT = COUNT + 1.
    IT_EKBE-COUNT = COUNT.
    V_MENGE = IT_EKBE-MENGE.
    MODIFY IT_EKBE.
    IT_FINAL = IT_EKBE.
    APPEND IT_FINAL.
    ENDIF.
      call function 'CABM_READ_BOM'
        exporting
          I_MATNR               = IT_EKBE-MATNR
          I_WERKS               = IT_EKBE-WERKS
          I_STLAL               = '01'
          I_STLAN               = '3'
          I_DATUV               = IT_EKBE-BUDAT
        TABLES
          EXP_BOM_DATA          = IT_BOM_HEAD
          EXP_ITM_DATA          = IT_BOM
       EXCEPTIONS
         NO_RECORD_FOUND       = 1
         OTHERS                = 2
      if SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
    *START RK 18.06.2007
      DELETE IT_BOM WHERE DATUV > IT_EKBE-BUDAT.
    END : 18.06.2007
        IF V_DELETE = 'X'.
          LOOP AT IT_BOM.
            DELETE IT_EKBE WHERE MATNR = IT_BOM-IDNRK.
          ENDLOOP.
          REFRESH IT_BOM.
        ELSE.
          PERFORM CHECK_BOM_GR.
        ENDIF.
      endif.
    ENDLOOP.
    FREE IT_EKBE.
    ENDFORM.
    *& FORM CHECK_BOM_GR.
    FORM CHECK_BOM_GR.
    DATA: WACNT TYPE P DECIMALS 4.
    WACNT = COUNT.
    LOOP AT IT_BOM.
      READ TABLE IT_EKBE INTO WA WITH KEY EBELN = IT_EKBE-EBELN
                                          MATNR = IT_BOM-IDNRK.
      IF SY-SUBRC = 0.
        WACNT = WACNT + V_CNT.
        WA-COUNT = WACNT.
        WA-BMENGE = IT_BOM-MENGE.
        WA-TMENGE = V_MENGE.
        APPEND WA TO IT_FINAL.
        DELETE IT_EKBE WHERE EBELN = WA-EBELN AND
                             EBELP = WA-EBELP AND
                             MATNR = WA-MATNR AND
                             BELNR = WA-BELNR AND
                             BUZEI = WA-BUZEI.
    **START : ADDED BY .... KUMAR ON 14.06.2007
      ELSE.
        WACNT = WACNT + V_CNT.
        WA-COUNT = WACNT.
        WA-BMENGE = IT_BOM-MENGE.
        WA-MATNR  = IT_BOM-IDNRK.
        WA-TMENGE = V_MENGE.
        APPEND WA TO IT_FINAL.
    **END ADDED BY .... KUMAR ON 14.06.2007
      ENDIF.
    CLEAR WA.
    ENDLOOP.
    REFRESH IT_BOM.
    ENDFORM.
    *& FORM DISPLAY_OUTPUT.
    FORM DISPLAY_OUTPUT.
    Populate color variable with colour properties
    Char 1 = C (This is a color property)
    Char 2 = 3 (Color codes: 1 - 7)
    Char 3 = Intensified on/off ( 1 or 0 )
    Char 4 = Inverse display on/off ( 1 or 0 )
              i.e. wa_ekko-line_color = 'C410'
    IT_FINAL_TEMP[] = IT_FINAL[].
    LOOP AT IT_FINAL.
    CLEAR IT_FINAL-DMBTR.
    ********added by .... .... on 17.02.2007
       if it_final-bmenge  < 0.
    IT_FINAL-DIFFER = IT_FINAL-TMENGE * IT_FINAL-BMENGE * -1.
       else.
    *********end by .... .... on 17.02.2007
    IT_FINAL-DIFFER = IT_FINAL-TMENGE * IT_FINAL-BMENGE.
    ********added by .... .... on 17.02.2007
    endif.
    *********end by .... .... on 17.02.2007
      IF IT_FINAL-BWART = '101'.
        IT_FINAL-LINE_COLOR = 'C210'.
        IT_FINAL-MENGE101 = IT_FINAL-MENGE.
        IT_FINAL-DIFFER = 0.
        LOOP AT IT_FINAL_TEMP WHERE BELNR = IT_FINAL-BELNR AND
                                    EBELN = IT_FINAL-EBELN AND
                                    EBELP = IT_FINAL-EBELP.
          IF IT_FINAL_TEMP-BWART <> '545'.
            IT_FINAL-DMBTR = IT_FINAL-DMBTR + IT_FINAL_TEMP-DMBTR.
          ELSE.
            IT_FINAL-DMBTR = IT_FINAL-DMBTR - IT_FINAL_TEMP-DMBTR.
          ENDIF.
        ENDLOOP.
        IT_FINAL-RATE = IT_FINAL-DMBTR / IT_FINAL-MENGE101.
        SELECT SINGLE
          NAME1
        INTO
          IT_FINAL-NAME1
        FROM
          LFA1
        WHERE
          LIFNR = IT_FINAL-LIFNR.
        IF SY-SUBRC <> 0.
          CLEAR IT_FINAL-NAME1.
        ENDIF.
      ELSEIF IT_FINAL-BWART = '543'.
        IT_FINAL-MENGE543 = IT_FINAL-MENGE.
        IT_FINAL-LINE_COLOR = 'C200'.
        IT_FINAL-DIFFER = IT_FINAL-DIFFER - IT_FINAL-MENGE543.
        CLEAR: IT_FINAL-LIFNR,
              IT_FINAL-EBELN,
              IT_FINAL-BELNR,
              IT_FINAL-MENGE_I,
              IT_FINAL-BUDAT.
      ELSEIF IT_FINAL-BWART = '545'.
    ******added by .... on 17.02.2007
       IT_FINAL-MENGE = IT_FINAL-MENGE * -1.
        IT_FINAL-MENGE = IT_FINAL-MENGE.
    *******end by .... on 17.02.2007
        IT_FINAL-MENGE545 = IT_FINAL-MENGE.
        IT_FINAL-LINE_COLOR = 'C200'.
        IT_FINAL-DIFFER = IT_FINAL-DIFFER - IT_FINAL-MENGE545.
        CLEAR: IT_FINAL-LIFNR,
              IT_FINAL-EBELN,
              IT_FINAL-BELNR,
              IT_FINAL-MENGE_I,
              IT_FINAL-BUDAT.
      ELSE.
        IT_FINAL-LINE_COLOR = 'C200'.
        CLEAR: IT_FINAL-LIFNR,
              IT_FINAL-EBELN,
              IT_FINAL-BELNR,
              IT_FINAL-MENGE_I,
              IT_FINAL-BUDAT.
      ENDIF.
    MODIFY IT_FINAL.
    ENDLOOP.
    ENDFORM.
    *&      Form  GENERATE_ALV_FIELDCAT
          text
    FORM GENERATE_ALV_FIELDCAT.
    DATA: POS TYPE I.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'COUNT'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'S. No.'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'MATNR'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Mat. No.'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'BMENGE'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'BOM Qty'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'EBELN'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'PO No.'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'MENGE_I'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'PO Qty'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'BELNR'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Gr. No.'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      CATALOG-HOTSPOT = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'BUDAT'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'GR Date'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'MENGE101'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = '101 Gr Qty'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'MENGE543'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = '543 Gr Qty'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'MENGE545'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = '545 Gr Qty'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'DIFFER'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Difference'.
      CATALOG-NO_ZERO = ' '.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'LIFNR'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Vendor'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'NAME1'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Vendor Name'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'RATE'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Rate'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'DMBTR'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Value'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
    ENDFORM.
    *&      Form  ALV_SHOW
          text
    FORM ALV_SHOW.
      LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
      LAYOUT-BOX_TABNAME = 'IT_FINAL'.
      LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
      LAYOUT-ZEBRA = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = SY-REPID
          I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
          IS_LAYOUT               = LAYOUT
          IT_FIELDCAT             = TCATALOG
          IS_VARIANT              = VAR1
          I_SAVE                  = 'A'
          IT_EVENTS               = TEVENT[]
        TABLES
          T_OUTTAB                = IT_FINAL.
    ENDFORM .                    "ALV_SHOW
    *& FORM USER_COMMAND.
    FORM USER_COMMAND USING
              R_UCOMM LIKE SY-UCOMM
              SELFIELD TYPE SLIS_SELFIELD.
    DATA: TABIX LIKE SY-TABIX,
          WA LIKE IT_FINAL.
    TABIX = SELFIELD-TABINDEX.
    READ TABLE IT_FINAL INTO WA INDEX TABIX.
    IF NOT WA-BELNR IS INITIAL.
    set parameter id : 'MBN' FIELD WA-BELNR.
    CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN .
    ENDIF.
    ENDFORM.

    Hi,
    U can try this standard report for subcontracting:
    J1IFR (Transaction name),
    Not sure how much this will be useful to u.
    regards,
    Viji

  • Report for issuing componets to subcontracting materials

    Hi
    I am trynig to develop a report for issung components  to subcontacrting maerial
    as per our scenerio... every day we are creating purchase orders item cat L for subcontract material
                                      then issue the materials against to subcon. pur.order...then do GR with 101..
    as per our requirement...
    report input entries..like   1. subcon material code
                                 2.  from date --- to --- todate
    out put..for report..like.... total consumption of components with line item wise (as per bom) with that pertical period..
    for this any std. report is there  ?
    or  if  go for zreport....pls guide to me..
    any one can suggest to me
    thanku
    regards
    sesidhar

    HI,
    Certain set of inforamtion can be availed in MB51 and using 541 Mvt type..
    But it is better that you develop a zreport to get the information what you wanted if you are not satisfied with the MB51 report from standard SAP.
    Try MBLB also
    Thanks & Regards,
    Kiran

Maybe you are looking for

  • How can I see a list of the assets associated with a sequence?

    How can I see a list of the assets, both online and offline, associated with a sequence?

  • BDC Problem about call T-CODE BUG2

    hey every friends, I have a requirement about BDC process t-code BUG2. The requirement is as following: Update the value of the email address field reference to the bussiness partner in t-code BUG2. The issule I meet is that: 1 Whatever dismode( N,E,

  • VCs  in Web: not showing (same file name)

    Virual copies with the same file name don't show up when creating web pages. How can you show variations of the same image (ie, color and B&W) with this nameing issue? Thanks! Reid

  • Arch Linux Gallery

    I am proud to present the re-opening of the new Arch Linux Gallery! The Arch Linux Gallery is a site dedicated to screenshots of (guess what?) Arch Linux. It is meant to be a repository for screenshots, configs, artistic creations, and anything else

  • I can't download photoshop eveneI have the subscrition

    I have had problems to installe creative cloud. I can't see any icon of apps. I have installes LR and paid the subscription. but I can't install photoshop. creative cloud open and nothing happens