You will face confusing repercussions if you do not fill in the currency code field in the logon client. Using an Accounts Receivable example, the author demonstrates how to avoid this situation and explains the logic behind it.
Customization for currency exchange rates can be one of the more interesting adventures in R/3. So many different kinds of things are linked to their own USD, EUR, GBP, etc., currency code. This includes not only transaction documents such as journal entries or invoices, but also master data such as cost centers, orders, and G/L accounts. Perhaps the most surprising of all — each logon client has a place to type in a currency code. You can see this in Figure 1.

Figure 1
Each logon client has a place to type in a currency code
Now, notice in Figure 1 that for my example Client 100, I have not yet bothered to type in a currency code. I have done this on purpose to more easily answer this question — Why does the logon client have a currency?
Instead of trying to explain a lot of techno-gibberish, maybe this article will be easier to read if I just give one example within the FI/CO modules. Money is usually fun to talk about, and incoming money is nicer to imagine than outgoing money. So, let's focus on Accounts Receivable (A/R).
If you are not familiar with the A/R Information System submodule that comes with your SAP R/3 system, you likely will still be able to follow along because I'll be using lots of screenprints. In short, the A/R Information System is a predefined set of offline (not real-time) statistics that you can generate periodically and store separately from the data that is in the real A/R subledger. R/3 also comes delivered with standard reports for viewing those statistics. Many people think that these are easier to use than the standard reports that get their data directly from the A/R subledger. One simplified example is shown in Figure 2.

Figure 2
Simple example of the standard reports in the A/R Information System
Of course, some configuration is required. One setting that most people don't realize needs to be in place is the logon client's currency code. The question is why.
Suppose your organization had two or three or more company codes, and that you wanted to view A/R-related statistics on the entire organization. You could pay a programmer to develop a custom report. Or, you could set up the A/R Information System to generate statistics for all the A/R debits and credits it finds for company code 1, company code 2, and company code 3 as a single, generic summary.
The field in every FI/CO-related SAP R/3 database table that can best be used to summarize data in this way is not the company code field. It is the (logon) client field. Each and every debit and credit stored in your system contains a reference to the client number that the end user was logged onto. (To see this for yourself, view some of your A/R data using transaction code SE16 for table BSID).
It is for this reason that the Due date analysis statistic available through the A/R Information System offers you the "client" option, as can be seen in the screenprints shown in Figures 3, 4, and 5.

Figure 3
Linking an A/R Information System program with a variant

Figure 4
The initial screen for ABAP variants

Figure 5
One of the options in the variant is the client field
Figure 3 shows the main customization screen for the A/R Information System, where you link one of the delivered statistics-gathering programs (such as RFDRRE01) with specific instructions (via a variant, such as SAP_D01A).
To actually make settings in the variant SAP_D01A, you can navigate directly from that screen. Just click once on the name of the variant, and then click once on the Maintain variant button. In response, the system shows you a screen similar to what you see in Figure 4.
If you click once on the Change button, you see the possible options contained in that program's variant. Notice in the screenprint shown in Figure 5 that one of the check box options is labeled Create - client.
At this point, you would be able to ask R/3 to generate your A/R Information System statistics with one caveat. Your logon client must have a currency code. If it does not, such as my Client 100 back in Figure 1, bad things will happen. Well, maybe not so bad, but definitely confusing. First, your request fails. You won't really know why it failed. You just see that the background job was canceled (Figure 6). You know that you never asked for it to be canceled.

Figure 6
The unfriendly Canceled (your background job) message
If you are comfortable enough with SAP R/3 to go searching for more details on this surprise, your curiosity will be rewarded with an even more confusing system message, such as the one shown in Figure 7 on the next page. In fact, what's really interesting about this particular currency conversion error message is that the system I was working in had everything in just a single currency (USD). So not only do you get an error message that asks you to supply an exchange rate from USD to " " (which, by the way, is impossible to configure in the exchange rates table), but you were not even expecting to convert in the first place.

Figure 7
The "please do something that can't be done" error message
You are now hopelessly confused. Unless, that is, you are aware that the A/R Information System is trying to compile client-level summarization statistics, and that the logon client has an optional setting for a currency code.
Notice in the screenprint shown in Figure 8 on the next page that the RFDRRE01 program (that you linked to a variant back in Figure 3) has hard-coded instructions (i.e., program code) to get the currency code from the logon client table I showed you earlier in Figure 1 (field name T000-MWAER). The A/R Information System considers this to be the "local currency" for any statistic that summarizes at the logon client level.

Figure 8
The hard-coded instructions to get the logon client's currency
In summary, SAP R/3 has a great many things that require a currency code. These include master data, transaction data, and customization data. The one item that most people do not realize also might need a currency code is the logon client. Perhaps the easiest way to understand why this is so is to think about this situation: You might want to compile accounting statistics for an organizational unit more general than the company code. In R/3, the one field in every FI and CO database table more general than the company code is the client field.
Kurt Goldsmith
Kurt Goldsmith is a senior business consultant for Enowa Consulting, specializing in the diagnosis and resolution of productivity-related integration issues between a company’s division of labor (end users, managers, executives) and SAP software (R/3, BW, APO, CRM). He also has a lifetime performance record of one win and two third-place finishes from five career starts as a thoroughbred racehorse trainer.
You may contact the author at kurt.goldsmith@enowa-consulting.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.