SAP Internationalization & Unicode March 2010
Hint Management in
Unicode Conversions
Repair Hints
© SAP 2010 / Page 2
Repair Hint
Row-by-Row
Repair by Hint
Note: There is no UNDO of Hint execution. Use the display mode first to check the results of a Hint.
SUMG Manual Repair
© SAP 2010 / Page 3
Repair Hint: Execution via SUMG
SUMG->Manual Repair-> Execute Hints
© SAP 2010 / Page 4
Repair Hint: Execution via Hint Management
SUMG->Manual Repair->
Hint Management->
Execute Hint
© SAP 2010/ Page 5
Repair Hint: Target table status in SUMG Worklist
After the hint processing is finished (erroneous or successful), then the table status changes back to „M‟
„In Manual Processing“ (yellow light) umgtskq-status = „M„
„Worker Job Running“(yellow light) umgtskq-status = „B„
„In Manual Processing“(yellow light) umgtskq-status = „M„
„Worker Job Terminated“ (red light) umgtskq-status = „B„ AND
cl_umg_list_batchjobs=>find_job() fails Hint processing started
Job Processing fails Hint processing finished
© SAP 2010 / Page 6
Repair Hint: Parallel execution I
When starting Repair Hints from SUMG then report UMG_AUTO_EXECUTE_HINTS is executed. This report submits UMG_EXECUTE_HINTS[ _FOR_INDXTAB] sequentially for each selected table. In order to run Repair Hints in parallel you need to select single tables and then start UMG_AUTO_EXECUTE_HINTS for each table.
If there are multiple Hints for a single table, then those Hints get processed sequentially.
© SAP 2010 / Page 7
Repair Hint: Parallel execution II
When starting Repair Hints from the Hint Management then report
UMG_EXECUTE_HINTS[ _FOR_INDXTAB] is executed directly. In order to run Repair Hints in parallel you need to select single tables and then start UMG_EXECUTE_HINTS[
_FOR_INDXTAB] for each table.
© SAP 2010 / Page 8
Repair Hint: Parallel Execution III
If you try to start multiple Hints for a single table at the same time, then the following message occurs:
© SAP 2010 / Page 9
Repair Hint: Parallel Execution IV
If you try to start the Hint ADRP_2 directly with UMG_EXECUTE_HINTS, then you see the following Main Log message:
© SAP 2010 / Page 10
Repair Hint: Reasons for Hint Failure I
A hint fails in with status light set to red for the following reasons:
Description Message
number
Message text
The condition does not exist 44 Wordlist(Condition) (table=&1 / id=&2) not found (&3)
The condition is empty 45 Wordlist(Condition) is empty (table=&1 /
id=&2, &3)
The condition is incorrect 46 Wordlist(Condition) is incorrect (table=&1 / id=&2)
Failed to create the converter object 72 Converter object for CPs(&1, &2) could not be created in &3
Hint contains a language key that is not allowed 73 Hint &1 for table &2 contains a language which is not allowed (&3).
1. Container handling is needed, but container type is not defined
2. Conversion from Unicode to non-Unicode fails
3. Conversion from correct language (non- Unicode) to Unicode fails
4. Set_indx_codepage failed
5. Code page could not be determined from UMGLANGCP
- Coding: cnv_not_ok = „X„.
© SAP 2010 / Page 11
Error description New handling
as of 620 SP67, 640 SP25, 700 SP21, 701 SP6
Container handling is needed, but container type is not defined
Error handling is done in CL_UMG_CONTAINER->
IS_CONTAINER_FIELD; a shortdump gets generated in this case
Conversion from Unicode to non-Unicode fails New message 198 „Repair failed (table=&1, hintid=&2, affected rows=&3) “
Conversion from correct language (non-Unicode) to Unicode fails
Set_indx_codepage fails / Get_text_from_indx
When exception cx_sy_open_sql_error (“An Open SQL exception occurred”) occurs.
Catch this exception, set hint status to failed and write existing message 123 „SQL error for getting the row(s) of &1 in &2”
where &1 = table name and &2 = hintid Target code page could not be determined from
UMGLANGCP
Write existing message 73 „ Hint &1 for table &2 contains a language which is not allowed (&3).”
Repair Hint: Reasons for Hint Failure II
© SAP 2010 / Page 12
Repair Hint: Options
SUMG-> Manual Repair->
Execute Hints
SUMG-> Manual Repair->
Hint Management->
Execute Hint
© SAP 2010 / Page 13
1.Repair Hint without Log: Approach
Table Apply a Condition
Table Row Selection
Reinterpretation
Re- interpreted Table Rows
Repair
Repaired Table Rows Table
Repair: If a conversion error occurs during the repair of a table row, then the hint
processing continues with the next row. However, the hint status changes to red.
In Repair Hints:
Source Table = Target Table.
(Therefore no Wordlist definition is needed.)
© SAP 2010 / Page 14
1. Repair Hint without Log: Target Table Status
Comment displayed in SUMG Manual Repair
UMGTSKQ- MANREP
Description 'Manual Repair' <> „F„, „H„, „T„
Target table status in SUMG Manual Repair after the hint execution remains:
© SAP 2010 / Page 15
2. Repair Hint with Log: Approach
Apply a Condition
Table Row Selection II
Re- interpreted
Table Rows
Repair
Repaired Table Rows
Table Content of
Log
UMGR3LLOG | UMGINDX Match
Table Row Selection I
Reinterpretation
Repair: If a conversion error occurs during the repair of a table row, then the hint
processing continues with the next row. However, the hint status changes to red.
© SAP 2010 / Page 16
2. Repair Hint with Log: Target Table Status I
Comment displayed in SUMG Manual Repair
UMGTSKQ- MANREP
Description
'Hints have modified all rows in R3load/IMIG/INDX log'
„F„ A hint was executed. All rows of the log are repaired.
'Hints have modified table rows' „H„ A hint was executed. Some rows of the R3load log could be
repaired.
Target table status in SUMG Manual Repair after the hint execution changes to:
© SAP 2010 / Page 17
Manual Repair
Hints have modified table rows (F)
Hints have modified all rows in R3load/IMIG/INDX log (H)
Execute a Hint
Execute another Hint
2. Repair Hint with Log: Target Table Status II
© SAP 2010 / Page 18
Check that target table is in UMGTSKQ (SUMG worklist) Further checks (input values, table category, ..)
Update table status in UMGTSKQ („B„) Update batch job table UMGBATTAB
Get hint[s] definition
Get target table„s field information
Process hint[s] (see next slide)
Update table status in UMGTSKQ („M„) and manrep value („F„, „H„) Update batch job table UMGBATTAB
An error occured, then update table status in
UMGTSKQ („M„)
Get target table„s R3load log
Create conversion objects for each source system cp
If processing without R3load Log: check if current cp = correct cp
Hint completed
Note: The yellow color represents the status of the target table
no yes
2. Repair Hint with Log (transp, pool, cluster):
Process Flow I
© SAP 2010 / Page 19
Step: Process hint[s]
Hint failed
Hint completed
Update hint status (in process)
Apply the hint„s condition to the target table Check Hint setting (current langu, target langu)
Update target table„s data and R3load Log Match the key values to the R3load Log Convert from Unicode to fallback or current cp
Convert from correct cp to Unicode
Process the next hint of
this target table
Note: The colors represent the hint status
2. Repair Hint with Log (transp, pool, cluster):
Process Flow II
© SAP 2010 / Page 20
2. Repair Hint with Log (Binary Part of INDX- type Tables): Process Flow I
Check that target table is in UMGTSKQ (SUMG worklist)
Further checks (input values, table category, ..) Update table status in UMGTSKQ („B„)
Update batch job table UMGBATTAB
Get hint[s] definition
Get target table„s field information
Process hint[s] (see next slide)
Update table status in UMGTSKQ („M„) and manrep value („F„, „H„)
Update batch job table UMGBATTAB
An error occured, then update table status in UMGTSKQ
(„M„)
Note: The yellow color represents the status of the target table
© SAP 2010 / Page 21
Step: Process hint[s]
Get internal copy of table„s INDX Repair Log from UMGINDX
Update INDX Repair Log in UMGINDX Update hint status (in process)
Apply the hint„s condition to the target table
Match the key values to the INDX Repair Log Update the code page in the binary part
Hint completed
Update internal copy of INDX Repair Log
Process the next hint of
this target table Hint failed
Note: The colors represent the hint status
2. Repair Hint with Log (Binary Part of INDX-
type Tables): Process Flow II
© SAP 2010 / Page 22
2. Repair Hint with Log (Binary Part of INDX- type Tables): Unicode Entries
If the INDX cluster contains already a Unicode cp, then this data is not touched, the correction is attached to note 1090841.
© SAP 2010 / Page 23
Reuse of Vocabulary Hints as Repair Hints I
In the Unicode System: Reuse the Vocabulary Hints that were defined in SPUMG before the conversion of the system.
© SAP 2010 / Page 24
Reuse of Vocabulary Hints as Repair Hints II
Upload and Reuse Vocabulary Hints of another system.
© SAP 2010 / Page 25
Reuse of Vocabulary Hints as Repair Hints III
When reusing the Vocabulary Hints, then the following changes happen:
The UMGHINT-ACTIVE flag is set to „X„.
UMGHINT UMGCONDITION
The UMGCONDITION-SYSTEM_TYPE is set to „U„.
As of 620SP67, 640SP25, 700SP21, 701SP6, 702SP2:
Replace '*' with the name of the source table:
UMGHINT-TABNAME is set to UMGWORDLIST-SOURCETAB where UMGHINT-TABNAME = „*„.
Replace Wordlist ID with Condition ID in the Hint definition: UMGHINT-FLTID is set to UMGWORDLIST-CONDID.
© SAP 2010/ Page 26
Copyright 2010 SAP AG All rights reserved
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice.
Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.
SAP, R/3, xApps, xApp, SAP NetWeaver, Duet, SAP Business ByDesign, ByDesign, PartnerEdge and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned and associated logos displayed are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.
The information in this document is proprietary to SAP. This document is a preliminary version and not subject to your license agreement or any other agreement with SAP. This document contains only intended strategies, developments, and functionalities of the SAP® product and is not intended to be binding upon SAP to any particular course of business, product strategy, and/or development. SAP assumes no responsibility for errors or omissions in this document. SAP does not warrant the accuracy or completeness of the information, text, graphics, links, or other items contained within this material. This document is provided without a warranty of any kind, either express or implied, including but not limited to the implied warranties of
merchantability, fitness for a particular purpose, or non-infringement.
SAP shall have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. This limitation shall not apply in cases of intent or gross negligence.
The statutory liability for personal injury and defective products is not affected. SAP has no control over the information that you may access through the use of hot links contained in these materials and does not endorse your use of third-party Web pages nor provide any warranty whatsoever relating to third-party Web pages
Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP AG nicht gestattet. In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden.
Einige von der SAP AG und deren Vertriebspartnern vertriebene Softwareprodukte können Softwarekomponenten umfassen, die Eigentum anderer Softwarehersteller sind.
SAP, R/3, xApps, xApp, SAP NetWeaver, Duet, SAP Business ByDesign, ByDesign, PartnerEdge und andere in diesem Dokument erwähnte SAP-Produkte und Services sowie die dazugehörigen Logos sind Marken oder eingetragene Marken der SAP AG in Deutschland und in mehreren anderen Ländern weltweit. Alle anderen in diesem Dokument erwähnten Namen von Produkten und Services sowie die damit verbundenen Firmenlogos sind Marken der jeweiligen Unternehmen. Die Angaben im Text sind unverbindlich und dienen lediglich zu
Informationszwecken. Produkte können länderspezifische Unterschiede aufweisen.
Die in diesem Dokument enthaltenen Informationen sind Eigentum von SAP. Dieses Dokument ist eine Vorabversion und unterliegt nicht Ihrer Lizenzvereinbarung oder einer anderen Vereinbarung mit SAP. Dieses Dokument enthält nur vorgesehene Strategien, Entwicklungen und Funktionen des SAP®-Produkts und ist für SAP nicht bindend, einen bestimmten Geschäftsweg, eine Produktstrategie bzw. -entwicklung einzuschlagen. SAP übernimmt keine Verantwortung für Fehler oder Auslassungen in diesen Materialien. SAP garantiert nicht die Richtigkeit oder Vollständigkeit der Informationen, Texte, Grafiken, Links oder anderer in diesen Materialien enthaltenen Elemente. Diese Publikation wird ohne jegliche Gewähr, weder ausdrücklich noch stillschweigend, bereitgestellt. Dies gilt u. a., aber nicht ausschließlich, hinsichtlich der Gewährleistung der Marktgängigkeit und der Eignung für einen bestimmten Zweck sowie für die Gewährleistung der Nichtverletzung geltenden Rechts.
SAP übernimmt keine Haftung für Schäden jeglicher Art, einschließlich und ohne Einschränkung für direkte, spezielle, indirekte oder Folgeschäden im Zusammenhang mit der Verwendung dieser Unterlagen. Diese Einschränkung gilt nicht bei Vorsatz oder grober Fahrlässigkeit.
Die gesetzliche Haftung bei Personenschäden oder die Produkthaftung bleibt unberührt. Die Informationen, auf die Sie möglicherweise über die in diesem Material enthaltenen Hotlinks zugreifen, unterliegen nicht dem Einfluss von SAP, und SAP unterstützt nicht die Nutzung von Internetseiten Dritter durch Sie und gibt keinerlei Gewährleistungen oder Zusagen über Internetseiten Dritter ab.
Alle Rechte vorbehalten.