Managing ME51n personal preferences

Some companies prefer to make a ME51n preconfiguration for new users. The values are stored in ESDUS table. If you don’t have a custom transaction or maintenance dialog for this table, it might be helpfull to make the change in this table directly. It’s not recommended but it always depends on..

Here are several interesting fields that can be changed:
ReqProposer AFNAM – Requisitioner
ReqProposer BSART – Document Type
ReqProposer DISPO – MRP Controller
ReqProposer WERKS – Plant
ReqProposer LGORT – Location

Ok, let’s do a mass change of the specific value for all users.
SE37 > SE16N_INTERFACE > I_TAB = ESDUS, I_EDIT = X, I_SAPEDIT = X > Execute


Use a filter like “REQ*AFNAM” because the actual field name is “ReqProposer AFNAM”.
Export this filtered table in a spreadsheet, change the necessary values and copy this table to the clipboard. Then select the left upper element of the table in the modifying table and press paste. The source and the target table are the same by fields count, so it will be pasted and changed values will be rewritten with the new. Press save, press green tick.

Unwanted notifications from HANA Cockpit. Things happen.

Before: S/4HANA on-premise systems with HANA Cockpit. Alert notifications were configured to send each alert to the corporate service desk system.

After: S/4HANA was migrated into the SAP Cloud. No access to the OS, HANA databases, or HANA Cockpit. Alert notifications continue to be received every day, but it’s not needed anymore. The SAP Cloud team is responsible for these databases now.

Reflection: I know that even if the HANA Cockpit is turned off, configured database backups continue to work. It happens because the HANA Cockpit is only the configuration point. However, the scheduled job is stored directly in the HANA database. Maybe alert notifications are arranged in a similar way?

All that I have is access to the application server. Lets check it in DB02:

SELECT * FROM "_SYS_STATISTICS"."STATISTICS_EMAILRECIPIENTS"

And voila:

By the way, SAPHANADB user have read/write access to _SYS_STATISTICS scheme, if you know what I mean. But I didn’t say that =)

SAP Logon for Windows. Configuration via regedit

As is well known, all SAP GUI configuration parameters can be made in Windows Registry. It could be convenient to make a group policy to have a single point of administration for all workstations.

Here is my collection of lovely registry keys:

Security level:
If you don’t want to let users accidentally press the “DENY” button and lose access to write to the file.

[HKEY_CURRENT_USER\Software\SAP\SAPGUI Front\SAP Frontend Server\Security]
“SecurityLevel”=dword:00000000
“DefaultAction”=dword:00000000

Branding:
If you want to use your own logo for all SAP LOGONs.

[HKEY_CURRENT_USER\Software\SAP\General\Appearance]
“UseBrandingImage”=dword:00000001
“BrandingImage”=”\domain.local\LogonScript\SAP\SAP_LOGO.png”

The one SAP GUI theme for all users:
[HKEY_CURRENT_USER\Software\SAP\General\Appearance]
“SelectedFallbackTheme”=dword:00000100
“SelectedTheme”=dword:00000001

Available themes:
0x1 (Dec=1) = SAP Signature Design
0x2 (Dec=2) = Enjoy Theme (Enjoy Design)
0x4 (Dec=3) = System Dependent Theme (Enjoy Design)
0x8 (Dec=8) = Streamline Theme (Enjoy Design)
0x10 (Dec=16) = Tradeshow Theme (Enjoy Design)
0x20 (Dec=32) = Classic Design
0x40 (Dec=64) = Corbu Design
0x80 (Dec=128) = Blue Crystal (MS Windows 7 and higher)

Show dropdown key for all lists:
[HKEY_CURRENT_USER\Software\SAP\SAPGUI Front\SAP Frontend Server\Customize]
“Dropdown.ShowKey”=dword:00000001
“Dropdown.SortKey”=dword:00000001

Show keys within dropdown lists:
[HKEY_CURRENT_USER\Software\SAP\SAPGUI Front\SAP Frontend Server\Customize]
“ListLines”=dword:00000001

