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內表裏,如下圖: