A Unicode-enabled ABAP program is one in which all Unicode checks are effective. Such a program returns the same results in a Non-Unicode system as in a Unicode system. 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 Unicode system, 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 Unicode or not. 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 Non-Unicode system. 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.
To enable your internal development for Unicode you can use transaction UCCHECK. You should follow below steps for a successful enabling:
- Run the Unicode-Syntax-Check in your Non-Unicode system to determine syntax errors for your programs.
- Before you can set the Unicode flag in the attributes of the program concerned, all syntax errors must be removed.
- Once the Unicode flag has been enabled in the Non-Unicode system, you can run the syntax check for this program.
To display a maximum of 50 syntax errors simultaneously, choose Utilities -> Settings -> Editor in the ABAP Editor and select the corresponding checkbox.
- Once all syntactical requirements are met in the Non-Unicode system, you must test the program both in a Unicode and Non-Unicode environment. The purpose of this test is to recognize any runtime errors and make sure that the results are correct in both systems. To prevent runtime errors in advance, you should always assign a type to field symbols and parameters, so that any problems can be picked up by the syntax check.
This approach has to be checked carefully, because every project has a different scope and individual requirements.
(For a complex system landscape including many dependencies and distributed developments you should check the requirements separately. They will not be taken into account in below points.)
- In case of a large amount of own developments you should check before the Unicode enabling whether the programs are in use or not. You can use the Coverage Analyzer in such a case.
- First of all start transaction UCCHECK in your Non-Unicode system with an active check box for "Check only programs where the Unicode flag is unchecked" to determine the programs without a Unicode flag.
- After correction of all syntax errors you can perform a mass set of the Unicode flag with transaction UCCHECK. All adapted programs will be inserted into a transport request which can be used to adapt the reports in follow-up systems.
SAP reports without a Unicode flag
It is not unusual to have a couple of SAP reports without Unicode flag in your system (the exact amount depends on the component installation). Normally the reports without Unicode flag are not used at all or they are regenerated in the Unicode system (see SAP Note #655331).
- Requirements of ABAP Programs in Unicode Systems
- Making ABAP Programs Unicode Enabled Exercises and Solutions
- Making ABAP Programs Unicode Enabled
- Note 655331 - Unicode enable ABAP programs
- Note 1056105 - Using UCCHECK for 3rd party programs
- Note 1139325 - Procedures and tools to enable ABAP programs for Unicode