如何得到內存中的long text 文本

1.直接可以從READ_TEXT中取長文本。

查找READ_TEXT要填寫屬性的方法。

 

2.情況描述: (以下爲轉載)
假設在做me21n,va01,mm01,vf01的時候輸入了長本文,在保存的時候想要通過增強得到長文本的內容,是不能通過read_text的function來讀取的,原因是該信息還在內存裏沒有寫到數據表STXH中,那麼有什麼辦法能夠取到

如果我在billing head的text ID是‘z004’的文本

Biliing的增強是:
Enhancement : SDVFX002 User exit for A/R line in transfer to accounting
Component: EXIT_SAPLV60B_002
所以代碼就放到這裏面:

DATA BEGIN OF THEADER.
      INCLUDE STRUCTURE THEAD.
 DATA END OF THEADER.
 DATA: LINES LIKE STANDARD TABLE OF TLINE WITH HEADER LINE.
 DATA: LMEMORY_ID(30) VALUE 'SAPLSTXD'. "do not change
 data: CATALOG LIKE TCATALOG OCCURS 0 WITH HEADER LINE.
 IMPORT  CATALOG from MEMORY ID 'SAPLSTXD'.
 READ TABLE CATALOG WITH KEY TDID = 'Z004' TDOBJECT = 'VBBK'.
 CHECK SY-SUBRC = 0.
 CONCATENATE LMEMORY_ID CATALOG-ID INTO LMEMORY_ID.
 IMPORT THEAD TO THEADER
 TLINE TO LINES
 FROM MEMORY ID LMEMORY_ID.

通過這段代碼可以得到當前的text文本信息
IMPORT  CATALOG from MEMORY ID ’SAPLSTXD’.
在catalog裏面存放的是各個文本的head信息,主要包含了textID TextObject可以看到下面的debug截圖:

圖中的字段TDOBJECT存放的是billing的head還是item的object, TDID是他的text ID(如果這個ID的text有數值就會包含在這個表中)這裏關鍵的是‘ID’這個字段,把這個字段的值前面加上SAPLSTXD就可以得到想要的文本的路徑,如現在我想要抓取billing header的‘Z004’的文本內容,那麼它對應的內存地址就是SAPLSTXD000003再通過上圖的這些信息,調用
IMPORT THEAD TO THEADER
TLINE TO LINES
FROM MEMORY ID ‘SAPLSTXD000003’.就可以得到billing head的text id是‘z004’的文本內容,得到文本內容,文本內容放在lines內表裏,如下圖:

發佈了12 篇原創文章 · 獲贊 9 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章