程式中通过Function:READ_TEXT 或 BAPI_PO_GETDETAIL读取文本内容时
当遇到‘&’符号,读取出来的值变为‘<(>&<)> ’
要处理这个情况,我们可以通过Function:CONVERT_ITF_TO_STREAM_TEXT或CONVERT来转换
如下为通过Function:READ_TEXT读取CONVERT_ITF_TO_STREAM_TEXT转换的案例
详情可SAP note :730598 & 391261
1. https://launchpad.support.sap.com/#/notes/730598
2. https://launchpad.support.sap.com/#/notes/391261
FORM READ_TEXT USING PI_THEAD TYPE THEAD
CHANGING PC_OUTPUT.
TYPES: BEGIN OF STREAM,
DEFAULT TYPE CHAR100,
END OF STREAM.
DATA: LT_TLINE TYPE TABLE OF TLINE,
LT_STREAM TYPE TABLE OF STREAM, " DEVK927782
LW_STREAM TYPE STREAM, " DEVK927782
LT_TEXT TYPE TABLE OF TLINE, " DEVK927782
LW_TEXT TYPE TLINE, " DEVK927782
LW_TLINE TYPE TLINE.
*->Read text
CLEAR LT_TLINE.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = PI_THEAD-TDID
LANGUAGE = PI_THEAD-TDSPRAS
NAME = PI_THEAD-TDNAME
OBJECT = PI_THEAD-TDOBJECT
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.
* Implement suitable error handling here
ELSE.
LOOP AT LT_TLINE INTO LW_TLINE.
"DEVK927782将读出的文本中的<(>&<)> 符号转换成& START
LW_TEXT-TDLINE = LW_TLINE-TDLINE.
APPEND LW_TEXT TO LT_TEXT.
ENDLOOP.
CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'
EXPORTING
LANGUAGE = PI_THEAD-TDSPRAS
TABLES
ITF_TEXT = LT_TEXT
TEXT_STREAM = LT_STREAM.
LOOP AT LT_STREAM INTO LW_STREAM.
IF PC_OUTPUT IS INITIAL.
PC_OUTPUT = LW_STREAM-DEFAULT.
ELSE.
PC_OUTPUT = PC_OUTPUT && CL_ABAP_CHAR_UTILITIES=>NEWLINE && LW_STREAM-DEFAULT .
ENDIF.
CLEAR:LW_TLINE ,LW_STREAM.
ENDLOOP.
ENDIF.
"DEVK927782将读出的文本中的<(>&<)> 符号转换成& END
ENDFORM.