Restricting the table maintanance

hi experts,
i have created a table and generated a table maintenance using "table maintanance generator" in utilities menu. in the authorization group i have put "w/o auth grp" and authorization object system has proposed S_TABU_DISP. i want to limit the access to this maintenance table only to certain users. i mean even the user has the SM30 access, certain people only should be able to enter or change the entries in the table. how do i achieve this
thanks

hi abaper,
thanks for the reply. i have gone through the link. so basically i have understood the funda of assigning authorisation group in the table maintenance generator screen and assigning to auth object. but i could not understand the second option , which is about tcode. lets say i have created a tcode for maintenance table , now how do i restrict that only certail users have access to that tcode. can u give me the detail steps required.
also what do u think is the best and safe option.
thanks

Similar Messages

  • How to find the TCODE that is created for the table maintanance generator

    Hi ,
    How to find the TCODE that is created for the table maintanance generator of particular table,if we only know the table name.
    Regards
    Ramakrishna L

    Hello,
    I try it this way
    1. Goto SE16 --> enter table TSTCP.
    2. In the selection-screen displayed, enter
    PARAM = *<ZTABNAME>*
    You will get the t-code for the TMG.
    BR,
    Suhas
    PS: Are you sure a t-code has been created for this TMG ?

  • Applying a filter to restrict the tables displayed

    using a new install of sql dev 2.1 (windows with jdk included in the download)
    If i right click on the 'Tables' icon, then chose 'Apply Filter...' no matter what combination of the available options I chose I cannot get a reduced list of tables to be shown.
    The applying of Filters to Views/packages/indexes/function/procedures etc works as expected.
    'Tables/Apply Filter' worked ok on all the previous releases of sql dev I've ever used.
    Anyone else experiencing this ?
    Found the source of the problem.
    By default a row with 'Exclude Rcycle bin' was always being shown, deleted this entire row and the filter works as in previous versions
    Edited by: beneyr on 19-Feb-2010 11:59

    You did install 2.1 in a new, clean directory, didn't you? If you overwrite a previous version, you'll get unexpected behaviour.
    Regards,
    K.

  • Changes in Table Maintanance

    Hi All,
       I have one requirement in table maintanance generator.I have 4 fields werks,matnr and to other fields for uper and lower limit.I want to display only those entry in the table maintanance for which user is authorized.
    I want to check authorization on plant.I want to write some logic  for this where I will check the user id for auth. in authorization object and based on the authorization plant I will select those entries and display.
      If somebody know something then please suggest.
    Regards,
    Rajesh

    hi rajesh,
    se54 -> menue "environment" -> events.
    i think you should try AA instead of the standard routine. i think the generated subroutine is named get_<viewname>.
    either you can edit the where-statement or you can work with the result itab TOTAL which ahs the fields of your view and the fields of vimflagtab.
    so i would recommend to define a itab
    TYPES: BEGIN OF t_itab.
            INCLUDE STRUCTURE <your_view>t.
            INCLUDE STRUCTURE vimflagtab.
    TYPES: END OF t_itab,
           ti_itab TYPE STANDARD TABLE OF t_itab.
    and then move the TOTAL to your itab.
    Hope this is getting you closer to the solution.
    robert

  • Making row of Table Maintanance uneditable

    Hi All,
    I am developing a Table Maintanance of a ZTable. The ZTable contains 13 fields. The user have to key in data into the ZTable through Table Maintanance. One of the field in the ZTable is "Approval". If the User marks "X" into the Approval field then the entire row in the Table Maintanance would become uneditable for a certain end user but would remain editable to higher Managers (Through SY-UNAME).
    Pls suggest, how do I create the entire row uneditable for certain end user but the same row editable for the other higher Managers.
    Appreciate if you can provide the code or provide some documents on that.
    Regards,
    Rubel.

    Hi,
    Thanx Karthik.
    Can you pls suggest what is the correct Authorization Object we can use for this senario. Can we use:-
    Object : S_TABU_DIS
    Text    : Table Maintenance (via standard tools such as SM30)
    Class  : BC_A
    If there are some more Authorization Object then pls refer the name.
    OR, do we have to create a new Authorization Object? If Yes, then pls give the steps as to how can we create a new authorizaton object with new class.
    Regards,
    Rubel.

  • How can I restrict more then one user to access the table?

    Hi !
    I have a problem and two solutions and I am a bit confused as to
    which one is the best one and/or can there be any better way of
    handling the problem ?
    Problem : I have to update a key field of a table when I update
    it in the form 5.0 screen. I am basically doing a maintenance of
    a table and if a certain field is updated then the change has to
    be reflected in two more tables. But the issue is that the field
    is a part of the key in those two tables. So all I can think of
    is that I need to insert new set or rows for that new value of
    the field and delete the old set of records for old values of
    the field.
    There are two ways of doing it;
    1.One option can be to explicitely define two cursors separately
    and fetch the values in them one by one and then insert the new
    records and then delete the old records in both the tables. This
    I feel will be a cumbersome process both in terms of processing
    time and the coding.
    2.Second option I was thinking can be to create two flat tables
    (without keys) and insert the values in them and update the
    changed field there and then insert the rows in the respective
    tables. Delete the old records in the main tables and delets the
    records in these flat tables. This is a bit more faster and
    easier to predict and code. This seems to be a better option for
    me.
    Any comments on these ?
    In both the cases I was thinking of making some provision so
    that more then one person can't update the table simultaneously.
    Since if there are more then one persons doing the processing
    then some inconsistency might creep into the whole process.
    This is easier to do in the second process as if I check the
    data in the flat tables and if there is some data then I can
    presume that some one is doing the processing and I can ask the
    other person to hold for a while. But in this case how can I
    stop more then two people to simultaneously check for the empty
    table and start inserting the record ?
    I was just thinking of having a sepatare table having only one
    field and this will be a key field and as the process begins the
    process will insert a fix value say 'Y' in the key field and at
    the end of the process the record will be deleted and this way
    we can restrict the user to access the process more then one at
    a time..? Since you can't have same value of the key in a table
    more then once.
    Any better way of handling it will be deeply appreciated.
    How about locking the table at the begining and releasing the
    lock at the end ? Will there be any issue in that? since I am
    inserting and deleting the rows in the same transaction.
    Comments welcome,
    Shobhit
    null

    How about performing the update IN the database using a stored
    procedure?
    By using non-database fields on your form to get the
    information, you can then call the procedure in the database to
    perform the updates. If an error occurs in the procedure you
    rollback, if necessary, and send a message or status back to the
    form. If it succeeds you might wish to commit and then re-
    execute the form's query -- using either the original key values
    or the new key values...
    null

  • How to restrict the user(Schema) from deleting the data from a table

    Hi All,
    I have scenario here.
    I want to know how to restrict a user(Schema) from deleting the values from a table created in the same schema.
    Below is the example.
    I have created a table employee in abc schema which has two values.
    EMPLOYEE
    ABC
    XYZ
    In the above scenario the abc user can only fire select query on the EMPLOYEE table.
    SELECT * FROM EMPLOYEE;
    He should not be able to use any other DML commands on that table.
    If he uses then Insufficient privileges error should be thrown.
    Can anyone please help me out on this.

    Hi,
    kumar0828 wrote:
    Hi Frank,
    Thanks for the reply.
    Can you please elaborate on how to add policies for a table for just firing a select DML statement on table.See the SQL Packages and Types manual first. It has examples. You can also search the web for examples. This is sometimes called "Virtual Private Database" or VPD.
    If you have problems, post a specific question here. Include CREATE TABLE and INSERT statements to create a table as it exists before the policies go into effect, the PL/SQL code to create the policies, and additonal DML statements that will be affected by the policies. Show what the table should contain after each of those DML statements.
    Always say which version of Oracle you're using. Confirm that you have Enterprise Edition.
    See the forum FAQ {message:id=9360002}
    The basic idea behind row-level security is that it generates a string that is automatically added to SELECT and/or DML statement WHERE clauses. For example, if user ABC is only allowed to query a table on Sunday, then you might write a function that returns the string
    USER  != 'ABC'
    OR      TO_CHAR (SYSDATE, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') = 'SUN'So whenever any user says
    SELECT  *
    FROM    table_x
    ;what actually runs is:
    SELECT  *
    FROM    table_x
    WHERE   USER  != 'ABC'
    OR      TO_CHAR (SYSDATE, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') = 'SUN'
    ;If you want to prevent any user from deleting rows, then the policy function can return just this string
    0 = 1Then, if somone says
    DELETE  employee
    ;what actually gets run is
    DELETE  employee
    WHERE   0 = 1
    ;No error will be raised, but no rows will be deleted.
    Once again, it would be simpler, more efficient, more robust and easier to maintain if you just created the table in a different schema, and not give DELETE privileges.
    Edited by: Frank Kulash on Nov 2, 2012 10:26 AM
    I just saw the previous response, which makes some additional good points (e.g., a user can always TRUNCATE his own tables). ALso, if user ABC applies a security policy to the table, then user ABC can also remove the policy, so if you really want to prevent user ABC from deleting rows, no matter how hard the user tries, then you need to create the policies in a different schema. If you're creating things in a different schema, then you might as well create the table in a different schema.

  • How to restrict the duplicate values in lov column of VO based Adv Table

    Hi Gurus,
    I want to restrict the duplicate values at lov which is a colunm in an Adv Table.
    If user enters duplicate values then first it should show an error msg that Duplicate values have been entered.
    After the duplicate values have been removed, then the user can save all the values in the table.
    My Adv Table is based on a VO.
    The link how to restrict the duplicate values at form level
    talks about Adv Table based on a EoVO, which doesnot work in my case.
    My Approach,
    I am iterating through RowSetIterator and committing through PROCEDURE.
    I am able to avoid duplicate entry through a function checkRespId. (given below)
    Below code is for iterating and committing.
    public void saveline(String reqid,String userid)
    System.out.println("RequestId/saveline"+reqid);
    System.out.println("UserId/saveline"+userid);
    OAViewObject vo = (OAViewObject)getRespLineVO1();
    RespLineVORowImpl row = null;
    int fetchedRowCount = vo.getFetchedRowCount();
    RowSetIterator deleteIter = vo.createRowSetIterator("deleteIter");
    if (fetchedRowCount > 0)
    deleteIter.setRangeStart(0);
    deleteIter.setRangeSize(fetchedRowCount);
    for (int i = 0; i < fetchedRowCount; i++)
    System.out.println("Inside the for LOOP");
    row = (RespLineVORowImpl)deleteIter.getRowAtRangeIndex(i);
    String respoidid = row.getAttribute("ResponsibilityId")+"";
    String respname = row.getAttribute("ResponsibilityName")+"";
    String stdate = row.getAttribute("StartDate")+"";
    String enddate = row.getAttribute("EndDate")+"";
    String linestatus ="A";
    if(userid!=null)
    if(!(respoidid.equals("null")) && respoidid!=null)
    String checkingrespid=null;
    checkingrespid = checkRespId(userid,respoidid);+contains no if not duplicate and yes if its duplicate+
    System.out.println("checkingrespid for Resp with ID :"+respoidid+"exists or not "+checkingrespid);
    if(checkingrespid.equals("No"))
         String message, result = null;
    Connection txn = getOADBTransaction().getJdbcConnection();
    try
    calling PROC ...
    catch(Exception e)
    message = "Error in Inserting into line" + e;
    throw new OAException(message, OAException.ERROR);
    else
    throw new OAException("You have entered duplicate no. of values", OAException.ERROR);
    else
    System.out.println("respoidid is null");
    break;
    deleteIter.closeRowSetIterator();
    public String checkRespId(String userid,String respoidid)
    String createRow="No";
    OAViewObject vo = (OAViewObject)findViewObject("CheckRespVO1");
    if (vo != null)
    vo.setWhereClauseParams(null);
    vo.setWhereClauseParam(0, userid);
    vo.setWhereClauseParam(1, respoidid);
    vo.executeQuery();
    System.out.println("ROW COUNT IS "+vo.getRowCount());
    if(vo.getRowCount()>0)
    createRow="Yes";
    else
    createRow="No";
    return createRow;
    Problem:
    I remove the duplicate entries and click on save and get this error.
    Unable to perform transaction on the record. \nCause: The record contains stale data. The record has been modified by another user.
    \nAction: Cancel the transaction and re-query the record to get the new data.
    Thanks,
    Sombit

    Hi Anil,
    I am trying out your code but stuck in inserting the rows
    using your code in URL: http://oracleanil.blogspot.com/2010/09/oaf-passing-table-type-object-to-oracle.html
    I am always getting the same exception i.e COde blast in when I run.
    My modified code is:
    String[] as = null;
    Number[] vNumber = null;
    Number[] vNumberrespid = null;
    Number reqidnumber = null;
    reqidnumber = new Number(Integer.parseInt(reqid));
    Connection txn = getOADBTransaction().getJdbcConnection();
    String mCreateSearchRequestStatement = null;
    OAViewObject vo = (OAViewObject)findViewObject("RespLineVO1");
    int j = vo.getFetchedRowCount();
    try
    System.out.println("abouce try");
    vo.reset();
    if (vo.getFetchedRowCount() > 0)
    System.out.println(String.valueOf("Fetched row count ").concat(String.valueOf(vo.getFetchedRowCount())));
    int i = 0;
    as = new String[j];
    vNumber = new Number[j];
    vNumberrespid = new Number[j];
    while (vo.hasNext())
    vo.next();
    System.out.println(String.valueOf("Inisde the do while loop").concat(String.valueOf(i)));
    vNumber[i] = (reqidnumber);
    vNumberrespid = ((Number)vo.getCurrentRow().getAttribute("ResponsibilityId"));
    as[i] = String.valueOf(vo.getCurrentRow().getAttribute("ResponsibilityName")).concat(String.valueOf(""));
    System.out.println("Request ID "+reqidnumber[i]);//getting null even there is some value selected
    System.out.println("ResponsibilityId "+vNumberrespid[i]);//getting null even there is some value selected
    System.out.println("Resp Name "+as[i] );//getting null even there is some value selected
    i++;
    CallableStatement cs = txn.prepareCall("{call XX_PassTableType.XX_PassTableType_prc(:1, :2,:3)}");
    ARRAY array = new ARRAY(new ArrayDescriptor("APPS.JTF_NUMBER_TABLE", txn), txn, vNumber);
    ARRAY arraynew = new ARRAY(new ArrayDescriptor("APPS.JTF_NUMBER_TABLE", txn), txn, vNumberrespid);
    ARRAY array1 = new ARRAY(new ArrayDescriptor("APPS.JTF_VARCHAR2_TABLE_100", txn), txn, as);
    cs.setArray(1, array);
    cs.setArray(2, arraynew);
    cs.setArray(3, array1);
    cs.registerOutParameter(3, 2003, "JTF_VARCHAR2_TABLE_100");
    cs.execute();
    ARRAY error = null;
    error = (ARRAY)cs.getArray(2);
    if ((error != null) && (error.length() > 0))
    System.out.println(String.valueOf("Error is ").concat(String.valueOf(error.getArray())));
    String[] retError = new String[j];
    retError = (String[])error.getArray();
    System.out.println(String.valueOf("Error in saving data").concat(String.valueOf(retError[0])));
    cs.close();
    catch (Exception exception)
    throw new OAException("code blast", OAException.ERROR);
    Thanks,
    Sombit

  • How to Restrict the Rows In Pivot Table

    Hi All,
    how to Restrict the Row in the Pivot table.
    My Requirement is like this.
    i have to show the top 10 values in the pivot table but My report is show all the values.
    how can we achieve this.
    any quick solution for this appreciated.
    Thanks,
    Yogi.

    Yogi1729 wrote:
    Hi All,
    how to Restrict the Row in the Pivot table.
    My Requirement is like this.
    i have to show the top 10 values in the pivot table but My report is show all the values.
    how can we achieve this.
    any quick solution for this appreciated.
    Thanks,
    Yogi.You can't really restrict the rows in a pivot table, but you can do this:
    http://oraclebizint.wordpress.com/2008/01/17/oracle-bi-101332-pagination-in-pivot-tables/

  • How to restrict the decimal entry on dynamic table in adf 11 .6

    Hi All,
      JDev version 11.6
      I have a usecase based on dynamic VO. How to restrict the decimal numbers on table columns . When user enter the decimal number .I have to show error message.
      In order to achieve above requirement .I have added value change listener on table column .its not working as expected
    <af:table rows="#{bindings.EmployeeDynamicVO.rangeSize}"
                      fetchSize="#{bindings.EmployeeDynamicVO.rangeSize}"
                      emptyText="#{bindings.EmployeeDynamicVO.viewable ? 'No data to display.' : 'Access Denied.'}"
                      var="row" rowBandingInterval="0"
                      value="#{bindings.EmployeeDynamicVO.collectionModel}"
                      selectedRowKeys="#{bindings.EmployeeDynamicVO.collectionModel.selectedRow}"
                      selectionListener="#{bindings.EmployeeDynamicVO.collectionModel.makeCurrent}"
                      rowSelection="single" id="t1"
                      styleClass="AFStretchWidth" autoHeightRows="-1"
                      columnStretching="last" contentDelivery="immediate" >
              <af:forEach items="#{bindings.EmployeeDynamicVO.attributeDefs}"
                          var="def">
                <af:column headerText="#{bindings.EmployeeDynamicVO.labels[def.name]}"
                           sortProperty="#{def.name}" id="c1">
                  <af:inputText value="#{row[def.name]}" id="ot1"
                                valueChangeListener="#{backingBeanScope.EmployeeBean.validateINputs}"
                                autoSubmit="true">
                    </af:inputText>
                  <af:outputText value="#{row[def.name]}" id="ot6"
                                 visible="#{def.name eq 'Dummy'}"/>
                </af:column>
              </af:forEach>
            </af:table>
    So appriciate if any alternatives on above usecase. Thanks in advance

    HI
    Expected :as soon as user enter the decimal values in table column , it should throw the error message in new small new window
    Getting the value change listener and validating , but its working only tab out (Because VO is dynamic )
    please suggest us any reg expression and Validators to achieve the above scenario ?

  • How to restrict the number of Records into the Table?

    Is there any way that I can restrict the number of records can be entered into the table?
    For example I have created a table TAB1 with size category 0( zero).
    User dont want to enter more than 100 values, How to restrict the number entries? Whether Basis can do it?
    Regards,
    Prathap

    Hi Prathap,
    You can write a code in table maintenance events to restrict the number of Records added into the Table to constant.
    Solution:
    Se11 -> enter table name (TAB1) -> F6 -> Utlities -> Table maint. generator -> Envirnment -> modification -> events -> write here the form routine name.
    Double click on routine name. You will get into include section of the code. Write here code like:
    IF current_rec_num > 100.
       messgae error 'Entry restriceted to 100'
    ENDIF.
    Somewhat this way you can achieve your target.
    Regards,
    Sachin

  • Restrict the visibility of a field  in the table

    There is a field in master database (pa0002) ,  i dont know from how many ways the  field value can be seen  like transaction, table view or abap query, but the requirement is the restrict the visibility of the value of the field to specific user , so please suggest me any peoper solution.
    Screen field: Q0002-BSNCD / Table field: PA0002-PERID
    Only authorized users are be able to see the BSN number.
    Other users should not have access to the BSN number in any way. I.e., access to the BSN number via the IT0002 screen, queries, table view or other ways should be prohibited when not authorized.

    Hi,
       Can you try creating an authorisation object and including an authority check in the PBO.
    Regards,
    Sonal

  • How  to maintain the entries using table maintanance??

    Hi,
    I have created a Ztable. and I have created table maintanance generator, then attached the table to a
    Tcode. but I am unable to maintain the entries in table maintanance??
    Can anyone help me out
    Regards
    Devi

    Hi this will help u.
    Hi,
    Go to SE11 enter table name ->change
    Utilities-> Table Maintenance Generator
    delete the Table maintenance by pressing delete button on menu,
    then start creating it again.
    Enter Auth.Group as &NC&
    Enter function group < some name>
    Maintenance Type -> One step
    Overview screen -> some Number (1 or 2)
    Press create
    enter dev class and save, activate.
    Go to SM 30 and check again.
    Reward if useful
    Regards,
    Hema Sundara.

  • How to restrict the developers to do DDl Operations on the tables

    Dear All,
    Even i restricted the developers to do DDL operations by updating CHAR_VALUE=disabled in the table SQLPLUS_PRODUCT_PROFILE table in system/manager schema.
    So, now the users are unable to do DDL operations from PLSQL Developer, iSQLPLUS and command prompt.
    But they are doing their DDL Operations from the Java application, i don't know how they are doing this.
    But how can i restrict them
    Thanks
    Mahipal Reddy

    It does not make sense to attempt to restrict users by using security in a tool - like using SQLPLUS_PRODUCT_PROFILE for SQL*Plus. Whoever the person who designed this at Oracle was, needs to be introduced the wrong end of a lead pipe. It is nonsensical to approach security in that fashion.
    As for restricting DLL, there are numerous levels that this can be dealt with inside Oracle. From simply not granting a CREATE TABLE statement, to using schema/DDL triggers.
    But seeing that you have this problem, I'm betting that it's as a result of a flawed open door Oracle security policy.
    You should start at beginning. Determine what the security requirements and access levels are, and then implement these properly in Oracle. Using a DLL trigger for example, is often an exception when it comes to a proper security model implementation in Oracle.

  • How do you restrict the number of table columns on the data tab?

    I have a table with 50+ columns. Is it possible to restrict the list of columns on the data tab to say 5 columns as I'm only interested in seeing/updateing the data for these 5 columns. You can restrict the number of rows using the filter but not the columns. Is there some other way seeing an updateable "view" of the table? I suppose you could create a number of views and edit through them but there are too many combinations.
    regards
    Paul P

    I don't know of any way of reducing the number of columns that display in the Table data grid.
    However, you can rearrange the columns to have the five columns you want to edit as the first five. With fifty columns, even this would be some effort to find and drag them to the left of the view, but it should give you the five columns you want to update on the window at the same time.

Maybe you are looking for

  • Emet 5.1 had DEP activity and closed Office 2003 applications and won't allow Internet Explorer to open in Windows 8 desktop version

    I can't find any answer to why EMET 5.1 blocks Internet Explorer from running in Windows 8 Desktop version.  Initially Google Chrome wouldn't work either but after uninstalling EMET 5.1 and reinstalling it Chrome now works.  Also it prevents Microsof

  • Windows 8.1 won't update on my HP 15-G060CA

    I have tried everything I can think of - which isn't much - the computer says major error and won't work with recovery or any;thing else I try. It is stuck on an 8.1 update from November 2014. Any ideas?

  • Infopackage routine for changing  file name

    Hi Everyone,                            I have to load flat files from application server directories. I get these files from different locations and they are saved in own (location) folders by a script). I would like to run these file from infopacka

  • Image in a Table

    Hi, I have a requirement in which I have to display a text and a imgae in single table coloumn, row. My image is coming from a image server as a URL. When I am trying to concatinate the 2 (text and image), the column is displaying the URL of the imag

  • Error in Flat File to XML conversion

    Hi all, I am trying to convert a flat file to XML using the Sender File Adapter and I am getting the following error message. 2006-01-23 17:23:00 EST: Error: Conversion of complete file content to XML format failed around position 0: Exception: ERROR