2012 Mar 01 5:10 PM
Any idess to create custom transaction for SE16? I have read many forums but didn't get a straight answer. My requirement is to provide 100 + tables access to business without SE16/SE16N. I can create custom authority check to validate table name before displaying the table contents. Tried copying RS_TABLE_LIST_CREATE function module and studied S_TABU* authorizations, no luck. Also I dont wanted to create query for each table and creating individual table access transactions (variant transaction). Please help me to give a straight answer, I would really appreciate it. Thank you.
2012 Mar 01 5:52 PM
SAP uses FM RS_TABLE_LIST_CREATE for SE16 and SE16N_INTERFACE for SE16N.
You can create a simple report or module pool which can accept the table name. You should also consider creating Custom Auth Object. This Auth object with table name should be assigned to Valid Users. Check Authority using the AUTHORITY-CHECK OBJECT before calling the above said FMs to display SE16 or SE16N.
Check these on how to use these FMs:
[Call Standard Table Display (SE16) from Report|http://help-abap.zevolving.com/2008/10/call-standard-table-display-se16-from-report/]
[Call a New Standard Table Display (SE16N) from Report|http://help-abap.zevolving.com/2008/10/call-a-new-standard-table-display-se16n-from-report/]
Regards,
Naimesh Patel
2012 Mar 01 6:06 PM
Thank you Naimesh for your help. Yes, as you said, I can create a custom authorization to check inital table entry check.
I try to copy RS_TABLE_LIST_CREATE to Z* and was able to pass the first valiation. When I try to execute the output, I get a message "You are not authorized for transaction SE16". I get "You are not authorized for transaction SE16" when I used RS_TABLE_LIST_CREATE function module in a custom program.
2012 Mar 02 5:52 AM
Hi,
Are you able to access SE16 as a standalone transaction.
I tried executing the mentioned FM, and it took me to relevant table screen without any issues. Please see if you have authorization to SE16 or SE16N.
thanks!
VS.
2012 Mar 02 7:05 AM
Hi,
Try this.
1. create a custom program - zse16
2. use the below function module
CALL FUNCTION 'SE16N_START'
EXPORTING
I_DISPLAY = 'X'.
3. Create a tcode for this program - zse16 and provide to the business.
4. This tcode will allow the user to display the contents of the table.
5. If required to change the table data, then play around with the parameters of the function module.
Hope this may be helpful.
Regards,
Sharin
2012 Mar 02 10:51 AM
Hello ,
Follow the below steps for creating program for customised SE16 :
1. Create a new program for authority check .
2. In this program on AT SELECTION SCREEN event :
2.1 Check if table name entered by user is exist in dictionary (DD02L selection ).
3. Write code as to perform authorization checks, If production client (T000 selection )
4, If t000-cccategory EQ 'P' then only perform authorisation check .
5. Check that the table is an application type table, otherwise ok ( dd02l-contflag EQ 'A)
6. Check the Authorization Group of the table (TDDAT)
7. Check that the user has access to the Authorization Group assigned .
8. Use FM RS_TABLE_LIST_CREATE to display contents of table .
2012 Mar 02 2:37 PM
I have decided NOT to give SE16 / SE16N access.
Sharin: Need access for limited tables, say 100 tables. Any ideas how to contol this? When you are in SE16N transction, you can view any tables you can,
TISHAD: RS_TABLE_LIST_CREATE is checking SE16 transaction in ECC6. I don't wanted to give SE16 access
2012 Mar 02 11:38 PM
Hi Nagarajan Ramudu,
Once I did for a client this way:
1) Copy SE16N_INTERFACE to ZSE16N_INTERFACE.
2) Comment perform authority_check
*..Check the authority of the user
perform authority_check using i_tab
changing i_edit.
3) Put your custom authority check in this point.
4) Create a report and call this function Z.
5) Create a transaction to call the program report.
In my case it was only one table, you will have to somehow pass the 100 tables.
Regards
Bruno Xavier.
2012 Mar 05 10:05 AM
Hi,
You can restrict the tables by following either of the 2 methods. But this will work only for pre-defined tables only as you need to provide table names.
1. Create a Z- set using GS01. And maintain all the relevant table names. Later on inside the program you can evaluate the set from table 'SETLEAF'. If the table name is maintained then check will pass and you can display the table else provide an error message.
2. In your custom auth object have one field named say TABNAME. While assigning authorization to the user you can maintain the relevant table names against this field.
I would suggest to go for the 1st option as it will be more flexible in nature and can be maintained in the client directly (authrization to limited users only like some central team). Maintaining in roles will be a bit more tedious as it will involve modification to the roles each time you change table names.
Hope this will solve your purpose.
Regards
Pradipta K Mishra
Edited by: Pradipta Kumar Mishra on Mar 5, 2012 5:10 AM