NLS Terminology

advertisement
Title: J. D. Edwards OneWorld® Double
Byte Implementation
Abstract: In depth white paper on OneWorld Double Byte Implementation
Table of Contents
1. NLS Terminology
2. Microsoft Windows Codepages and SQL Codepages
3. Double Byte Database Codepages
4. Windows and UNIX Considerations for Double Byte Setup
5. AS/400 Considerations for Double Byte Setup
6. Appendix 1: How to Setup Windows 2000 SystemLocale (codepage) Settings
7. Appendix 2: How toSetup NLS_LANG Variables for Oracle Clients
NLS Terminology
Character set and Codepage for languages
A Character set is a collection of elements used to represent textual information. A
codepage is a coded character set. Foreign (Non-English) codepages typically contains all
English language characters (ASCII/ANSI Standard), in conjunction with the foreign
characters for the given foreign language. Also note that a codepage sometimes may or
may not contain the characters for 2 or more foreign (Non-English) languages. For
example, a codepage ISO8859-1 contains variety of characters for Western European
languages, while a Shift JIS codepage only contains characters for Japanese and English.
Double byte code pages only contain English character set and the specified double byte
language characters.
Chart 1: An example of a codepage
Double Byte code pages
7-bit codepages and 8-bit codepage schemes
There are two common types of codepages used for double byte languages. 7-bit
codepages only assign 7 bit (127 code points) to textual information. A common example
of a 7-bit codepage is the ASCII character set. 8-bit codepages assign all 8 bit (255 code
points) of a byte for characters. Double byte codepages use up to 2 bytes to represent
textual information, hence the name ‘double byte.’ A double byte codepage can be of
either 7-bit codepage or an 8-bit codepage.
Back to Top
Microsoft® Windows codepages and SQL codepages
Windows Code pages
Software vendors and organizations defining industry standards, such as Microsoft, IBM,
Oracle, ISO, ANSI, and Unicode Consortiums define their own system codepages. In a
OneWorld implementation, data and tables are primarily delivered from a Microsoft®
Access database, hence it is stored in a codepage defined by Microsoft.
Chart 2: J.D.Edwards Languages and Microsoft Codepages
J.D.Edwards
Language Tier
Language
Tier1
English
French
German
Italian
Portuguese
Spanish
Japanese
Tier2
Microsoft
Display name
NLS Codepage
1252
ANSI - Latin I
932
ANSI/OEM –
Danish
Dutch
Finnish
Norwegian
Swedish
Korean
1252
Japanese Shift JIS
ANSI - Latin I
Simplified Chinese
936
ANSI/OEM Korean
ANSI/OEM –
950
Simplified
Chinese GBK
ANSI/OEM –
Traditional Chinese
Tier3
Microsoft
Czech
Hungarian
Polish
Arabic
Greek
Russian
949
1250
1256
1253
1251
Traditional
Chinese Big5
ANSI - Central
Europe
ANSI - Arabic
ANSI - Greek
ANSI - Cyrillic
Turkish
1254
ANSI - Turkish
Windows Locale (Codepage setting)
The system locale (sometimes referred to as the system default locale) for Windows OS
versions, determines which codepage(s) and associated font(s) are to be used as the
default for the system. These codepages and fonts enable non-Unicode applications to run
as they would on a system localized to run language set by the system locale.In
OneWorld®, all Windows clients and servers need to have appropriate system locale
settings.
Windows 95/98
The system locale for Windows 95/98 is set based on the language version installed and
cannot be changed once installed.
Windows NT4.0 variants (Including TSE server)
The system locale of this OS is pre-selected by the language version, but can later be
modified and selected in the Regional Settings Control Panel. Proper setting of the
codepage(s) and font(s) on NT4.0 is somewhat complicated and has been found to cause
character display problems on OneWorld®. For this reason, it is not recommend
modifying these setting on NT4.0 once a specific language version has been installed and
selected.
Windows 2000 variants (Including TSE server)
Similar to NT4.0, system locale of this OS is pre-selected by the language version, but
can later be modified in the Regional Settings Control Panel. Given this release’s new
language support architecture, Windows 2000 supports multiple system locales for any
supported locale on all language versions. Changing system locale is simple and easy,
while maintaining system integrity. When the system locale is changed in Windows
2000, the appearance of the OS such as menus, file names, etc. will remain the same, but
will allow OneWorld to use language(s) set in the system locale. For example, a
workstation or server with base English Windows 2000 installed is able to handle several
Western European languages with OneWorld. (see chart 1) The reason for this is that the
English language characters resides in codepage 1252 used for Western European.
Consequently, if the system locale of the machine is changed to Japanese, then the user
can only use Japanese and English (Double byte Japanese codepage contain the character
set for English language (ASCII), as most other codepages contain). In either case, the
visual appearance of Windows 2000 menus, existing filenames, etc. will be in English
regardless of the system locale or language used in OneWorld.
See appendix 1 for how to setup system locale.
Back to Top
Double Byte Database Codepages
Microsoft® SQL and Oracle Settings
SQL Server and Oracle has codepage setting for each database. If the codepage used on a
client machine and the database codepage differs, a database character conversion occurs
between the client and the database. It is not recommended to use this functionality in MS
SQL Server or Oracle using conventional (non-web) OneWorld architecture. Make sure
ODBC settings for ‘Perform translate Characters’ for SQL server are un-checked, and
NLS_LANG setting for Oracle clients and servers should be matched to eliminate any
database conversions at runtime.
See appendix 2 for how to configure Oracle NLS_LANG setting.
Back to Top
Windows and UNIX® Considerations for Double Byte
Setup
Windows
Deployment Server
System locale of a deployment server needs to be the same language (codepage) as the
one being installed. For example, the system locale of the machine needs to be Japanese
to install Japanese onto OneWorld. Note that the language version of Windows 2000 does
not affect/effect any of the language installation processes.
Client machines/ TSE Servers
System locale setting for a client machine needs to be the same codepage as the language
being used for OneWorld on that particular machine. User can only use the language,
which resides in OS’s default codepage (system locale).
For example, if an environment has Japanese and Spanish installed, then Japanese client
(Japanese NT, 98,95 and any windows2000 with system language set to Japanese) can
only handle Japanese. If users try to use Spanish on the machine, then they will get
garbage font characters, and vice versa
Windows and UNIX
Enterprise Server
Windows servers and UNIX machines do not need to be configured at the OS level to use
languages installed for OneWorld. English OS setting can be used on the Enterprise
server for OneWorld with languages installed.
Back to Top
AS/400® Considerations for Double Byte Setup
With OneWorld® on an AS/400® platform that is being configured for any double byte
language requires special configuration steps throughout the implementation. In
particular, double byte implementations with the AS/400® requires several manual
procedures for the installation of Data Dictionary tables, installation of Central Objects,
Client Access setup, host code loading, ODBC modifications, JDE.INI modifications,
and package build considerations.
Installing Data Dictionary on AS/400® DB2®
§
Double-byte Data Dictionary tables
When installing the Data Dictionary tables, you must specify *YES in the Double
Byte option field in the Install Data Dictionary screen. This will ensure that the Data
Dictionary tables are restored with the necessary Double Byte Data Type “O” (DBCSOpen Data).
Installing the Central Objects on AS/400® DB
Re-create the Processing Option Text file (F98306) for Double-byte languages on
DB2/400
Before running the Installation Workbench, double-byte customers must re-create
F98306 with the appropriate CCSID using the Copy Table (CPYTBL). During the
original installation of the Central Objects tables, the table is restored and created with a
CCSID of “37”. Since this table contains PO Text (Processing Option text), we need to
convert the CCSID of this table to the specific Double Byte language being utilized.
If the table is not re-create accordingly, the PO text will be corrupted without any errors
or indication during the Specification Table Merge.
Installation Workbench
Access Database
You must have an appropriate Access 97 language version or Access 2000 on your
deployment server when you run the Installation Workbench. Access 2000 can recognize
the data in other languages but Access 97 can’t recognize it. If you don’t use the Access
97 language version or Access 2000, Access will fail to open a language MDB file during
the Control Table Merge and Specification Table Merge
Client Access Properties on the Deployment Server
If you are running the Installation Workbench on the English Windows NT or Windows
2000 in which the System locale isn’t set to an appropriate language. You must change
the ANSI code page in the Client Access Properties before running the Installation
Workbench.
If you are running it on the Windows NT language version or Windows 2000 with the
appropriate system locale, you don’t need to change this option.
ANSI code pages for Double–byte languages
Language
Korean
Japanese
Simplified Chinese
Traditional Chinese
Code Page
949
932
936
950
CCSID of User ID "JDE"
Before running the Installation Workbench, you must change the CCSID of user ID
“JDE” to an appropriate CCSID for the Double-byte languages listed below, because the
tables are created based on the CCSID of user ID “JDE”.
CCSID values for Double-byte languages
Language
Korean
Japanese
Simplified Chinese
Traditional Chinese
CCSID
933
939
935
937
Registry Setting for ODBC Data Sources "JDE"
To load a double-byte data correctly via ODBC, you need to edit the following registry
setting in: My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\odbc.ini
Value Name: DBCSNoTruncErr
Value Data: 1
If your ODBC Data Sources don’t have this registry value, some records will fail to be
insterted into tables with an “Insert Record Failed” errors appearing. The following
errors will be logged in the JDE.LOG during the Control Table Merge and Specification
Table Merge.
1284/524
Mon Mar 05 11:32:28 2001
JDBODBC2031
ODB0000183 - SQLExecute failed
1284/524
Mon Mar 05 11:32:28 2001
JDBODBC2031
[IBM][Client Access Express ODBC Driver (32-bit)][DB2/400 SQL] Data
truncated. - SQLSTATE: 01004
1284/524
Mon Mar 05 11:32:28 2001
jdb_drvm887
JDB9900401 - Failed to execute db request
1284/524
Mon Mar 05 11:32:28 2001
jdb_exet4411
JDB3400009 - Failed to perform Insert for F0005D
1284/524
Mon Mar 05 11:32:28 2001
tcrun391
TCE009143 - Insert Row failed for table F0005D.
Edit Translation Table in the Client Access (For Simplified Chinese ONLY)
Before running the Installation Workbench, you need to edit the translation tables
(03A7056A.TBL and 056A03A7.TBL) in IBM’s Client Access to create tables and load
translated UDC and Data Dictionary correctly.
Please refer to Appendix 3 for more details about this issue.
"mso-fareast-font-family: Arial Unicode MS; Installing: " MS"? Unicode
"Arial mso-fareast-font-family:> Installing OneWorld on the Enterprise
Server
INI Settings (\\deployment server\HOSTS\AS400\enterprise server)
1. LocalCodeSet value for Double-byte languages
The following table shows the LocalCodeSet Value for the Double-byte languages.
Language
Workstation
Korean
Japanese
Simplified Chinese
Traditional Chinese
KO_KSC
JA_SJIS
SC_GB
TC_BIG5
Enterprise Server
(AS/400)
KO_EBCDIC
JA_EBCDIC
SC_EBCDIC
TC_EBCDIC
[INSTALL]
LocalCodeSet=JA_EBCDIC (Example for Japanese)
CCSID of QSECOFR (Simplified Chinese and Korean Only)
If you log onto AS/400 as QSECOFR with CCSID “933” or “935” and try to install the
host CDs, FTP will fail and the following errors will be logged in
JDEOW/FTPOUTPUT. To avoid this problem, you need to change the CCSID of
QSECOFR to other than 933 or 935, such as 37.
OUTPUT REDIRECTED TO A FILE.
INPUT READ FROM SPECIFIED OVERRIDE FILE.
CONNECTING TO HOST NOBUNAGA AT ADDRESS 10.74.99.154 USING
PORT 21.
220 nobunaga Microsoft FTP Service (Version 5.0).
ENTER LOGIN ID (QSECOFR):
331 Password required for JDE.
230 User JDE logged in.
Windows_NT version 5.0
ENTER AN FTP SUBCOMMAND.
> cd c:$JDEdwardsOneWorld$B7333$HOSTS$AS400$J400E
550 c:$JDEdwardsOneWorld$B7333$HOSTS$AS400$J400E: The system
cannot find the file specified.
CCSID of PRINTQUEUE
You need to change CCSID of PRINTQUEUE to 65535 from37 after the installation is
finished. If you don’t change the CCSID value, you will get the following error message
when you open the PDF.
Also the following message will be logged in JOBLOG on AS/400.
MESSAGE..: SUBSTITUTION CHARACTERS MAY BE USED IN DATA
CONVERSION.
CAUSE . . :
SET
WHEN CONVERTING DATA FROM CODED CHARACTER
ID (CCSID) 1027 TO CCSID 37 SUBSTITUTION
CHARACTERS
MAY BE USED. DATA IN MEMBER F226, FILE PRINTQUEUE
IN
LIBRARY B7332SYS MAY BE AFFECTED.
CCSID of INI
You need to change the CCSID of PRINTQUEUE to 65535 from37 after the installation
is finished. If you don’t change it, you will get the following error message in
JDENET_K.
MESSAGE..: SUBSTITUTION CHARACTERS MAY BE USED IN DATA
CONVERSION.
CAUSE . . :
SET
WHEN CONVERTING DATA FROM CODED CHARACTER
ID (CCSID) 37 TO CCSID 1027 SUBSTITUTION
CHARACTERS
MAY BE USED. DATA IN MEMBER JDE, FILE INI IN
LIBRARY
B7333SYS MAY BE AFFECTED.
Correct CCSID values for tables on AS/400®
The following table shows the correct CCSID values for each table.
Table
Data Dictionary
Central Object (F98306 Only)
Central Object (Others)
Other tables
INI
PRINTQUEUE
CCSID
65535
Appropriate CCSID
37
Appropriate CCSID
65535
65535
Installing OneWorld® on the Workstations
Modifying the ODBCDataSource.inf on the Deployment Sever
Need to add the following value to all ODBC Data Sources.
DBCSNoTruncErr=1
If the ODBC Data Sources don’t have this registry value on the Workstations, some
records will fail to be inserted into tables with an “Insert Record Failed” errors
appearing. The following errors will be logged in the JDE.LOG.
1284/524
Mon Mar 05 11:32:28 2001
JDBODBC2031
ODB0000183 - SQLExecute failed
1284/524
Mon Mar 05 11:32:28 2001
JDBODBC2031
[IBM][Client Access Express ODBC Driver (32-bit)][DB2/400 SQL] Data
truncated. - SQLSTATE: 01004
1284/524
Mon Mar 05 11:32:28 2001
jdb_drvm887
JDB9900401 - Failed to execute db request
1284/524
Mon Mar 05 11:32:28 2001
jdb_exet4411
JDB3400009 - Failed to perform Insert for F0005D
1284/524
Mon Mar 05 11:32:28 2001
tcrun391
TCE009143 - Insert Row failed for table F0005D.
AS/400® Package Build Considerations
Client Package
When you are buildingthe client package with translated PO text, you should run it from
the Windows NT language version or Windows 2000 in which the system locale is set to
an appropriate language. If the system locale on the OS doesn’t match the language, the
translated text in POTEXT will be corrupted.
Server Package
When you build the server package, you should run it from the OneWorld client with
appropriate LocalCodeSet value which matches the one in INI on server. If the
LocalCodeSet value on local is different from the one in the server, the server package
build will fail and the following errors will be logged in jde.log on the server.
1608 Fri Jan 5 17:25:13
2001
JDEKRNL_1/C/CNVTCHRA1431
iconv_open failed
To:IBMCCSID00935, From: IBMCCSID012520000000 1608 Fri Jan 5
17:25:13 2001
JDEKRNL_1/C/CNVTCHRA1441
iconv
failed 1608
Fri Jan 5 17:25:13
2001
JDEKRNL_1/C/CNVTCHRA1441
iconv
failed 1608
Fri Jan 5 17:25:13
2001JDEKRNL_1/C/CNVTCHRA1441
iconv failed 1608
Fri
Jan 5 17:25:13 2001 JDEKRNL_1/C/CNVTCHRA1441
iconv
failed 1608
Fri Jan 5 17:25:13
2001
JDEKRNL_1/C/CNVTCHRA1441
iconv
failed 1608
Fri Jan 5 17:25:13
2001
JDEKRNL_1/C/CNVTCHRA1441
iconv
failed 1608
Fri Jan 5 17:25:13
2001JDEKRNL_1/C/CNVTCHRA1441
iconv failed 1608
Fri
Jan 5
Back to Top
Appendix 1: How to Setup Windows 2000 System
Locale (codepage) Settings
Windows 2000 variations have system locale settings. This setting needs to be set
correctly for the OneWorld language environments.
System language is set by regional settings in control panel.
You will see that selected language for the system is grayed out and marked as 'Default'.
Selecting system language is done by selecting the System locale in the window which
appears when you press 'set default' button. Rebooting is required for the change to take
effect.
You can find out more about system locale and other information about windows 2000's
functions for globalizations on Microsoft's web site.
http://www.microsoft.com/GLOBALDEV/FAQs/Locales.asp?
Back to Top
Appendix 2: How to Setup NLS_LANG Variables for
Oracle Clients
Oracle database has the functions to translate codepages. In order for the OneWorld
language environments to work properly, the NLS_LANG parameter of the Oracle client
needs to be set correctly. This document shows how to configure these settings on UNIX
and windows environments. These settings need to be done for both servers and clients.
Windows
A system variable needs to be added for Windows clients. This can be added/edited using
‘system’ control panel. For NT, setting can be found on ‘Environments’ tab. For windows
2000, it is under ‘Environment variable’ window accessed by pressing a button on
‘advanced’ tab. Below is a screen shot form Windows 2000.
The value after a period, in this case ZHT32EUC, represents the codepage setting of
Oracle client, and should be matched to the setting of the database. If for some reason
you need to use different codepage for the client and server, make sure these codepages
are fully compatible each other. A period must be in front of the codepage name.
You can check the codepage settings of the oracle database by executing a query below
on Oracle client such as SQL Plus.
SELECT VALUE FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER = 'NLS_CHARACTERSET'
UNIX
If the enterprise server is a UNIX machine, NLS_LANG settings is set for the OneWorld
user on the OS user profile (typically jdebxxx). To add the correct settings to the UNIX
user, user’s .profile file needs to be modified.
For example if your database is using ZHT32EUC(traditional Chinese) and is on RS6000
or HP9000, add a line below to the .profile file.
export NLS_LANG=.ZHT32EUC
Again, a period needs to be added in front of the codepage name.
Please refer to the manuals of Oracle and the OS for more details about NLS_LANG
settings of the UNIX users.
For more information about Oracle’s NLS functions please refer to national language
support guide. The guide can be found on http://otn.oracle.com/
Back to Top
Download