‎2008 Nov 17 6:45 PM
Hi, I have a program that gives ABAP next error unicode:
In the context Unicode, TRANSLATE ... CODEPAGE / NUMBER FORMAT is not Alowen.
Therefore, I need convert the following code to unicode:
DATA: h_line (72) TYPE c,
TRANSLATE h_line CODE FROM PAGE'1100 'CODE PAGE TO'0100'.
I understand that I must use the next class, but I do not understand how.
CL_ABAP_CONV_IN_CE
I am grateful if you could give me a concrete example for the case.
Thank you very much.
Luis
Edited by: Luis Martinez on Nov 17, 2008 7:49 PM
Edited by: Luis Martinez on Nov 19, 2008 5:57 PM
‎2008 Nov 28 7:46 AM
Hi Luis,
Use class for Translate codepage to codepage.
Data : g_cp LIKE tcp0c-charco VALUE '1100'.
CONSTANTS: c_uni(4) VALUE '1105'.
PERFORM translate_codepage USING g_cp
c_uni
CHANGING T143T.
FORM translate_codepage USING g_cp
c_uni
CHANGING P_T143T.
DATA: converter TYPE REF TO cl_abap_conv_obj.
DATA: l_out TYPE string.
DATA: l_fromcode TYPE cpcodepage.
DATA: l_tocode TYPE cpcodepage.
l_fromcode = g_cp.
l_tocode = c_uni.
CREATE OBJECT converter
EXPORTING
incode = l_fromcode
miss = '.'
broken = '.'
use_f1 = 'X'
outcode = l_tocode
EXCEPTIONS
invalid_codepage = 1
internal_error = 2.
IF sy-subrc 0.
CASE sy-subrc.
WHEN 1.
MESSAGE ID 'FES' TYPE 'E' NUMBER '024' RAISING unknown_error.
WHEN 2.
MESSAGE ID 'FES' TYPE 'E' NUMBER '024' RAISING unknown_error.
ENDCASE.
ENDIF.
CALL METHOD converter->convert
EXPORTING
inbuff = P_T143T
inbufflg = 0
outbufflg = 0
IMPORTING
outbuff = l_out
EXCEPTIONS
internal_error = 1
OTHERS = 2.
IF sy-subrc 0.
CASE sy-subrc.
WHEN 1.
MESSAGE ID 'FES' TYPE 'E' NUMBER '024' RAISING unknown_error.
WHEN 2.
MESSAGE ID 'FES' TYPE 'E' NUMBER '024' RAISING unknown_error.
ENDCASE.
ENDIF.
P_T143T = l_out.
ENDFORM.
Thanks,
Sai
‎2008 Dec 12 1:29 PM