Don’t show border:
If you use something like an RDP server without hardware acceleration, it could be helpful.
[HKEY_CURRENT_USER\Software\SAP\General\Appearance]
“ShowShadowBorder”=dword:00000000

Use logon language as default:
There is a hierarchy of language configuration parameters: profile language parameter, sap logon language parameter, and SU01 language preference. Disabling this parameter will allow you to use the logon language preference from SU01.
[HKEY_CURRENT_USER\Software\SAP\SAPLogon\Options]
“UseSAPLogonLanguageAsDefault”=dword:00000000

Logon language value:
[HKEY_CURRENT_USER\Software\SAP\General]
“Language”=”EN”

SAP System color for Signature theme:
[HKEY_CURRENT_USER\Software\SAP\General\Appearance\Systems\<SID>]
“ThemeName”=”SAP Red”

Available themes:
SAP Gold
SAP Green
SAP Purple
SAP Red
SAP Signature Default

SAP System color for Belize theme:
[HKEY_CURRENT_USER\Software\SAP\General\Appearance\Systems\<SID>]
“ThemeNameBelize”=”Belize Red”

Bonus. Secure login kerberos preference:
[HKEY_CURRENT_USER\Software\SAP\SecureLogin]
“TokenType”=”kerberos”
“allowFavorite”=dword:00000001

Can’t sign into hulu with Disney bundle

What a disgrace for such a big company. Previously I had a HULU account and a Disney separately. After buying the “Disney bundle” I wasn’t able to login into HULU with Disteny’s account because I already had the account with the same email. Recovering an account didn’t do anything, no email was received. After 30 minutes at HULU’s tech support, I’ve decided to make a trick. I just changed my email at Disney’s account and tried to activate HULU’s account. I relogined to Disney with the new credentials just in case. And it helped! After that I changed my email back and all became good.

SAP system refresh. Preservation of certain tables from overwriting

You would like to make a system refresh from production to a quality assurance system. But after this refresh, you will have to reconfigure some things back. For example, the state of SLICENSE, SM59, WE20, WE21, BD64 transactions.

Here is an example of how to put SM59 data into a transport request and import it after the system refresh is finished.

Here is a catalog structure:

export_sm59.sh:
R3trans -w /usr/sap/trans/EXPORT/SM59/LOG/EXPORT_SM59.log /usr/sap/trans/EXPORT/SM59/R3T/export_sm59.r3t

export_sm59.r3t:

Export
file '/usr/sap/trans/EXPORT/SM59/DUMP/SM59.DMP'
delete from rfcattrib
select * from rfcattrib
delete from rfcdes
select * from rfcdes
delete from rfcdoc
select * from rfcdoc
delete from rfccheck
select * from rfccheck

import_sm59.sh:

R3trans -w /usr/sap/trans/EXPORT/SM59/LOG/IMPORT_SM59.log /usr/sap/trans/EXPORT/SM59/R3T/import_sm59.r3t

import_sm59.r3t:

import file = '/usr/sap/trans/EXPORT/SM59/DUMP/SM59.DMP'

So you need to run :

  1. export_sm59.sh before system refresh begins. It triggers the script export_sm59.r3t to export SM59 data to a transport request
  2. import_sm59.sh after system refresh ends. It triggers the script import_sm59.r3t to import SM59 data from the transport request

Please note that in this case SM59 data will be rewritten, but not added.
In addition, this command doesn’t mean that it will remove any data from the tables, it’s related to the created transport request:
delete from rfcattrib
select * from rfcattrib


It was tested with all mentioned transactions above, the main question is which tables should be used? =)

Uploading and uploading files from the S/4HANA system

Transactions:
To Upload files from Presentation Server to Application Server:
CG3Y

To Download files from Application Server to Presentation Server:
CG3Z

There is an analogue in the form of FM:
To Upload files from Presentation Server to Application Server:
ARCHIVFILE_CLIENT_TO_SERVER

To Download files from Application Server to Presentation Server:
ARCHIVFILE_SERVER_TO_CLIENT