刚遇到读取长文本转义了
DATA: lv_name TYPE thead-tdname.
DATA: lt_tline TYPE TABLE OF tline,
ls_tline TYPE tline,
l_tdname TYPE thead-tdname,
l_tdfuser TYPE stxh-tdfuser.
TYPES:BEGIN OF tys_stream,
tdline TYPE tdline,
END OF tys_stream.
DATA:lt_text_stream TYPE TABLE OF tys_stream,
lw_text_stream LIKE LINE OF lt_text_stream.
CLEAR lt_tline. REFRESH lt_tline.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'GRUN'
language = '1'
name = lv_name
object = 'MATERIAL'
TABLES
lines = lt_tline
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.
CLEAR <fs_jb>-zmaktx.
"存在长文本转义字符问题,先转 <(>&<)> => & 测试物料 YC-BC-C00089-00-00 20240606
LOOP AT lt_tline INTO ls_tline.
CONCATENATE <fs_jb>-zmaktx ls_tline-tdline INTO <fs_jb>-zmaktx.
SEARCH ls_tline-tdline FOR '<(>&<)>' .
IF sy-subrc EQ 0.
DATA(lv_flag) = 'X'.
ENDIF.
ENDLOOP.
IF lv_flag = 'X'.
CLEAR:<fs_jb>-zmaktx.
CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'
EXPORTING
language = sy-langu
* LF = ' '
* IMPORTING
* STREAM_LINES =
TABLES
itf_text = lt_tline
text_stream = lt_text_stream.
LOOP AT lt_text_stream INTO lw_text_stream.
CONCATENATE <fs_jb>-zmaktx lw_text_stream-tdline INTO <fs_jb>-zmaktx.
ENDLOOP.
ENDIF.
ENDIF.