Authorization for PO fields of over delivery and under delivery tolerance

Hi,Any one know how to set authorization for PO fields of over delivery and under delivery tolerance?
For example to allow certain user to edit the these fields but other users will be only display mode.

Better create variant for restricting fields over & under delivery tolerance for certain users than applying authorization.

Similar Messages

  • Over delivery and under delivery tolarance limit.

    Hi all,
    I want to configure the over delivery and under delivery tolerance limit
    fix i.e. 5%.
    Any user can give tolerance up to 5% and not more than that.
    Please help me
    Regards,
    anant

    Hi,
    U can configure the same . Please refer
    SPRO-MM-PURCHASING--PURCHASE ORDER--SET TOLERANCE LIMITS FOR PRICE VARIANCE
    Here u can finalise the upper and lower limits as 5%. the PO shall automatically pick up the same.
    Hope this helps.
    Regards,
    Prasanna
    Award pls if helpful.

  • GI for over delivery and under delivery

    Could you please reply to the following query
    It should be possible to post the GI for an outbound delivery if the quantity effectively picked is over or under the requested quantity.
    where is the control for this?Where we set this in the standard SAP scenario?
    The goods isssue is applicable foe sales orders stock transport orders.
    Thanks

    Dear anil
    Go to 0vlp (zero), select your item category and click on magnifying lens on top. Now under the tab "Quantity", you can see a field "Check overdelivery". There if you want the system to give a warning message, maintain "A" and if you want to have error message without proceeding further, maintain "B" and save.
    thanks
    G. Lakshmipathi

  • Report for Purchasing Documents with Over Delivery or Under Delivery Tolera

    Dear All !
    please suggest me a report for Purchasing Documents with Over Delivery or Under Delivery Tolerance limit.
    thanks n regards
    Naagsekhar

    hi,
    Go to ME2N --> Use dynamic selection, choose for hte Puchase doc item --> here select for the over and under delivery and then execute the report..
    Hope it helps..
    Regards
    Priyanka.P

  • Over and Under Delivery Tolerance Defaults

    Hi !
    Is there a way to provide a default Over and Under Delivery Tolerance % at Company Code or Purchising Org level?
    If yes, please let me know what the menu path is to make that setting.
    Our tolerance for Over delivery is 10% standard across the board and we would rather not have to enter it separately in every Purchasing Info Record.
    I understand that I could use Purch Val Keys, but we are trying to avoid that as well.
    Appreciate the help!
    Thanks,
    Anisha.

    Hi anisha,
    Try using this way.
    SPRO-MM-PURCHASING--PURCHASE ORDER--SET TOLERANCE LIMITS FOR PRICE VARIANCE
    Here u can finalize the upper and lower limits as 5%. the PO shall automatically pick up the same.
    Using Purchase value keys is preferred in u r case.
    SPRO- MM - PURCHASING - MATERIAL MASTER - DEFINE PURCHASING VALUE KEYS - NEW ENTRIES Define a purchasing value key which has over and under delivery tolerance as 10% in GR/IR controls
    and assign this purchasing value key in the material master to which you want to allow 10% variation.
    Hope this helps.
    Regards,
    Nani.

  • ""  No authorization for number range object type GTIN and activity SHOW ""

    While creating number range in number  range administration for GTIN system showing the error
    ""  No authorization for number range object type GTIN and activity SHOW ""
    Pls help me to solve this issue

    Hi ,
    Please check roles for user assigend as  [ This is for super administrator ]
    SAP_AIN_ADMINISTRATOR
    SAP_AIN_OER_ADMINISTRATOR
    SAP_AIN_SUPER_ADMINISTRATOR
    SAP_AIN_SUPERVISOR
    SAP_AIN_WORKER
    and profiles assgined as
    SAP_ALL          
    SAP_NEW          
    Hope it will helps
    Thanks .,
    V.Rangarajan

  • No authorization for number range object type BTI and activity SHOW

    Hi All,
    When I try to execute
    SAP Easy Access screen - > Auto-ID Infrastructure -> Master data -> Number Ranges -> Number Range Administration
    on the next web window when I select the object type BTI , it comes up with the error
    Number range table not maintained for object BTI in customizing  
      No authorization for number range object type BTI and activity SHOW  
    I am using AIN 5.1 .  Is this an authorization issue ?. If so which all roles I should give to the user?  IF you have any idea about this please share some tips.

    Hi Sahad,
    Only few number range object types are available in the standard system:
    Follow the link for help .
    http://help.sap.com/saphelp_autoid2007/helpdata/EN/45/e2240c7abb56dde10000000a114a6b/frameset.htm
    Follow the for setting up the others.
    http://help.sap.com/saphelp_autoid2007/helpdata/EN/45/e2240c7abb56dde10000000a114a6b/frameset.htm

  • Stock transfer order (STO) Without delivery and With delivery?

    Hi experts,
    Could any body explain step by step procedure
    Stock transfer order (STO) Without delivery and With delivery?
    Thanks
    Reddy

    Hi
    Stock Transport Order Without SD Delivery.
    U dont have to maintian sales view for the materials.
    1. Extend the material to those 2 plants.
    2. Create UB purch document.
    3. Goods issue wrt to the STO in the supplying plant ( 351 mvt type).
    4. Good Receipt in the receiving plant ( 101 mvt type ).
    5. Invoice verified (MIRO).
    U should have specific pricing procedure for STO. In MEK0 u have to choose the appropriate pricing procedure with the accrual key linked for freight charges.
    Vishal...

  • Delivery and replenishment delivery

    hello all,
    I would like to know the difference between delivery and replenishment delivery. pl. let me know in which scenario replenishment delivery is used and how it is created.
    Thanks,
    Maxx

    Hi,
    Longman online dictionary:
    to put new supplies into something, or to fill something again
    Dictionary.com:
    to make full or complete again, as by supplying what is lacking
    Cambridge online dictionary:
    to fill something up again
    Well, I think in terms of SAP it is used in the same meaning: if you use a material somewhere continually (consume it continually) you need continually supply that material to be able to continue your consumption.
    In SAP you use this expression in connection with
    - storage location MRP scenario
    - fixed bin replenishment
    - KANBAN replenishment
    - generally in connection with material staging
    - etc.
    Please consider that characteristics of this processes: you "continually" produce / consume (e.g. raw) materials and that's why you need "replenishment".
    In connection with certain MTO scenario where certain raw materials are very specific and are used only once maybe there's no point in speaking "replenishment".
    The procurement of these goods seems to be a very simple process (very simple purchasing activity).
    So, I think delivery is delivery and there's no separate "replenishment delivery" type / document, a delivery becomes "replenishment delivery" because it is used for "replenishment".
    (E.g. delivery created with reference to STO can be called replenishment delivery if you provide the raw materials from one plant to another, or from one SLoc to another SLoc).
    Just my ideas..
    Regards,
    Csaba
    Edited by: Csaba Szommer on Jan 27, 2009 9:39 PM
    Edited by: Csaba Szommer on Jan 28, 2009 8:16 AM

  • Over-consumption and under-consumption in Sucontracting.

    Hi,
    how can I manage an over-consumption and under-consumption in subcontracting.
    What are the related activities that must be done in this cases?
    Best regards

    Hi
    How can I manage an over-consumption and under-consumption in subcontracting?
    for that you have to do subsequent adjustment in T.Code: MIGO....
    For eg.) As per your BOM....you have sent 10kg. of Grease to your Sc-Vendor useing M.Type:541....for assembling of your FG...Now after completion of the Assembling,you found that only 7kg. of Grease only used by Sc-Vendor  for your assembling  and 3kg of Grease is still lying at SC-Vendor's Place.......Now you have to do Subsequent adjustment in MIGO and take back the balance under consumed Grease from SC-Vendor...To Do this,
    Goto -
    > T.Code: MIGO...choose the transaction "Subsequent Adjustment" and ref. doc. as your SC-PO...
    And in Itm View,for the Line item Grease....you maintain the underconsumed qty( ie.  3kg) and Check the Under Consumption check box ....
    Now if you execute the subsequent Adjustment....this 3kg of Grease will be regenerated  in 544 O- movement type as under consumed component and it will be Lying at Sc-Vendor's place...and you have to get back this into Company's Stock separately in MB1B useing M.Type:542...
    Same this you can do for Over Consumption also....for this you should not Check the Under Consumption Check Box....Here the Over consumed material will be consumed in 543 O- movement type...and again you have to issue this Over Consumed qty to SC-Vendor in M.Type:MB1B useing m.Type: 541...
    The same subsequent Adjustment you can do for Scrap generation also....
    Hope you will understand the subsequent Adjustment process in Sub-Contracting...
    Reward if useful
    S.Baskaran

  • Define read-only authorization for specific field(s) on a form for 11.5.9

    Dear all,
    Can you pls let me know how is it possible to define read-only authorization access for specific field(s) per responsibility / user on a form in 11.5.9?
    For example I want to protect the item master file by assigning for example to users with responsibility buyer authorization to modify the buyer information but to have read-only only authorization on other sensitive fields such as make/buy flag, expense accounts, etc
    Through UI Modeller I have only managed to make specific fields on specific forms invisible, or whole tabs invisible, to specific responsibilities but this does not cover my needs as I want them to be able to view the data of the fields but to not be able to update them

    Arun,
    Almost but not quite.. The example you've given has the person VO at the top level which includes all the id's (City, State etc). My use case is slightly different.
    query 1
         select org_id, OrgName from x;
    query 2
         select emp_id, emp_name from y where org_id = x.org_id
    query 3
         multi-table join (approx 9 tables) to retrieve depts associated to employee
         where org_id = x.org_id
         and emp_id = y.emp_id
    Rather than using LOV's would it be better to create VO's and pass in the bind parameters at run time?

  • We need to give field-level authorization for some fields

    The schenario is as follows :
    1. There are various storage locations within a plant.
    2. There is one or more people incharge of creating PO and receiving
    stocks for every storage location.
    3. We dont want to authorise the person incharge of one storage
    location to receive stock in another storage location or even view the
    other storage locations at the time of creating the PO or any other
    transaction. The user incharge of one storage location should not be
    able to view any other storage location in any storage location field's
    drop down.
    regards
    Manish
    +91 9811647727

    Hi Umesh,
    Please see the documentations for authorization profile P_ABAP in the R/3 library and the following:
    SU03 -> HR Human resources -> position your cursor to P_ABAP HR: Reporting -> choose button "Docu."  -> the pop-up "help - P_ABAP" appears.
    There is an example, which describes a similar issue regarding RPTIME00 and the Basic pay infotype (0008).
    The standard reports of personnel administration are based on logical database PNP I would recommend to set your authorization as follows:
    Object HR: Master data (P_ORGIN) (two authorizations)
      Infotype                  0002             ' '
      Subtype                   *                ' '
      Authorization level       R                ' '
      Organizational key        ' '              0001YYYYXXX
    Object HR: Reporting  (P_ABAP)
      Report name                SAPDBPNP
      Degree of simplification   1
    Please note, that if a user has authorization for e.g. the birthday list , (s)he will be able to view the birth date through thisquery, although (s)he cannot access to IT0002 through PA20.
    Another possibility would be using Customer-Specific Authorization Object P_NNNNN. I have attached a file with a very comprehensive documentation regarding HR authorizations. P_NNNNN is documented on pages 40 ff.
    Hope this help
    Sarah

  • Authorization for particular field

    Dear All,
                          I have one issue about Authorization related..
    My Os is --- IBM AIX
    DB -- oracle
    SAP - ERP 6.0
    I want to restrict one field from all users in tcode KP26. when i execute KP26 tcode it will ask controlling area.
    After putting controlling area. it will show "Change Activity Type/Price Planning: initial Screen
    in that screen there is one field call "Version". we have six version in this filed. i want to give authoirzation for all users only one version from the six version.
    But i could not restrict in the role...
    I tried with new user and new role with zero base authorization. but i can't get the correct authorization object for restrict.
    Can anybody help to resolve this issue...
    Regards,
    Sundar.C

    Hi Sundar,
    Did you check with the authorization objects being checked while calling KP26 . You may get the required auth. obejct there.
    You may also want to run a trace to zero down on the exact authorization object.
    Check if the user is getting the authorization for K_KA09_KVS from some other role?
    Regards,
    Manisha
    Edited by: Manisha Nadir on May 26, 2010 8:50 PM

  • Check for required fields before locking subforms and submitting

    Hello,
    I have a 5-page form with many questions, to be completed by the original requestor and multiple approvers.  What I'm trying to do is have the original requestor's Submit button on p. 3 lock the input on the first three pages, but first check if all those fields have some content.  I currently have all the fields on pp. 1-3 set to "Required" in the object properties, but my script still locks them when there's is one empty one.  Here's what I have:
    //Lock portions of form
    Page1.access = "readOnly"
    Page2.access = "readOnly"
    Page3.access = "readOnly"
    //Save document, allow user to change name
    app.execMenuItem("SaveAs");
    //Submit via e-mail
    Submit_REAL.event__click.submit.target = "mailto:[email protected]" +
    "?subject=Subject text" +
    "&body=Message";
    Submit_REAL.execEvent("click");
    The automatic check for required fields happens after the pages get locked.  I would like the check to stop the process before it locks the pages.  Is there any way to check all at once that all "Required" fields on those pages have some content before allowing the script to proceed?  I know how to script it to manually check the 50 or so questions on those pages, but I would like to avoid that.  Thanks for any help.

    There are a few problems that I can see from the start. First, your code is going to pick up EVERY node that exists on these pages. Some of those nodes will not have a rawValue, and some will not have an actual name. As an example, you can take your code and create a text field to dump all of the names of the nodes that you get when you pull in all of the nodes this way. Here's an example:
    The result:
    Now, the question is, do you have a consistent naming convention for your fields that might be empty? That could be text fields, radio button lists, etc. For instance, I always prefix the names of objects in order to more easily keep track of what they are in scripts. Since I'm doing that, I can check the name of the field for tf, nf, rbl, cb, or whatever I have included to make sure that I'm checking an actual field before I check for things like rawValue.
    var nodeName = oNodes.item(nNodeCount).name;
    if (nodeName.indexOf("tf")>-1 || nodeName.indexOf("rbl") > -1 || /*check other field types*/) {
      //insert your code to check for empty answers here
    As for your line 7 issue. The syntax problem is that you've put extra parentheses in your if statement. Take out the parentheses that are just before and after the or "||".
    *This is my fourth attempt to reply. Something was going on with Adobe/Jive earlier, I suppose.

  • To set HOTSPOT for a field in ALV-oops and when clecked should call transac

    Hi,
    I need to set HOTSPOT for a field in O/P list using ALV-oops and when clecked should take me to Transaction VA01. Please help....
    Thanks,
    Prabhu

    Hi,
         Please go through this code it may help u.
    REPORT zcls_alv_oops MESSAGE-ID z1.
    TABLES : mara.
    Types Declaration..\
    TYPES :
    BEGIN OF t_mara,
    matnr TYPE matnr,
    mtart TYPE mtart,
    maktx TYPE maktx,
    END OF t_mara,
    BEGIN OF t_marc,
    matnr TYPE matnr,
    werks TYPE werks_d,
    mtart TYPE mtart,
    maktx TYPE maktx,
    END OF t_marc.
    Internal Tables Declaration..\
    DATA :
    i_mara TYPE TABLE OF t_mara,
    i_marc TYPE TABLE OF t_marc,
    i_fcat1 TYPE lvc_t_fcat,
    i_fcat2 TYPE lvc_t_fcat.
    Constants Declaration..\
    CONSTANTS :
    c_cont1 TYPE scrfname VALUE 'CONT1',
    c_cont2 TYPE scrfname VALUE 'CONT2'.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
    SELECT-OPTIONS:
    s_matnr FOR mara-matnr NO INTERVALS.
    SELECTION-SCREEN SKIP 1.
    PARAMETERS :
    p_hotspt RADIOBUTTON GROUP r1 DEFAULT 'X',
    p_bttn RADIOBUTTON GROUP r1.
    SELECTION-SCREEN END OF BLOCK b1.
    \* Class forward referncing.
    CLASS lcl_rcvr_class DEFINITION DEFERRED.
    \* Pointers Declaration..
    DATA :
    lp_rcvr TYPE REF TO lcl_rcvr_class,
    lp_cont1 TYPE REF TO cl_gui_custom_container,
    lp_cont2 TYPE REF TO cl_gui_custom_container,
    lp_grid1 TYPE REF TO cl_gui_alv_grid,
    lp_grid2 TYPE REF TO cl_gui_alv_grid.
    \* Local Class Definiton.
    CLASS lcl_rcvr_class DEFINITION.
    PUBLIC SECTION.
    METHODS :
    hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
    IMPORTING e_row_id e_column_id es_row_no,
    handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
    IMPORTING e_row e_column.
    ENDCLASS.
    \* Local Class Implementation.
    CLASS lcl_rcvr_class IMPLEMENTATION.
    METHOD hotspot_click.
    DATA :
    wa_mara TYPE t_mara,
    wa_marc TYPE t_marc.
    DATA :
    l_index TYPE sy-tabix.
    READ TABLE i_mara INTO wa_mara INDEX e_row_id-index.
    IF sy-subrc EQ 0.
    REFRESH i_marc.
    SELECT matnr
    werks
    INTO TABLE i_marc
    FROM marc
    WHERE matnr EQ wa_mara-matnr.
    IF sy-subrc EQ 0.
    LOOP AT i_marc INTO wa_marc.
    l_index = sy-tabix.
    wa_marc-mtart = wa_mara-mtart.
    wa_marc-maktx = wa_mara-maktx.
    MODIFY i_marc FROM wa_marc INDEX l_index
    TRANSPORTING mtart maktx.
    ENDLOOP.
    CALL SCREEN 200.
    ELSE.
    MESSAGE e121 WITH text-005 wa_mara-matnr.
    ENDIF.
    ENDIF.
    ENDMETHOD.
    METHOD handle_double_click.
    DATA :
    wa_mara TYPE t_mara,
    wa_marc TYPE t_marc.
    DATA :
    l_index TYPE sy-tabix.
    READ TABLE i_mara INTO wa_mara INDEX e_row-index.
    IF sy-subrc EQ 0.
    REFRESH i_marc.
    SELECT matnr
    werks
    INTO TABLE i_marc
    FROM marc
    WHERE matnr EQ wa_mara-matnr.
    IF sy-subrc EQ 0.
    LOOP AT i_marc INTO wa_marc.
    l_index = sy-tabix.
    wa_marc-mtart = wa_mara-mtart.
    wa_marc-maktx = wa_mara-maktx.
    MODIFY i_marc FROM wa_marc INDEX l_index
    TRANSPORTING mtart maktx.
    ENDLOOP.
    CALL SCREEN 200.
    ELSE.
    MESSAGE e121 WITH text-005 wa_mara-matnr.
    ENDIF.
    ENDIF.
    ENDMETHOD.
    ENDCLASS.
    \* Start of Selection
    START-OF-SELECTION.
    \* Extract the Material Master data for the Input Material.
    SELECT a~matnr
    a~mtart
    b~maktx
    INTO TABLE i_mara
    FROM mara AS a
    INNER JOIN makt AS b
    ON a~matnr EQ b~matnr
    WHERE a~matnr IN s_matnr
    AND b~spras EQ sy-langu.
    END-OF-SELECTION.
    IF NOT i_mara\[\] IS INITIAL.
    \* Call Screen to display the Material Master data.
    CALL SCREEN 100.
    ELSE.
    MESSAGE s121 WITH text-006.
    ENDIF.
    \*& Module DISP_GRID OUTPUT
    \* text
    MODULE disp_grid OUTPUT.
    \* Build the Field catelog for Material Master data.
    PERFORM build_fcat.
    \* Display the Material Master data using ALV.
    PERFORM disp_alv.
    ENDMODULE. " DISP_GRID OUTPUT
    \*& Module USER_COMMAND_0100 INPUT
    \* text
    MODULE user_command_0100 INPUT.
    \*when exit or cancel is clicked program has to come out
    CASE sy-ucomm.
    WHEN 'EXIT' OR 'CANC'.
    LEAVE PROGRAM.
    WHEN 'BACK'.
    LEAVE TO SCREEN 0.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_0100 INPUT
    \*& Form build_fcat
    \* text
    \* \--> p1 text
    \* <-\- p2 text
    FORM build_fcat.
    DATA : ws_fcat TYPE lvc_s_fcat.
    ws_fcat-fieldname = 'MATNR'.
    ws_fcat-scrtext_m = text-001.
    ws_fcat-tabname = 'I_MARA'.
    IF p_hotspt EQ 'X'.
    ws_fcat-hotspot = 'X'.
    ENDIF.
    APPEND ws_fcat TO i_fcat1.
    CLEAR ws_fcat.
    ws_fcat-fieldname = 'MTART'.
    ws_fcat-scrtext_m = text-002.
    ws_fcat-tabname = 'I_MARA'.
    APPEND ws_fcat TO i_fcat1.
    CLEAR ws_fcat.
    ws_fcat-fieldname = 'MAKTX'.
    ws_fcat-scrtext_m = text-003.
    ws_fcat-tabname = 'I_MARA'.
    APPEND ws_fcat TO i_fcat1.
    CLEAR ws_fcat.
    ENDFORM. " build_fcat
    \*& Form disp_alv
    \* text
    \* \--> p1 text
    \* <-\- p2 text
    FORM disp_alv.
    IF lp_cont1 IS INITIAL.
    \* Create the Container Object of Material Master.
    CREATE OBJECT lp_cont1
    EXPORTING
    container_name = c_cont1
    EXCEPTIONS
    cntl_error = 1
    cntl_system_error = 2
    create_error = 3
    lifetime_error = 4
    lifetime_dynpro_dynpro_link = 5
    others = 6 .
    IF sy-subrc NE 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
    \* Create the Object for Grid of Material Master.
    CREATE OBJECT lp_grid1
    EXPORTING
    i_parent = lp_cont1
    EXCEPTIONS
    error_cntl_create = 1
    error_cntl_init = 2
    error_cntl_link = 3
    error_dp_create = 4
    others = 5.
    IF sy-subrc NE 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
    \* Dipslay Material Master data by calling method.
    CALL METHOD lp_grid1->set_table_for_first_display
    CHANGING
    it_outtab = i_mara
    it_fieldcatalog = i_fcat1
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 3
    OTHERS = 4.
    IF sy-subrc NE 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
    \* Set Handler for the Hot Spot Event.
    CREATE OBJECT lp_rcvr.
    IF p_hotspt EQ 'X'.
    SET HANDLER lp_rcvr->hotspot_click FOR lp_grid1.
    ELSE.
    SET HANDLER lp_rcvr->handle_double_click FOR lp_grid1.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDFORM. " disp_alv
    \*& Module STATUS_0100 OUTPUT
    \* text
    MODULE status_0100 OUTPUT.
    SET PF-STATUS 'MAIN_STAT'.
    SET TITLEBAR 'T_100'.
    ENDMODULE. " STATUS_0100 OUTPUT
    \*& Module STATUS_0200 OUTPUT
    \* text
    MODULE status_0200 OUTPUT.
    SET PF-STATUS 'PLANT_STAT'.
    SET TITLEBAR 'T_200'.
    ENDMODULE. " STATUS_0200 OUTPUT
    \*& Module DISP_GRID_plant OUTPUT
    \* text
    MODULE disp_grid_plant OUTPUT.
    \* Build the Field catelog for Material Plant data.
    PERFORM build_fcat_plant.
    \* Display the Material Master Plant data using ALV.
    PERFORM disp_alv_plant.
    ENDMODULE. " DISP_GRID_plant OUTPUT
    \*& Module USER_COMMAND_0200 INPUT
    \* text
    MODULE user_command_0200 INPUT.
    \*when exit or cancel is clicked program has to come out
    CASE sy-ucomm.
    WHEN 'EXIT' OR 'CANC'.
    LEAVE PROGRAM.
    WHEN 'BACK'.
    LEAVE TO SCREEN 0.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_0200 INPUT
    \*& Form build_fcat_plant
    \* text
    \* \--> p1 text
    \* <-\- p2 text
    FORM build_fcat_plant.
    DATA : ws_fcat TYPE lvc_s_fcat.
    ws_fcat-fieldname = 'MATNR'.
    ws_fcat-scrtext_m = text-001.
    ws_fcat-tabname = 'I_MARC'.
    APPEND ws_fcat TO i_fcat2.
    CLEAR ws_fcat.
    ws_fcat-fieldname = 'WERKS'.
    ws_fcat-scrtext_m = text-004.
    ws_fcat-tabname = 'I_MARC'.
    APPEND ws_fcat TO i_fcat2.
    CLEAR ws_fcat.
    ws_fcat-fieldname = 'MTART'.
    ws_fcat-scrtext_m = text-002.
    ws_fcat-tabname = 'I_MARC'.
    APPEND ws_fcat TO i_fcat2.
    CLEAR ws_fcat.
    ws_fcat-fieldname = 'MAKTX'.
    ws_fcat-scrtext_m = text-003.
    ws_fcat-tabname = 'I_MARC'.
    APPEND ws_fcat TO i_fcat2.
    CLEAR ws_fcat.
    ENDFORM. " build_fcat_plant
    \*& Form disp_alv_plant
    \* text
    \* \--> p1 text
    \* <-\- p2 text
    FORM disp_alv_plant.
    IF lp_cont2 IS INITIAL.
    \* Create the Container Object of Material Plant data.
    CREATE OBJECT lp_cont2
    EXPORTING
    container_name = c_cont2
    EXCEPTIONS
    cntl_error = 1
    cntl_system_error = 2
    create_error = 3
    lifetime_error = 4
    lifetime_dynpro_dynpro_link = 5
    others = 6.
    IF sy-subrc NE 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
    \* Create the Object for Grid of Material Plant data.
    CREATE OBJECT lp_grid2
    EXPORTING
    i_parent = lp_cont2
    EXCEPTIONS
    error_cntl_create = 1
    error_cntl_init = 2
    error_cntl_link = 3
    error_dp_create = 4
    others = 5.
    IF sy-subrc NE 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ELSE.
    \* Dipslay Material Plant data by calling method.
    CALL METHOD lp_grid2->set_table_for_first_display
    CHANGING
    it_outtab = i_marc
    it_fieldcatalog = i_fcat2
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 3
    OTHERS = 4.
    IF sy-subrc NE 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDIF.
    ENDIF.
    ELSE.
    \* Call method 'REFRESH_TABLE_DISPLAY' to refresh the grid data.
    CALL METHOD lp_grid2->refresh_table_display.
    ENDIF.
    ENDFORM. " disp_alv_plant

Maybe you are looking for