如何得到内存中的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内表里,如下图:

你可能感兴趣的:(SAP,ABAP)