<<

An Innovative Solution to compatibility problem when Navision Indian version is run in Windows Japanese OS version

Introduction: After successful completion of NAV implementation in one of our Japanese subsidiary in India, one fine morning client support team at Infosys received a call from the client regarding a issue to be solved. “NAV is not working. We are not able to open NAV”. We asked the client to send the error message to us.

The error message from client read as follows “The double- set, 932, on your computer is not supported by this version of Business solutions – Navision”. An internal brain storming and first level investigation with client has brought out the reason for the issue. NAV was accessed from a laptop in which Windows OS of Japanese version is installed.

Diagnosis: What is single byte character set? NAV Indian version is accessible only from Windows OS of worldwide A single byte can be used to represent up to version. NAV Indian version is not 256 different code points in a code page. recognising Japanese OS. Why, Many languages (for example English, French, Japanese consists of and German) require only a single byte of ‘Double byte character set (DBCS)’ storage to represent their alphabets, instead of Single Byte Character Set. punctuation, and special characters. The code pages for these languages are often referred to as single-byte code pages. A double-byte character set (DBCS) is a character set that uses 2-byte (16-bit) characters instead of 1-byte (8-bit) characters. Some languages use characters that cannot be represented by using single-byte What is Double Byte Character Set (DBCS)? codes. Both ASCII and DBCS code pages are actually a mixture of single-byte and double- EBCDIC are byte characters. For example, in the Japanese DBCS code-page (932) single-byte codes. the first 256 characters are occupied by ASCII characters and some Languages that very commonly used Japanese characters called katakana. use double-byte character sets “DBCS stands for Double Byte Character Set. This term has two basic meanings: In CJK computing, the term "DBCS" traditionally means a include Chinese, character set in which every not representable by Japanese, and an accompanying SBCS is encoded in two ; Han characters Korean. The would generally comprise most of these two-byte characters. majority of the character sets The term "DBCS" can also mean a character set in which all provided with characters (including all control characters) are encoded in two bytes. “(Source: From Wikipedia, the free encyclopedia) SQL Server 6.5 are single-byte.

Complex Asian languages such as Chinese, Korean, or Japanese have many What is code page? more characters than Western European A code page, or character set, defines a languages. For example, Chinese has more collection of characters, numbers, than 10,000 characters. New code pages punctuation, symbols, and special characters for a particular language. Using a had to be developed for languages that use process called encoding , each character in multiple bytes of storage to represent all the code page is assigned a numeric value possible code points. A double-byte character set (DBCS) or multiple-byte character set can be used to encode 216, or more than 65,000, different characters.

The remaining characters in a code page above 128 (hex 0x80) are sometimes referred to as extended characters. Extended characters differ from code page to code page depending on the requirements of the language.

Difference between Single-byte and Double-byte Character set Single-byte Character set Double-byte Character set A single-byte character set (SBCS) is a A double-byte character set (DBCS), also known mapping of 256 individual characters to as an "expanded 8-bit character set", is an their identifying code values, implemented extended single-byte character set (SBCS), as a code page. implemented as a code page. An SBCS can correspond either to a A DBCS can correspond either to a Windows or an OEM code page. code page or an OEM code page. A DBCS code An SBCS code page can also include a non- page can also include a non-native code page, for native code page, for example, an EBCDIC example, an EBCDIC code page code page. To help identify an SBCS code page, an To interpret a DBCS string, an application must application can use the GetCPInfo or start at the beginning of the string and scan GetCPInfoEx functions forward. It keeps track when it encounters a lead byte in the string, and treats the next byte as the trailing part of the same character.Applications that support a DBCS must use special functions, such as _mbsstr, Substring searches are not complicated Substring searches are much more complicated with SBCS. with a DBCS.

Solution: By default, double-byte character sets are disabled in the Fin.stx file in Microsoft Dynamics NAV. To enable double-byte character sets, you must replace the Fin.stx files in the Microsoft Dynamics NAV client installation folder.

This can be done by changing the content 00093-00400-010-2: 0 to 00093-00400-010-2: 1 in the fin.stx file. This should be done both in the Client installation folder and in the ENU sub folder.

The fin.stx file is a configuration file that is available when you install the Microsoft Dynamics NAV client. This is an important file and it is the starting point of execution of Navision. The file extensions and protocols are listed in the fin.stx file, where you can customize them. Whenever you install Navision this file will be available in “C:\Program Files\Microsoft Business Solutions-Navision\Client”. Please note that if you are using SQL server, one more fin.stx file will be created. This file is equivalent to DNA and contains all the determining parameters of the installation. The contents of the file varies according to the selection you make during the installation

In this file the language character set is determined by the following line:

// The following entry is for double-byte character set (DBCS) clients (code pages 932, 936, 949, 950) For// Adouble-byte value of 0 indicatescharacters that system a client (NAV DBCS Japanese, is disallowed Korean version) this value is defaulted to 1. So,// dependingA value of upon1 indic theates NAV that version, a client this D BCSvalue is is allowed, defaulted provided to 0 or 1. thatOnly the in thedatabase case of code single bpageyte Navision is a non-DBCS version, code to bepage run in double byte operating system (vice versa) this problem arises. So, the solution is to change this value depending upon the Operating System in which the0009 Microsoft3-00400 -D010ynamics-2: 0 NAV is installed

Conclusion: This is a new learning for the entire team and the team enjoyed both in investigating and solving the is s u e.

Authors: Mohammed Raffe, Senior Consultant, Microsoft Dynamics Practice, Infosys Technologies Ltd, Mail to: [email protected] Bharathi Rengarajan, Project Manager, Microsoft Dynamics Practice, Infosys Technologies Ltd, Mail to: [email protected] Krishnaveni, Software Engineer, Microsoft Dynamics Practice, Infosys Technologies Ltd, Mail to: [email protected]