Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Purpose of UNICODE CHECKS ACTIVE

Former Member
0 Kudos

Hi all,

can anyone tell me the purpose of 'UNICODE CHECKS ACTIVE' in the attributes of a report. what is its use?

Thanks in advance.

Vinoth.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

In the past, SAP developers used various codes to encode characters of different alphabets, for example, ASCII, EBCDI, or double-byte code pages.

Using these character sets, you can account for each language relevant to the SAP System. However, problems occur if you want to merge texts from different incompatible character sets in a central system. Equally, exchanging data between systems with incompatible character sets can result in unprecedented situations.

One solution to this problem is to use a code comprising all characters used on earth. This code is called Unicode (ISO/IEC 10646) and consists of at least 16 bit = 2 bytes, alternatively of 32 bit = 4 bytes per character. Although the conversion effort for the SAP kernel and applications is considerable, the migration to Unicode provides great benefits in the long run:

<b>BENEFITS</b>

1 The Internet (www) and consequently also mySAP.com are entirely based on Unicode, which thus is a basic requirement for international competitiveness. Unicode allows all SAP users to install a central system that covers all business processes worldwide.

2 Companies using different distributed systems frequently want to aggregate their worldwide corporate data. Without Unicode, they would be able to do this only to a limited degree. With Unicode, you can use multiple languages simultaneously at a single frontend computer.

3 Unicode is required for cross-application data exchange without loss of data due to incompatible character sets. One way to present documents in the World Wide Web (www) is XML, for example.

Regards

Srikanth

4 REPLIES 4

Former Member
0 Kudos

Hi,

Search this forum with keyword UNICODE, you will get lot of information.

Regards,

Senthil

Former Member
0 Kudos

In the past, SAP developers used various codes to encode characters of different alphabets, for example, ASCII, EBCDI, or double-byte code pages.

Using these character sets, you can account for each language relevant to the SAP System. However, problems occur if you want to merge texts from different incompatible character sets in a central system. Equally, exchanging data between systems with incompatible character sets can result in unprecedented situations.

One solution to this problem is to use a code comprising all characters used on earth. This code is called Unicode (ISO/IEC 10646) and consists of at least 16 bit = 2 bytes, alternatively of 32 bit = 4 bytes per character. Although the conversion effort for the SAP kernel and applications is considerable, the migration to Unicode provides great benefits in the long run:

<b>BENEFITS</b>

1 The Internet (www) and consequently also mySAP.com are entirely based on Unicode, which thus is a basic requirement for international competitiveness. Unicode allows all SAP users to install a central system that covers all business processes worldwide.

2 Companies using different distributed systems frequently want to aggregate their worldwide corporate data. Without Unicode, they would be able to do this only to a limited degree. With Unicode, you can use multiple languages simultaneously at a single frontend computer.

3 Unicode is required for cross-application data exchange without loss of data due to incompatible character sets. One way to present documents in the World Wide Web (www) is XML, for example.

Regards

Srikanth

Former Member
0 Kudos

Hi Vinod,

I do not know the actual purpose of Unicode check active.

But once in my program, I wanted to declare a hexadecimal variable. If Unicode check active is unchecked, then u can declare a hexadecimal variable.

And also in certain cases(for some literal validations), if unicode check active is checked, it will throw some warnings also.

Regards,

Balaji

Former Member
0 Kudos

HI,

Unicode issues are because of the alignment gaps.

Below example explains you a scenario.

Whereever we assign values from one field to other, we have to take care of these unicode issues.

report ZCH_UNIEXP_1.                            

types: begin of T_STRUC,
          F1 type c,
          F2 type c,
          F3 type i,
          F4 type p,
       end of T_STRUC.

* Before Unicode enabling:

* data: begin of STRUC1.
*         include  type T_STRUC.
* data:   F5 type x.
* data: end of STRUC1.

* data: begin of STRUC2.
*         include  type T_STRUC.
* data:   F6 type p.
* data: end of STRUC2.

* STRUC1 = STRUC2.   <---- Unicode error !!

* After Unicode enabling, if only component F1 to F4 should be moved:

data: begin of STRUC1.
        include type T_STRUC as PART1.
data:   F5 type x.
data: end of STRUC1.

data: begin of STRUC2.
        include type T_STRUC as PART1.
data:   F6 type p.
data: end of STRUC2.

STRUC1-PART1 = STRUC2-PART1.

<b>Why Unicode?</b>

problems occur if you want to merge texts from different incompatible character sets in a central system. Equally, exchanging data between systems with incompatible character sets can result in unprecedented situations.

One solution to this problem is to use a code comprising all characters used on earth. This code is called Unicode (ISO/IEC 10646) and consists of at least 16 bit = 2 bytes, alternatively of 32 bit = 4 bytes per character. Although the conversion effort for the R/3 kernel and applications is considerable, the migration to Unicode provides great benefits in the long run

<b>Why and where to set unicode flag</b>

A Unicode-enabled ABAP program (UP) is a program in which all Unicode checks are effective. Such a program returns the same results in a non-Unicode system (NUS) as in a Unicode system (US). In order to perform the relevant syntax checks, you must activate the Unicode flag in the screens of the program and class attributes.

In a US, you can only execute programs for which the Unicode flag is set. In future, the Unicode flag must be set for all SAP programs to enable them to run on a US. If the Unicode flag is set for a program, the syntax is checked and the program executed according to the rules described in this document, regardless of whether the system is a US or an NUS. From now on, the Unicode flag must be set for all new programs and classes that are created.

If the Unicode flag is not set, a program can only be executed in an NUS. The syntactical and semantic changes described below do not apply to such programs. However, you can use all language extensions that have been introduced in the process of the conversion to Unicode.

As a result of the modifications and restrictions associated with the Unicode flag, programs are executed in both Unicode and non-Unicode systems with the same semantics to a large degree. In rare cases, however, differences may occur. Programs that are designed to run on both systems therefore need to be tested on both platforms.

Regards,

Sailaja.