Mac OS X environment variables and SAP GUI for Java
Problem with SAP GUI for Java
Few days ago I came across an issue, that I couldn’t open MS Office files via SAP GUI for Java for Mac OS X. This behavior I caught in SCASE and SCASEPS transactions, but maybe it also applies to other transactions (although I wasn’t successful to get the same error in SBWP speaking of attachments).
So, returning to SCASE and SCASEPS transactions – when I tried to open MS Word file, attached to Case, I received error message (SBDV 071) “No temporary directory available for temporary storage”.
Firstly, I thought that the trouble is in SAP GUI Preferences for Applications, where Download and Upload directories are defined. But any changes is these settings did no effect to the problem. Seems, that this setting has no impact on my issue.
So, secondly, I started debugging source code to get the place, where I receive message mentioned above (SBDV 071). I found that the problem was in results of CL_GUI_FRONTEND_SERVICES=>CL_GUI_FRONTEND_SERVICES. It tried to get the value for parameter TEMP and it returned “space”. Looking through SAP manuals (Link), I discovered, that requested by system variable would receive “space” value only if Operating System didn’t have such variable.
My third step was to look through MAC OS X 10.11 environment variables. To do it one needs to start terminal and use “env” command to list defined variables.
I found that there was no TEMP variable, although there was TMPDIR variable, which is the same, as it seems to me. After discovery I decided to add TEMP variable to my Mac OS X configuration and see the results. To skip few details I need to say that the results were positive – I was able to open MS Word document from SAP as it was downloaded in background to specified folder and opened by MS Word for Mac without any additions clicks from me.
How To Set Environment Variables in Mac OS X
As many people are using different versions of Mac OS X, I’m writing down information for 10.6 – 10.11 versions.
OS X 10.6, 10.7
To set an environment variable, enter the following command
- defaults write ~/.MacOSX/environment variable “value”
To find out which environment variables have been set, enter the following command:
- defaults read ~/.MacOSX/environment
OS X 10.8, 10.9, 10.10
To set an environment variable, enter the following command:
- launchctl setenv variable “value”
To find out if an environment variable is set, use the following command:
- launchctl getenv variable
To clear an environment variable, use the following command:
- launchctl unsetenv variable