- CONVERT_STREAM_TO_ITF_TEXT:将特殊字符加上转义标识,如:AAA&111 转换为 AAA<(>&<)>111
- CONVERT_ITF_TO_STREAM_TEXT:还原含有转义标识特殊字符,如:AAA<(>&<)>111还原为AAA&111
在SAP中使用Read_text()读取长文本时,我们偶尔会看到 一个 <(>&<)> 符号,其实这是SAP 自动转换后的’&’ 符号
同样还有一些特殊符号会出现这种问题,而 CONVERT_ITF_TO_STREAM_TEXT 就是用来解决这个问题的。
|
DATA: lv_id TYPE thead-tdid, lv_language TYPE thead-tdspras, lv_name TYPE thead-tdname, lv_object TYPE thead-tdobject. DATA: lv_str TYPE string, "项目文本 lt_lines TYPE TABLE OF tline. TYPES l_stream(72) TYPE c. DATA lt_stream TYPE STANDARD TABLE OF l_stream.
lv_id = 'F12'. lv_language = '1'. lv_object = 'EKPO'. CALL FUNCTION 'READ_TEXT' EXPORTING id = lv_id language = lv_language name = lv_name object = lv_object TABLES lines = lt_lines EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. IF sy-subrc = 0. * convert the text lines IF lt_lines[ 1 ]-tdline CP '*<(>&<)>*'." 20240806 add 前台创建的长文本带有特殊字符转义,需要还原;后台创建的长文本不需要转义 CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT' "352736 EXPORTING language = lv_language TABLES itf_text = lt_lines text_stream = lt_stream. LOOP AT lt_stream INTO DATA(ls_stream). lv_str &&= ls_stream. ENDLOOP. ELSE. LOOP AT lt_lines INTO DATA(ls_tline). lv_str &&= ls_tline-tdline. ENDLOOP. ENDIF. ENDIF. |