将ls_struc从代码页" 1110"转换为代码页" 0100"(在UNICODE环境中)

2020-09-06 18:26发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我目前正在使用以下结构翻译结构:...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我目前正在使用以下结构翻译结构:将ls_struc从代码页" 1110"转换为代码页" 0100"。

当然,在Unicode中,这不再允许,因此我已使用cl_abap_conv_out_ce将其替换为新逻辑。

这一直有效,除非结构中的一个字段包含哈希。 例如,字段ls_struc-desc =" MANDA xyz ### 123"。

在执行unicode之前,即使用TRANSLATE命令,输出如下:

使用新的Unicode类,输出字符串现在有所不同:

这些字符串应该相同,即我在Unicode环境中应具有相同的结果。 非常感谢所有帮助,我已经花了3天的时间来解决此问题。 :(

我的代码如下:

PERFORM create_linefeed更改lv_linefeed。使用ls_struc更改视图长度
更改lv_view_offlen。
使用ls_struc更改PERFORM new_record

lv_view_offlenCHANGING lv_xstring。
传输lv_xstring TO文件。 > *&----------------------------------------------- ---------------------- *
*&表格CREATE_LINEFEED" Unicode
* &------------------------------------------------- -------------------- *
*换行0100 konvertieren
* ---- -------------------------------------------------- ---------------- *
FORM create_linefeed更改p_linefeed。
尝试。
调用方法cl_abap_conv_out_ce => create
导出
编码='0100'
* endian ='L'
*替换='。'
* ignore_cerr = ABAP_FALSE
接收
转换= p_linefeed。
CATCH cx_parameter_invalid_range。
CATCH cx_sy_codepage_converter_init。
ENDTRY。
ENDFORM。 > *&------------- -------------------------------------------------- ------ *
*&表格LENGTH_OF_VIEW" Unicode
*&--------------- -------------------------------------------------- ---- *
*自助餐厅
* ------------------- -------------------------------------------------- -*
使用p_recordCHANGING p_view_offlen形成视图长度。
TRY。
呼叫方法cl_abap_view_offlen => create_legacy_viewEXPORTING
data = p_record RECEIVINGref = p_view_offlen。
CATCH cx_parameter_invalid_type。
ENDFORM。 " LENGTH_OF_VIEW" Unicode
*&------------------------------- -------------------------------------- *
* &Form NEW_RECORD" Unicode
*&--------------------------------- ------------------------------------ *
* Datensatz + den Buffer schreiben中的换行
* ---------------------------------- ------------------------------------ *
使用p_record p_view_offlenCHANGING p_xstring_buffer形成新记录
TRY。
呼叫方法lv_linefeed-> convert_strucEXPORTING data = p_record视图= p_view_offlenIMPORTING
buffer = p_xstring_buffer。
CATCH cx_sy_codepage_converter_init。
CATCH cx_sy_conversion_codepage。
br> CATCH cx_parameter_invalid_range。
ENDTRY。
ENDFORM。" NEW_RECORD" Unicode

(829乙)