Auto GR but no finish good in component overview in CO11N

Dear SAPper,
I use auto gr with control key PP03 standard SAP.
But when i do confirmation of the operation with PP03 control key, no finish good in
component overview in CO11N.
i ever asked about raw mat component always shown in component overview when CO11N although
i don;t user backflush. I got solution that in OPK4 i should untick "All Component" in good movement box.
is this the root cause my finish good doesn't shown either in component overview although i used auto gr.
The condition i need is :
1. i don't use backflush so no component shown in component overview in CO11N and it should save in screen of confirmation and not save in component overview screen
2. because auto GR is used so finish good should shown in component overview.
Please kindly help.
Thank.
Best regards,
Freddy Ha

Hi Freddy,
It will not show the GR Quantity in th Component details of the CO11n.
The confirmed quantity will be the GR Quantity.
After posting the Confirmation, check the 101 movement for the Assembly with MB51..
Regards,
Siva

Similar Messages

  • Auto GR/IR for Semi Finished goods in Work in Progress stage.

    Dear All,
    What are account postings going to happen while issuing semi finished goods from from one process to other process by using Auto GR/IR.
    Regards,
    Venkat.

    Dear sapper2000,
    Work in progress:If my understanding is correct,then any unfinished product can be said as work in progress.
    Work in process or progress  are  partially completed goods, parts, or subassemblies that are no longer part of the raw
    materials inventory and not yet part of the finished products inventory.Check this link to explore more on this topic,
    http://wiki.sdn.sap.com/wiki/display/ERPFI/UnderstandingResultsAnalysisforWIP
    Regards
    Mangalraj.S

  • Procurement of finished goods

    All,
    We have a scenario of procuring finished goods into Finished S location and from there directly do the PGI to customers in SD .
    This scenario we are not treating as a third party scenario , which shud be actually .
    In this case what will be the accounting implications .?
    Means while doing GR , it will go to inventory account . Now how this can be consumed from here .?
    Kindly advise better way to tackle this scenario .
    regards

    Hi,
    I am not sure why you think there would be a problem.
    When you purchase the stock, the auto account assignment settings will place it in nthe "finished stock" account and when you post the goods issue you will be removing it from that same account.
    When you say that there will be no consumption, surely you are issuing the stock via a delivery and goods issue? this consumes the stock from the finished stock account.
    Buying finished products is not unique, many people / organisations do this and it all works fine. (But most of them use a different material type such as HAWA - trading goods, but this in NOT essential)
    Steve B

  • Material backflush in production order after finished goods GR

    Dear all,
    I once started similiar topic several months ago, but didn't recieved any response. I'm gonna give it another try, so maybe you'll be able to support me after all.
    So, the situation is like this. We have a production order, in which MC team maintained the materials to consume. The problem is, that very often it comes that we have to use same material part, but under 2-3 different partnumbers. E.G.:
    Production order target: 1000 finished goods
    Required materials: Part A 1000 pcs, Part B1 700 pcs, Part B2 300 pcs, Part C 1000 pcs, Part D1 150 pcs, Part D2 450 pcs, Part D3 400 pcs.
    So yes, in case when it is Part B1, B2 and etc. it means that we're using physically the same part, but under different partnumbers. The problem is, that those material are all coming in pieces, not in meters or anything, and we can't allow to have, for example, 0.7 pcs of any of those materials (cause obviously you can't have 0.7 pcs of LCD panels stored in the warehouse).
    It wouldn't be a problem if we could just confirm all operations in production order in 1 batch, but production order is being confirmed partially, every time the pallet with finished goods is being released from production line (we have integrated system, that sends requests to SAP to confirm specific quantity of finished goods in production order). So, as an example, if 1 pallet contains 15 pcs of finished goods, you have 67 confirmations for production order [(66*15)+(1*10)]. And, since all those materials come in PCS, SAP is rounding up consumption if it has decimal, which leads to wrong materials consumption.
    Initially, I had an idea of adding 1 more operation in production order, which was supposed to be a manual use only, after finished goods GR, and MC team supposed to assign those B1\B2 and etc. material to this operation  E.G.:
    Operation 0010 - consume material from work center A
    Operation 0020 - consume material from work center B
    Operation 0030 - finished goods GR (milestone)
    Operation 0040 - consume material from work center C
    My idead was rejected, since I was told that after GR for finished goods is done and you continue consuming materials in production order - it will not be shown in financial reporting (don't know the details, it was quite a straight reject, without much explanation).
    So, question is - is there a way to consume materials after finished goods GR without creating mess in financial reporting, or if not - what other options do I have?
    thank you in advance

    Hi Valentin,
    After GR also you can do goods issue. Till the order status is CLSD (Closed) you can book cost on to the order.
    Two ways to consume materials on order.
    In order component overview maintain the required part number with quantity. GI as can done with reference to order MB1A 261 movement type.
    Directly do GI with MB1A -261 movement type - Input the order number, material number and qty.
    Refer to the below discussion on unplanned GI which was discussed yesterday,
    http://scn.sap.com/message/14850196#14850196
    Thank & Regards,
    Ramagiri

  • Good Issue batch Flows at GR for finish good Material

    Hi Gurus,
    Please Help me on below scenarios
    1)Good issue material batch and its characteristic automatically flows to Finish Good Material at the time of Good receipt of Process order.
    2) If Component of Finish Material ie Good issue material is having the different batches issued to the Finish material Process order then System should only consider those batch which is having the Characteristic values is having more that 50%
    Exam : Good Issue material X and requirement qty 10
    Then Component issue 10 qty with 2 batches  A and B
    Batch A  Qty 5 : Char              Value          Batch B Qty 5       Char      Value
                               Density            10                                             Density     15
    Tthen Finished Good batch consider only batch B which is having the maximum density.
    Here we want the same batch B and it should automacticaly flows  to the Finish product at the time of GR ( Process order )
    I tried with Batch derivation but we want the same Good issue batch to finished material
    Please help me on this scanrios and if we are going for development then how it is possible technically ( with Functioan specification)
    Regards,
    Saurabh

    Hi Gurus,
    Please look above the scenario and reply.
    Regards,
    Saurabh

  • How to including the finished goods as raw material to the other FG?

    Hi Gurus,
    Have a nice day!
    We would like to create production order for our semi finished goods and then we will doing confirmation. After we have produced our semi finished goods, we would like to include it in the bom as raw materials for our final FG. But how to handle this situation? Any suggestion on how the procedure to do it that the cost will not be double..when confirming the semi FG production it will generate cost for the usages of it raw materials. The semi FG is valuated then when i included it as raw material into Final FG it will generate cost for consumption in doing confirmation. I dont know the correct term for this scenario. In other word or semi FG will be part as a raw material to the next production.
    Please advise if you have been encountered the same scenario with me.
    Thanks ,
    Weldin

    Hello Gurus,
    Thanks julian for contributing your idea. I really appreciated it.
    Right now all activity in manufacturing FG is combine in one production order. Let say we have two activity one is the extrusion and the other one is bagging and printing. From our current set up, we would like to separate the activity. The idea is one production order for extrusion serve as semi-finished good. Then this semi-FG will be added in the component of our final FG which is the bagging and printing because in actual transaction that would be the procedure. Theoritically, we would like to separate the cost of extrusion activity to bagging activity. That is why we will be trying to figure out how to do it right for the analysis purposes.
    Other of my idea is when  i will set the semi FG to non valuated material. So that when i add  the semi FG as component to our Final FG no double costing happen. But when we will run the costing run it will compute low cost in terms of standard price for our final product.
    Thanks and best regards,
    Weldin angelo

  • Finished goods are asigned to WBS element

    Hello everyone.
    We use our finished goods in our Project system.
    But I couldn't find the cost in our production cost report(in PS system).
    What can we do in this situation.
    I hope to find that cost in our report especially in production cost.
    Regards.

    Hi
    The plan cost for the finished good will be seen in the project after the material component is assigned to the network activity. This is dependent upon few pre-requisites:
    1. The costing variant is assigned to the network header
    2. The valuation variant with strategy for material valuation is defined.
    3. In Transaction OPUV "determine planned costs" is mantained.
    4. The "cost relevancy indicator" in the material detail screen under the network activity is ticked.
    5. If Mov average price is not available, then standard cost estimate for the BOM is run.
    Hope the above helps.
    Regards
    Srikrishna

  • Planning without considering inventory of finished goods.

    Hi
    My users for asking for this, which don't make much sense to me, but I am a beginner in PP module. We are implementing MRP now. They want to input actual Production quantity in MD61 as PIR for the finished good and want MRP to generate Planned orders for whatever the quantity's entered in MD61, regardless of inventory, receipts for the MPS item. They want MRP to only look at component inventory and accordingly create Planned orders for dependant requirements. Is this possible in SAP & how do I do it?
    Thanks
    Suri

    Hi Prasobh
    Users want to continue to use their spreadsheet in arriving at the production plan & input that quantity in MD61 & have MRP create Planned orders for them, so that they can backflush against those planned orders, regardless of inventory situation for those finished goods. I am still not convinced about their decision on that. They want MRP to throw planned orders only when there is shortage of components, so that they can convert those to Purchase req. in order to buy them.
    Appreciate your help..
    regards
    Suri

  • Discontinuity and Follow-up Materials for Finish Goods

    Dear all,
    We have used for a long time the Discontinuity functionality and Follow-up Materials for Raw and Packaging materials (components in BOMs).
    We would like to use the same functionalities for Finish Goods, but after setting fields in MRP4 View, it seems not to work as it did for components.
    Is it possible to reproduce the same effect in Finish Goods as we had with components, i.e., use some kind of Discontinuity and Follow-up materials for Finish Goods?
    We currently work with R/3 V.4.7.
    Thank you all in advance for any support.
    Best Regards,
    Alberto

    Dear Alberto,
    If my understanding is correct then this discontinued material concept works only for the components and not for the finished
    product during MRP.
    Discontinuation Data Use
    In MRP, the discontinuation functionality is used to transfer dependent requirements of a component to one or several follow-up
    materials, if the requirements are no longer covered by stock. You can also define a follow-up material in the bill of material.
    Check this link to explore more.
    http://help.sap.com/erp2005_ehp_05/helpdata/EN/b1/c044d1439a11d189410000e829fbbd/frameset.htm
    Regards
    Mangalraj.S

  • RG1 register entries during GR for Finished goods- in tarde business

    Hello Experts,
    I have to configure trading business scenario, in which my client externally procures the finished good from his vendor and sale the same one with added overheads. I have configured Sales order that reflects item cataory TAB so auto PR generetes during sales order. Base on PR i can do PO followed by MIGO. But during MIGO system omittes error  as: Excise Invoice cannot be captured for RG1(Finished Goods) material  now here i have to change the material type in j1id from finished good to raw material.Then system allows the transaction.
    Please enlight the issue, am i doing the right step or it needs to be corrected, if so please help me out with, how can i handle excise related entries in this transaction (specially for RG1 updation during initial GR)
    Thank you in advance..

    Hi,
    When FG trading is involved, RG1 should not be updated. In trading there cannot be CENVAT credit. It is for manufacturing activity only.
    You need to update RG23D so that you can pass the exact Excise duty to the customer.
    The process is receive Goods, Capture excsie invoice and create excsie invoice from depot for sales to the customer.
    Hope this helps.
    Regards,
    Sharan

  • Overhead key for Finished goods

    Hi all,
    Guide on the following.....Depending upon the Costing Overhead Grp the Overhead will be applied , in our case Overhead % applied depending upon the Raw material consumption . So we have incorporated Over head key in all Semifinished material .
    Now , in all assembly all HALB material have Over head Key , but whether we should have Overhead Key to Finished material also?
    Do revert
    Regards

    Hi,
    It depends how you are arriving at the cost of Finished goods.  If all the consumption, activity and overheads are
    taken into account upto the top most level of the component, there there is no necessity of assigning a seperate
    overhead key.  If the company requires  packaging charges of the finished goods in batches, bar coding activities are to be added after the production, you can use an overhead key on FG.
    Regards,
    Sadashivan

  • Difference between WIP (work in progress) and Semi finished goods

    what is the difference between WIP (work in progress) and Semi finished goods
    and how to handle their valuation seperately in SAP.
    pls help with some specific important inform on both   WIP   and semi f

    Hello Sanjeev,
    The difference between SFG and WIP is that ,
    1 ) Valuation Class  For SFG starts 7***   but WIP material stock starts with 3***
    2 )  Stock / inventory of  SFG can be seen at point of time but WIP is an Order item
    3 ) We can find the stock of SFG at any point of time say it is having specific storage location But WIP is calculated from
        Order for which items are drawn .
    4 ) Example You have to manufacture Product AAA which contains SFG1 , 2 , 3  which is made up of some component items
        once SFG 's made the inventory is updated during GR but the components lying in the shop floor required to complete the order
       so we want to know at any point of time how many these materials are lying and the same was issued against Order
       reservation to finish the balance Order Quantity is called WIP.  You have confirmed only say 80 Pcs of FERT out of 100 Pcs
       remaining 20 Pcs needs to be confirmed and is being manufactured in the shop floor and the same is lying as WIP .
      Material Consumption to Production Order:
    In FI:
    ROH consumption Account       Dr (PROFIT & LOSS ACCOUNT)
    To ROH Inventory Account       Cr (BALANCE SHEET)
    Same in the case with HALB
    In CO: Cost of Material is
    In CO: Cost of Material is debited to Production Order
       For WIP :
      Calculation of WIP In FI:
          WIP Account                           Dr. (BALANCE SHEET)
    To Change in WIP Account      Cr (PROFIT & LOSS ACCOUNT)
    If the Order is completed:
    In FI:
    Change in WIP Account           Dr (PROFIT & LOSS ACCOUNT)
    To WIP Account                
    Pl come back if you have any doubt,
    Regards,
    Jaya Vimal
    Edited by: jaya vimal on Aug 9, 2010 2:10 PM

  • How to unpack finished goods!

    Hi All,
    I have a question :
    We packing 100 promotion A from 2 finished goods(100 B and 100 C and somes auxiliary materials). But after promotions, we sold 80 A and have 20 A in stock, we want to unpack 20 A to B and C.
    How can we do that ?

    Hi,
    This will be kind of reversing the production.
    Create production order of with header material as B qty 20.
    Put A as component and B as bi product with -20 qty.
    Now confirm order and do GR of production order with final product as B and you will recieve C as bi product and
    you will consume A as component.
    Vishal

  • RG1 summary of Finished goods-report.

    Hi Folks,
    RG1 summary of Finished goods-report.
    The closing balance for a particular material number during the month Jan 2007 is showing 1.00 but the opening balance for the same material number during the month February 2007 is showing 0.00 but not 1.00.
    I mean to say the closing balance in January 2007 is not carrying forward into the month Feb 2007.May I know how to go ahead with this problem.
    What is the concept of UPDATE RULES of the table.?
    The previous developer has developed the following report.
    REPORT zxxx MESSAGE-ID z_apd.
    *& Includes *
    INCLUDE <icon>.
    *& Tables *
    TABLES : j_1irg1,
    j_2irg1bal,
    z2irg1bal,
    ser03,
    objk.
    *& Selection Screen *
    SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    PARAMETERS : p_exgrp TYPE j_1irg1-exgrp OBLIGATORY,
    p_stdate LIKE sy-datum OBLIGATORY,
    p_endate LIKE sy-datum OBLIGATORY.
    SELECT-OPTIONS s_chapid FOR j_1irg1-chapid .
    SELECTION-SCREEN : END OF BLOCK blk1.
    *& Data Declaration *
    Internal Tables
    DATA : it_display TYPE TABLE OF zj1irg1,
    it_final TYPE TABLE OF zj1irg1,
    it_alv TYPE TABLE OF zj1irg1,
    Work Areas
    wa_display TYPE zj1irg1,
    wa_alv TYPE zj1irg1,
    it_display1 TYPE TABLE OF zj1irg1,
    wa_display1 TYPE zj1irg1,
    wa_alv1 TYPE zj1irg1.
    DATA: BEGIN OF it_itab OCCURS 0.
    INCLUDE STRUCTURE zj1irg1.
    DATA: END OF it_itab.
    DATA : BEGIN OF itab1 OCCURS 0,
    matnr LIKE j_1irg1-matnr,
    END OF itab1.
    DATA : BEGIN OF itab2 OCCURS 0,
    cpudt LIKE j_1irg1-cpudt,
    END OF itab2.
    DATA : BEGIN OF itab3 OCCURS 0.
    INCLUDE STRUCTURE j_1irg1.
    DATA: END OF itab3.
    DATA : itab4 LIKE j_1irg1 OCCURS 0 WITH HEADER LINE,
    itab5 LIKE j_1irg1 OCCURS 0 WITH HEADER LINE.
    DATA : BEGIN OF itab6 OCCURS 0.
    INCLUDE STRUCTURE j_1irg1.
    DATA : sernr LIKE objk-sernr.
    DATA: END OF itab6.
    DATA : BEGIN OF itab61 OCCURS 0.
    INCLUDE STRUCTURE j_1irg1.
    DATA: sernr LIKE objk-sernr.
    DATA: END OF itab61.
    DATA : itab7 LIKE j_2irg1bal OCCURS 0 WITH HEADER LINE,
    it_bal LIKE j_2irg1bal OCCURS 0 WITH HEADER LINE,
    it_bal1 LIKE j_2irg1bal OCCURS 0 WITH HEADER LINE.
    DATA: qty_menge LIKE j_1irg1-menge,
    iss_menge LIKE j_1irg1-menge,
    tot_menge LIKE j_1irg1-menge,
    op_menge LIKE j_1irg1-menge,
    matnr LIKE j_1irg1-matnr,
    exgrp LIKE j_1irg1-exgrp ,
    cpudt LIKE j_1irg1-cpudt.
    *for checcking lines of itab
    DATA: n1 TYPE i.
    Others
    DATA : v_bwart TYPE mseg-bwart,
    v_index TYPE i,
    v_index1 TYPE i,
    count(4) TYPE n VALUE '0',
    neg TYPE char1 VALUE '-',
    menge TYPE char16,
    count_1 TYPE i,
    count_2 TYPE i,
    count_3 TYPE i,
    count12(4) TYPE n VALUE '0',
    count13(4) TYPE n VALUE '0'.
    *Ranges
    RANGES: v_bwart1 FOR mseg-bwart.
    For ALV Display
    DATA : gs_variant TYPE disvariant,
    gs_layout TYPE lvc_s_layo,
    c_stk TYPE scrfname VALUE 'ZRG1',
    custom_container TYPE REF TO cl_gui_custom_container.
    CLASS lcl_event_receiver DEFINITION DEFERRED.
    DATA : grid1 TYPE REF TO cl_gui_alv_grid,
    event_receiver TYPE REF TO lcl_event_receiver,
    ok_code TYPE sy-ucomm,
    it_fieldcatalog TYPE lvc_t_fcat,
    wafieldcatlog TYPE LINE OF lvc_t_fcat,
    lt_rows TYPE lvc_t_row,
    wa_rows TYPE LINE OF lvc_t_row.
    *& Start of Selection *
    START-OF-SELECTION.
    IMPORT s_chapid FROM MEMORY ID 'SCHAPID'.
    PERFORM get_data.
    IF it_display[] IS INITIAL.
    No Details Available
    MESSAGE i017(z_apd) WITH text-005.
    STOP.
    ELSE.
    Display the Details on the Screen
    sort it_display by matnr.
    *sort it_display by cpudt RISINDR RISINDI matnr.
    LOOP AT it_display INTO wa_display.
    ON CHANGE OF wa_display-matnr.
    *insert
    *Check record exits
    SELECT SINGLE * FROM z2irg1bal
    WHERE
    exgrp = exgrp AND
    matnr = matnr AND
    form = 'P' AND
    cb_finish = tot_menge AND
    datum = cpudt.
    *If record does not exists
    *Update balance Table.
    IF count12 GE 1.
    IF sy-subrc NE 0.
    z2irg1bal-mandt = sy-mandt.
    z2irg1bal-exgrp = exgrp.
    z2irg1bal-matnr = matnr.
    z2irg1bal-form = 'P'.
    z2irg1bal-cb_finish = tot_menge.
    z2irg1bal-datum = cpudt.
    INSERT z2irg1bal ."values wa_display.
    COMMIT WORK.
    ENDIF.
    Start of Insertion
    IF sy-subrc EQ 0.
    z2irg1bal-mandt = sy-mandt.
    z2irg1bal-exgrp = exgrp.
    z2irg1bal-matnr = matnr.
    z2irg1bal-form = 'P'.
    z2irg1bal-cb_finish = tot_menge.
    z2irg1bal-datum = cpudt.
    UPDATE z2irg1bal SET cb_finish = z2irg1bal-cb_finish
    WHERE exgrp = z2irg1bal-exgrp AND
    datum = z2irg1bal-datum AND
    matnr = z2irg1bal-matnr AND
    form = 'P'.
    ENDIF.
    End of Insertion.
    ENDIF.
    CLEAR: qty_menge,
    iss_menge,
    tot_menge,
    count,
    matnr,
    cpudt,
    exgrp.
    ENDON.
    loop at itab6.
    AT NEW matnr.
    v_index = 1.
    count = count + 1 .
    ENDAT.
    IF v_index = 1.
    CLEAR v_index.
    *INsert for adding start
    IF wa_display-risind = 'R'.
    *wa_display-OP_FINISH = wa_display-OP_FINISH +
    wa_display-CB_FINISH +
    wa_display-MENGE.
    wa_display-op_finish = wa_display-menge.
    qty_menge = wa_display-op_finish.
    IF wa_display-status = space.
    tot_menge = tot_menge + qty_menge + wa_display-cb_finish .
    ELSE.
    tot_menge = tot_menge - qty_menge + wa_display-cb_finish.
    ENDIF.
    *tot_menge = op_menge.
    op_menge = tot_menge.
    ELSE.
    *Qty Issued
    wa_display-op_bond = wa_display-op_finish - wa_display-menge.
    IF wa_display-op_bond LT 0.
    iss_menge = wa_display-op_bond.
    iss_menge = ABS( iss_menge ).
    *Start of modification
    tot_MENGE = tot_MENGE - iss_MENGE ."
    IF count LE 1.
    tot_menge = wa_display-cb_finish - iss_menge ."
    ELSE.
    tot_menge = tot_menge - iss_menge ."
    ENDIF.
    *End of modification
    op_menge = tot_menge.
    ENDIF.
    ENDIF.
    *wa_display-MENGE_FINI = wa_display-OP_FINISH - wa_display-OP_BOND.
    *tot_MENGE = tot_MENGE + qty_MENGE - iss_MENGE .
    wa_display-menge_fini = tot_menge.
    **matnr for insert
    matnr = wa_display-matnr.
    *excise group
    exgrp = wa_display-exgrp.
    *Date
    cpudt = wa_display-cpudt.
    *Opening Balance
    *Insert start
    *if count le 1.
    if wa_display-RISIND = 'R'.
    wa_display-CB_FINISH = wa_display-CB_FINISH + qty_MENGE.
    else.
    wa_display-CB_FINISH = wa_display-CB_FINISH - iss_MENGE.
    endif.
    *endif.
    *Insert End
    IF count GT 1.
    IF wa_display-risind = 'R'.
    wa_display-cb_finish = tot_menge - qty_menge.
    ELSE.
    wa_display-cb_finish = tot_menge + iss_menge.
    ENDIF.
    ENDIF.
    *check it_display-SERIALNO = wa_display-SERIALNO.
    MODIFY it_display FROM wa_display.
    *INsert for adding end
    *move-corresponding wa_display to it_itab.
    *append it_itab.
    *check it_itab-SERIALNO = wa_display-SERIALNO.
    *if sy-subrc = 0.
    *endif.
    *Insert to update closng to balance to Rg1bal table
    *start
    count12 = count12 + 1.
    *for last record
    AT LAST.
    *Check record exits
    SELECT SINGLE * FROM z2irg1bal
    WHERE
    exgrp = exgrp AND
    matnr = matnr AND
    form = 'P' AND
    cb_finish = tot_menge AND
    datum = cpudt.
    *If record does not exists
    *Update balance Table.
    IF count12 GE 1.
    IF sy-subrc NE 0.
    z2irg1bal-mandt = sy-mandt.
    z2irg1bal-exgrp = exgrp.
    z2irg1bal-matnr = matnr.
    z2irg1bal-form = 'P'.
    z2irg1bal-cb_finish = tot_menge.
    z2irg1bal-datum = cpudt.
    INSERT z2irg1bal ."values wa_display.
    COMMIT WORK.
    Start of Insertion
    IF sy-subrc EQ 0.
    z2irg1bal-mandt = sy-mandt.
    z2irg1bal-exgrp = exgrp.
    z2irg1bal-matnr = matnr.
    z2irg1bal-form = 'P'.
    z2irg1bal-cb_finish = tot_menge.
    z2irg1bal-datum = cpudt.
    UPDATE z2irg1bal SET cb_finish = z2irg1bal-cb_finish
    WHERE exgrp = z2irg1bal-exgrp AND
    datum = z2irg1bal-datum AND
    matnr = z2irg1bal-matnr AND
    form = 'P'.
    ENDIF.
    End of Insertion
    ENDIF.
    ENDIF.
    ENDAT.
    *Insert to update closng to balance to Rg1bal table
    *end
    MOVE-CORRESPONDING wa_display TO wa_alv.
    APPEND wa_alv TO it_alv.
    append itab6 to it_alv.
    ENDIF.
    ENDLOOP.
    loop at it_alv into wa_alv.
    wa_alv-exgrp = wa_alv-exgrp.
    wa_alv-SYEAR = wa_alv-syear.
    wa_alv-SERIALNO = wa_alv-SERIALNO.
    endloop.
    EXPORT it_alv TO MEMORY ID 'ABCD'.
    call screen 100.
    ENDIF.
    *& End of Selection *
    END-OF-SELECTION.
    *& Class Definition *
    CLASS lcl_event_receiver DEFINITION.
    PUBLIC SECTION.
    METHODS:
    handle_toolbar
    FOR EVENT toolbar OF cl_gui_alv_grid
    IMPORTING e_object e_interactive,
    handle_user_command
    FOR EVENT user_command OF cl_gui_alv_grid
    IMPORTING e_ucomm,
    handle_double_click
    FOR EVENT double_click OF cl_gui_alv_grid
    IMPORTING e_row e_column.
    PRIVATE SECTION.
    ENDCLASS. "lcl_event_receiver DEFINITION
    *& Class Implementation *
    CLASS lcl_event_receiver IMPLEMENTATION.
    METHOD handle_toolbar.
    Local Variables
    DATA: ls_toolbar TYPE stb_button.
    append a separator to normal toolbar
    CLEAR ls_toolbar.
    MOVE 3 TO ls_toolbar-butn_type.
    APPEND ls_toolbar TO e_object->mt_toolbar.
    append an icon to to show printing
    CLEAR ls_toolbar.
    MOVE 'PRINT' TO ls_toolbar-function.
    MOVE icon_print TO ls_toolbar-icon.
    MOVE 'Print Receipts' TO ls_toolbar-quickinfo.
    MOVE ' Print' TO ls_toolbar-text.
    MOVE ' ' TO ls_toolbar-disabled.
    APPEND ls_toolbar TO e_object->mt_toolbar.
    ENDMETHOD. " Handle_toolbar
    METHOD handle_user_command.
    CASE e_ucomm.
    WHEN 'PRINT'.
    REFRESH : lt_rows , it_final.
    CALL METHOD grid1->get_selected_rows
    IMPORTING
    et_index_rows = lt_rows.
    CALL METHOD cl_gui_cfw=>flush.
    LOOP AT lt_rows INTO wa_rows.
    READ TABLE it_alv INDEX wa_rows-index INTO wa_alv.
    LOOP AT it_display INTO wa_display
    WHERE mblnr = wa_alv-mblnr.
    APPEND wa_display TO it_final.
    ENDLOOP.
    ENDLOOP.
    perform display_form.
    ENDCASE.
    ENDMETHOD. "handle_user_command
    METHOD handle_double_click.
    IF e_column = 'MBLNR'.
    READ TABLE it_alv INDEX e_row-index INTO wa_alv.
    IF sy-subrc = 0.
    REFRESH it_final.
    LOOP AT it_display INTO wa_display
    WHERE mblnr = wa_alv-mblnr.
    APPEND wa_display TO it_final.
    ENDLOOP.
    PERFORM call_migo.
    ENDIF.
    ENDIF.
    ENDMETHOD. "handle_double_click
    ENDCLASS. "lcl_event_receiver IMPLEMENTATION
    *& Form get_data
    text
    --> p1 text
    <-- p2 text
    FORM get_data .
    *Select only for matnr and chapid from table
    SELECT matnr FROM j_1irg1
    APPENDING CORRESPONDING FIELDS OF TABLE itab1
    WHERE exgrp = p_exgrp
    AND
    WERKS = P_WERKS
    and
    MATNR in s_MATNR
    and
    CPUDT in s_CPUDT.
    cpudt BETWEEN p_stdate AND p_endate
    AND
    *Chapid
    chapid IN s_chapid
    ORDER BY matnr.
    SORT itab1 BY matnr. " for performance
    DELETE ADJACENT DUPLICATES FROM itab1 COMPARING matnr .
    SELECT cpudt FROM j_1irg1
    APPENDING CORRESPONDING FIELDS OF TABLE itab2
    WHERE exgrp = p_exgrp
    AND
    cpudt BETWEEN p_stdate AND p_endate
    AND
    *Chapid
    chapid IN s_chapid
    ORDER BY cpudt.
    SORT itab2 BY cpudt. " for Performance
    DELETE ADJACENT DUPLICATES FROM itab2 COMPARING cpudt .
    LOOP AT itab1.
    LOOP AT itab2.
    *on change of itab1-matnr or itab2-cpudt.
    *select * from J_1IRG1
    CLEAR itab3.
    SELECT * FROM j_1irg1
    *into itab3
    APPENDING CORRESPONDING FIELDS OF TABLE itab3
    WHERE matnr = itab1-matnr
    AND
    cpudt = itab2-cpudt.
    *count = count + 1.
    IF sy-subrc EQ 0.
    LOOP AT itab3.
    *count = count + 1.
    *READ TABLE itab3 INDEX count."1.
    IF itab3-risind = 'R'.
    MOVE-CORRESPONDING itab3 TO itab4.
    APPEND itab4.
    DELETE itab3.
    MOVE-CORRESPONDING itab4 TO itab6.
    APPEND itab6.
    CLEAR itab4.
    ELSE.
    MOVE-CORRESPONDING itab3 TO itab5.
    APPEND itab5.
    DELETE itab3.
    MOVE-CORRESPONDING itab5 TO itab6.
    APPEND itab6.
    CLEAR itab5.
    ENDIF.
    ENDLOOP.
    ENDIF.
    *endon.
    ENDLOOP.
    ENDLOOP.
    SELECT * FROM z2irg1bal
    APPENDING CORRESPONDING FIELDS OF TABLE itab7
    WHERE exgrp = p_exgrp
    AND
    datum LE p_stdate
    ORDER BY datum.
    SORT itab7 BY datum.
    DELETE ADJACENT DUPLICATES FROM itab7 COMPARING datum .
    *insert Start
    LOOP AT itab6.
    DELETE itab7 WHERE matnr NE itab6-matnr.
    ENDLOOP.
    *insert End
    *insert Start
    LOOP AT itab6.
    CLEAR itab61. REFRESH itab61.
    CLEAR wa_display.
    MOVE-CORRESPONDING itab6 TO wa_display.
    EQPT Serno
    count13 = 1.
    SELECT SINGLE obknr FROM ser03 INTO ser03-obknr WHERE
    mblnr EQ itab6-mblnr
    AND mjahr EQ itab6-mjahr.
    IF sy-subrc EQ 0.
    SELECT sernr FROM objk INTO CORRESPONDING
    FIELDS OF TABLE itab61 WHERE
    obknr EQ ser03-obknr.
    DESCRIBE TABLE itab61 LINES n1.
    *do N1 times.
    LOOP AT itab61.
    IF count13 EQ 1.
    wa_display-sernr = itab61-sernr.
    ENDIF.
    IF count13 EQ 2.
    wa_display-sernr1 = itab61-sernr.
    ENDIF.
    IF count13 EQ 3.
    wa_display-sernr2 = itab61-sernr.
    ENDIF.
    IF count13 EQ 4.
    wa_display-sernr3 = itab61-sernr.
    ENDIF.
    IF count13 EQ 5.
    wa_display-sernr4 = itab61-sernr.
    ENDIF.
    IF count13 EQ 6.
    wa_display-sernr5 = itab61-sernr.
    ENDIF.
    IF count13 EQ 7.
    wa_display-sernr6 = itab61-sernr.
    ENDIF.
    if count13 eq 8.
    objk-SERNR8 = objk-SERNR.
    endif.
    if count13 eq 9.
    objk-SERNR9 = objk-SERNR.
    endif.
    count13 = count13 + 1.
    endselect.
    ENDLOOP.
    *enddo.
    ENDIF.
    endif.
    *End of Modification Eqpt Serial No
    MOVE-CORRESPONDING itab6 TO wa_display.
    SELECT * FROM z2irg1bal
    APPENDING CORRESPONDING FIELDS OF TABLE it_bal1
    WHERE matnr = itab6-matnr
    AND datum LE p_stdate
    AND exgrp = itab6-exgrp.
    SORT it_bal1 DESCENDING .
    READ TABLE it_bal1 INDEX 1.
    ON CHANGE OF itab6-matnr .
    wa_display-cb_finish = it_bal1-cb_finish.
    ENDON.
    AT LAST ."matnr.
    wa_display-cb_finish = it_bal1-cb_finish.
    ENDAT.
    APPEND wa_display TO it_display .
    CLEAR wa_display-cb_finish.
    CLEAR it_bal1. REFRESH it_bal1.
    ENDLOOP.
    SELECT * FROM j_1irg1
    APPENDING CORRESPONDING FIELDS OF TABLE it_itab
    WHERE exgrp = p_exgrp
    AND
    cpudt BETWEEN p_stdate AND p_endate.
    DESCRIBE TABLE it_itab[] LINES count_1.
    count_3 = count_1 + 1.
    DESCRIBE TABLE it_display[] LINES count_2.
    IF it_display IS NOT INITIAL.
    DELETE it_display FROM count_3 TO count_2.
    ENDIF.
    *start of insertion
    DELETE it_display WHERE status = 'C'.
    LOOP AT it_display INTO wa_display.
    CLEAR wa_display-cb_finish.
    MODIFY it_display FROM wa_display.
    ON CHANGE OF wa_display-matnr .
    SELECT * FROM z2irg1bal
    INTO CORRESPONDING FIELDS OF TABLE it_bal1
    WHERE matnr = wa_display-matnr
    AND datum LE p_stdate
    AND exgrp = wa_display-exgrp.
    IF sy-subrc = 0.
    SORT it_bal1 DESCENDING .
    READ TABLE it_bal1 INDEX 1.
    wa_display-cb_finish = it_bal1-cb_finish.
    MODIFY it_display FROM wa_display.
    ENDIF.
    ENDON.
    ENDLOOP.
    *End of insertion
    ENDFORM. " get_data
    *& Module STATUS_0100 OUTPUT
    text
    MODULE status_0100 OUTPUT.
    SET PF-STATUS 'ZRG1'.
    SET TITLEBAR 'ZRG1'.
    DATA: lt_exclude TYPE ui_functions.
    IF custom_container IS INITIAL.
    Create the Custom Container
    CREATE OBJECT custom_container
    EXPORTING
    container_name = c_stk.
    Create an instance of alv control
    CREATE OBJECT grid1
    EXPORTING
    i_parent = custom_container.
    Layout Settings
    gs_layout-sel_mode = 'A'. " Multiple Lines
    MOVE 'RG1 Register' TO gs_layout-grid_title.
    Prepare the Field Catalog
    PERFORM prepare_catalog.
    To Exclude the PRINT Button from the Standard toolbar of ALV
    PERFORM exclude_tb_functions CHANGING lt_exclude.
    Display the List for ALV Display
    CALL METHOD grid1->set_table_for_first_display
    EXPORTING
    it_toolbar_excluding = lt_exclude
    is_layout = gs_layout
    CHANGING
    it_fieldcatalog = it_fieldcatalog[]
    it_outtab = it_alv[].
    CREATE OBJECT event_receiver.
    SET HANDLER event_receiver->handle_user_command FOR grid1.
    SET HANDLER event_receiver->handle_toolbar FOR grid1.
    SET HANDLER event_receiver->handle_double_click FOR grid1.
    CALL METHOD grid1->set_toolbar_interactive.
    ENDIF.
    CALL METHOD cl_gui_control=>set_focus
    EXPORTING
    control = grid1.
    ENDMODULE. " STATUS_0100 OUTPUT
    *& Form exclude_tb_functions
    text
    <--P_LT_EXCLUDE text
    FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions.
    Local Varaibles
    DATA ls_exclude TYPE ui_func.
    ls_exclude = cl_gui_alv_grid=>mc_fc_print.
    APPEND ls_exclude TO pt_exclude.
    ENDFORM. " exclude_tb_functions
    *& Form prepare_catalog
    text
    --> p1 text
    <-- p2 text
    FORM prepare_catalog .
    DATA : v_index TYPE i.
    *Entry Date
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'CPUDT'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'RG1 Entry Date'.
    wafieldcatlog-reptext = 'RG1 Entry Date'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Serial No
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'SERIALNO'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'RG1 serial number'.
    wafieldcatlog-reptext = 'RG1 serial number'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'CHAPID'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Chapter ID'.
    wafieldcatlog-reptext = 'Chapter ID'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'MBLNR'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Number of Material Document'.
    wafieldcatlog-reptext = 'Number of Material Document'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Item
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'ZEILE'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Item in Material Document'.
    wafieldcatlog-reptext = 'Item in Material Document'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'BWART'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Movement Type'.
    wafieldcatlog-reptext = 'Movement Type'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'MENGE'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Quantity'.
    wafieldcatlog-reptext = 'Quantity'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    wafieldcatlog-DO_SUM = 'X'.
    append wafieldcatlog to it_fieldcatalog.
    clear wafieldcatlog-reptext.
    clear wafieldcatlog-key.
    *Base Unit of Measure
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'MEINS'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Base Unit of Measure'.
    wafieldcatlog-reptext = 'Base Unit of Measure'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    wafieldcatlog-do_sum = 'X'.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'RISIND'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Goods Movement Direction'.
    wafieldcatlog-reptext = 'Goods Movement Direction'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Material Number
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'MATNR'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Material Number'.
    wafieldcatlog-reptext = 'Material Number'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *CB_FINISH
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'CB_FINISH'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Opening Balance'.
    wafieldcatlog-reptext = 'Opening Balance'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *materail manufactured
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'OP_FINISH'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Qty Manufactured'.
    wafieldcatlog-reptext = 'Qty Manufactured'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Material Issued
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'OP_BOND'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Qty Issue'.
    wafieldcatlog-reptext = 'Qty Issue'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Total
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'MENGE_FINI'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Closing Balance'.
    wafieldcatlog-reptext = 'Closing Balance'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Material Description
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'MAKTX'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Material Description'.
    wafieldcatlog-reptext = 'Material Description'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Storage Location
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'LGORT'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Storage Location'.
    wafieldcatlog-reptext = 'Storage Location'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Goods Movement Direction
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'RISIND'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Goods Movement Direction'.
    wafieldcatlog-reptext = 'Goods Movement Direction'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Reference Document 1
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'RDOC1'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Reference Document 1'.
    wafieldcatlog-reptext = 'Reference Document 1'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Excise Duty Base Amount
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'EXBAS'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Excise Duty Base Amount'.
    wafieldcatlog-reptext = 'Excise Duty Base Amount'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Basic Excise Duty
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'EXBED'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Basic Excise Duty'.
    wafieldcatlog-reptext = 'Basic Excise Duty'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Additional Excise Duty
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'EXAED'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Additional Excise Duty'.
    wafieldcatlog-reptext = 'Additional Excise Duty'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Special Excise Duty
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'EXSED'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Special Excise Duty'.
    wafieldcatlog-reptext = 'Special Excise Duty'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *Cess amount
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'CESS'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Cess amount'.
    wafieldcatlog-reptext = 'Cess amount'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *ECS Value
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'ECS'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'ECS Value'.
    wafieldcatlog-reptext = 'ECS Value'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    **Register Entry Status
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'STATUS'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Register Entry Status'.
    wafieldcatlog-reptext = 'Register Entry Status'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    append wafieldcatlog to it_fieldcatalog.
    clear wafieldcatlog-reptext.
    clear wafieldcatlog-key.
    *EQPT Serno 1 Value
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'SERNR'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Serial number'.
    wafieldcatlog-reptext = 'Serial number'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *EQPT Serno 2 Value
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'SERNR1'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Serial number'.
    wafieldcatlog-reptext = 'Serial number'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *EQPT Serno 3 Value
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'SERNR2'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Serial number'.
    wafieldcatlog-reptext = 'Serial number'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *EQPT Serno 4 Value
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'SERNR3'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Serial number'.
    wafieldcatlog-reptext = 'Serial number'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *EQPT Serno 5 Value
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'SERNR4'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Serial number'.
    wafieldcatlog-reptext = 'Serial number'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *EQPT Serno 6 Value
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'SERNR5'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Serial number'.
    wafieldcatlog-reptext = 'Serial number'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    *EQPT Serno 7 Value
    v_index = v_index + 1.
    wafieldcatlog-fieldname = 'SERNR6'.
    wafieldcatlog-tabname = 'IT_ALV'.
    wafieldcatlog-seltext = 'Serial number'.
    wafieldcatlog-reptext = 'Serial number'.
    wafieldcatlog-hotspot = ' '.
    wafieldcatlog-col_pos = v_index.
    APPEND wafieldcatlog TO it_fieldcatalog.
    CLEAR wafieldcatlog-reptext.
    CLEAR wafieldcatlog-key.
    ENDFORM. " prepare_catalog
    *& Module USER_COMMAND_0100 INPUT
    text
    MODULE user_command_0100 INPUT.
    IF ok_code = 'EXIT'.
    CALL METHOD grid1->free.
    CALL METHOD cl_gui_cfw=>flush.
    leave program .
    LEAVE TO SCREEN 0.
    ENDIF.
    ENDMODULE. " USER_COMMAND_0100 INPUT
    *& Form call_migo
    text
    --> p1 text
    <-- p2 text
    FORM call_migo .
    CALL FUNCTION 'MIGO_DIALOG' "n547170
    EXPORTING "n547170
    i_action = 'A04' "n547170
    i_refdoc = 'R02' "n547170
    i_notree = 'X' "n547170
    i_no_auth_check = ' ' "n547170
    i_deadend = 'X' "n547170
    i_skip_first_screen = 'X' "n547170
    i_okcode = 'OK_GO' "n547170
    i_mblnr = wa_alv-mblnr "n547170
    i_mjahr = wa_alv-mjahr . "n547170
    ENDFORM. " call_migo

    T.Code: MB5B
    Regards,
    Rajesh Banka
    How to give points: Mark your thread as a question while creating it. In the answers you get, you can assign the points by clicking on the stars to the left. You also get a point yourself for rewarding (one per thread).

  • How can I get the material consumption of the month for each specific Finished Good?

    (Sorry, I first opened this discussion in another space. I guess here's where it belongs).
    Dear Experts,
    This is the first time I open a discussion. I'm new at this. I've been reading for a couple of months your forums and certainly you've helped me a lot. Thanks for that. Keep it up! ^_^
    Now on business. Let me explain a bit about what I'm looking for.
    I've been looking for a report that shows me the material consumption of the month in quantities. Raw Material and Packaging Material to be more specific. Also I need to see the consumption of those materials by each specific Finished Good.
    For example, I know the consumption of Flour of all the month, but we use it for all our Finished Goods or SKU's as we call them, since we make cookies. How can I know how much Flour each Finished Good actually used?
    I've been trying with different T-Codes, reports, etc. The last thing I've got is using transaction MB51 and filtering movements type from 261 to 262. The beauty of this report is that shows me the Process Order number, since I can match the PO number to a Finished Good with another report from BI (or BEX, however you call it).
    Everything was fine until I found that there are some PO's that are not directly related to a Finished Good, but to a Semi Finished Good. In some cases I'm able to match the Finished Good, since the majority of Semi Finished Goods are uniques to a Finished Good. But there are three specific cases that are my problem right now:
    Cream X: We use it for three Finished Goods.
    X Syrup: We use it for all the Finished Goods.
    Refined X Sugar: We use it for three Finished Goods.
    So those three are Semi Finished Goods which are related to certain numbers of PO's I have on the report.
    In the end, with the report from MB51 I have all the list of materials (filtering only Raw and Packaging), I have the consumption of the month (filtering movements 261 and 262) and I have the PO number related to each material. Of course one material is listed many times on the report, but with different PO number.
    Then, like I said, I can match the PO number to a Finished Good, except in the cases where the PO is not matched to a Finished Good, but to a Semi Finished Good like the three examples I gave you.
    I don't know if there's another way to track the Finished Good having the PO number. I've tried T-Code COR3, but couldn't get too far.
    I hope I explained myself a bit clear and also sorry if my English is not so good.
    Thanks in advance. ^_^
    Warm regards,
    Rol

    Hi Rolando,
    If the purpose is to find the consumption of a material, you can get it from report "MC.9". Plz let me know if it's useful.
    Rgds,
    Sudheer.

Maybe you are looking for