SAP: deleted users [when/who]?
Actions that are done to a user profile, be that creation, modification or deletion are tracked in a table USH04.
The field PROFS will reflect each of the actions referencing the following characters:
A: add
M: modify
D: delete
Simply enter the user you are interested in and see what has occured over the year.
SAP GUI: enable/disable input field history on text fields
This is sort of a usless but still somewhat interesting fact: I ran in to a problem where a user wasn’t able to see his history when he entered data in to his sap gui. It didn’t matter which field it was every time he would re-login he would not see the data he entered just minutes ago.
I did some reasearch and seen a lot of posts about SAPHistory*.mdb file in the SapWorkDir directory. The user’s history was was being generated so the problem was being caused by something else.
Then I came across a post talking about Low Speed Connection [Reduced Network Traffic] setting which can be found by going through your login pad, clicking on the system and displaying the properties window - followed by going to the Network tab. From what I’ve read it seems that having the setting set to Low Speed Connection could cause the problem of missing input field history. Even though this seemed promissing after getting the user to try a different machine with the High Speed enabled he was still showing the problem.
The final peace of information that I’ve aquired from the web was a little neat SAP feature: if you get to an input field and hold down your Ctrl button you can right click on your mouse and get a pop-up window that would allow you to Disable/Enable History functionality. Typically the field is set to Defaut Settings, so the only thing left to do was to figure out if the user’s default settings were set to Disable History for his SAP system.
to be continued…
PS: another interesting fact that I picked up somewhere: if you scroll up/down using your keyboard in the history field you can delete entries by pushing the delete key. I know, it’s neat.
SAP: set a printer to print on a Single Side
By default SAP printers are set up to print pages based on printer’s default settings. To change that behaviour and control how the data is printed you can do the following:
- Execute transaction: SPAD
- Select your output device and enter the configuration screen
- On a 4.6C version you can go to the Output attributes tab and look at the “Output attributes for list drivers and Smart Forms” section
- Examine the drop down for the Print mode
- Typically by default you will see DEFAULT as the setting that is displayed, simply change the value to S SIMPLEX to allow the data to be prined on a Single Side
For more information on the matter for SAP version 7.0 you can have a look at this document.
SAP: debugging in pop-up windows
Debugging in SAP is something that I do almost on a daily basis, most of the time I get by just by typing the /h command in the transaction window and executing the program but this is not always possible.
The scenario that I speak of occurs when you are debugging a pop-up window. When you are working with a pop-up window there is no convenient transaction window where you can turn on the debugger. So what do you do?
Simple.
Create a new file; lets call it debugger.txt and populate the contents of the file with the following lines:
[Function]
Title=Debugger Session
Command=/h
Type=SystemCommand
Save the file and leave it on your desktop.
Now when ever you get to a pop-up window that you want to debug simply drag the debugger.txt file in to the window and you will activate the debugging session.
Happy hunting!
SAP - ABAP - gui - hiding selection components
If you want to make your reports more functional you can start controling the properties of different components based on selections that are performed by the user.
For instance in this post I’ll show you a quick example of how to hide a on-screen component based on user selection.
PARAMETER: cb_a AS CHECKBOX DEFAULT 'X'
USER-COMMAND batch MODIF ID ida,
cb_bAS CHECKBOX DEFAULT 'X'
USER-COMMAND batch MODIF ID idb.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = 'IDA' AND cb_b NE 'X'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'IDB' AND cb_a NE 'X'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
This example will hide each of the check boxes depending on the selection of the other check-box. If both are selected then both are visible, if one is un-checked then the other is hidden.
The active attribute controls the visibility of a particular screen component. Explicitly: 0 = hidden, 1 = visible.
SAP: transporting program variants
If you have a variant that you want to transport across the system try running program ‘RSTRANSP’.
SAP: List of tables pertaining to Transport Requests
| TABNAME | Description | |
| E070 | Change & Transport System: Header of Requests/Tasks | |
| E070A | Change & Transport System: Attributes of a Request | |
| E070C | CTS: Source/Target Client of Requests/Tasks | |
| E070CREATE | Change & Transport System: Creation Date of Request | |
| E070CTV | Generated Table for View E070CTV | |
| E070DEP | Change & Transport System: Dependencies of Requests | |
| E070L | CTS: Index for Assigning Numbers to Requests/Tasks | |
| E070M | CTS: Target Package/Layer for Requests | |
| E070TC | Help Table for E070 for Client-Specific Imports | |
| E070USE | Use of Current Requests by Users | |
| E070V | Generated Table for View E070V | |
| E071 | Change & Transport System: Object Entries of Requests/Tasks | |
| E071C | Change & Transport System: Client-Specific Lock Flag | |
| E071E | Lang. Transport: Positive List for Generic Object Selection | |
| E071K | Change & Transport System: Key Entries of Requests/Tasks | |
| E071KC | Change & Transport System: Key Entries of Requests/Tasks | |
| E071KF | Change & Transport System: Nametab Info. on (CHAR)Key Fields | |
| E071KFINI | Change & Transport System: Nametab Info. on (CHAR)Key Fields | |
| E071K_30 | Change & Transport System: Key Entries of Requests/Tasks | |
| E071K_KEY | E071K Key Fields | |
| E071S | System-Specific Import Status of Objects | |
| E071V | Generated Table for View E071V | |
| E07T | Change & Transport System: Short Texts for Requests/Tasks | |
| E07T_OLD | E07T Before TRKORR Extension |
Useful transport tables [listed above].
SAP: Favorites and Links
All information about user set up - like favorites and links - are stored in system tables.
So if you want to take a look how the information is layed out just hit se16 and take a look at the following tables.
SMEN_BUFFC: stores favorites informatoin
COLUMN-UNAME will display user name
COLUMN-REPORT will display transaction code
SMEN_BUFFI: stores user associated links
COLUMN-UNAME will display user name
COLUMN-URL will display the link of the address
SAP who has access to what?
To quickly check who has access to a particular object in an SAP system try executing program RSUSR002.
I needed to find out who has access to transaction SMQ1 and managed to accomplish that by filling in the following parameters in the first screen:

RSUSR002
ABAP: execute OS level command
There are many things that one can do to execute a command in an Operating System from an ABAP report. I’ll explain one method that one can take to accomplish this.
- Using transactions SM49 and SM69 set up and test a new OS command that you wish to execute. For the purposes of this post I’ve set up an executable command ZSAPCAR32.
- When I was setting up the new command I’ve selected the option to add additional parameters to the command.
- Once tested and satisfied you can add a new function module [SXPG_COMMAND_EXECUTE] to your report that will call preset executable command.
data: g_rlog TYPE btcxpm OCCURS 0.
CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
EXPORTING
commandname = 'ZSAPCAR32'
additional_parameters = <additional parameters>
operatingsystem = <system you specified in SM69>
TABLES
exec_protocol = g_rlog
EXCEPTIONS
no_permission = 1
command_not_found = 2
parameters_too_long = 3
security_risk = 4
wrong_check_call_interface = 5
program_start_error = 6
program_termination_error = 7
x_error = 8
parameter_expected = 9
too_many_parameters = 10
illegal_command = 11
wrong_asynchronous_parameters = 12
cant_enq_tbtco_entry = 13
jobcount_generation_error = 14
OTHERS = 15.
if sy-subrc eq 0.
LOOP AT g_rlog INTO g_warlog.
* display command output
write g_warlog.
ENDLOOP.
endif.
The above code will execute your OS command and display the results.