ABAP-文本-‘&’变成‘<(>&<)> ’:function: READ_TEXT/BAPI_PO_GETDETAIL/CONVERT_ITF_TO_STREAM_TEXT/CONVERT

程式中通过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.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值