当我们还在创建的时候需要获取到对应的文本,按照传统的获取文档方法是不可行的,因为此时还没有写入到底表STXH中。
METHOD get_text_from_memory.
DATA:lt_txt_memory TYPE TABLE OF tcatalog,
memory_id(30) TYPE c VALUE 'SAPLSTXD',
lv_memory_pos TYPE tcatalog-id,
ls_head TYPE thead,
lt_lines TYPE TABLE OF tline.
CALL FUNCTION 'GET_TEXT_MEMORY'
TABLES
text_memory = lt_txt_memory.
"如果在SAVE_TEXT钱调用了COMMIT_TEXT 则GET_TEXT_MEMORY 返回为空
"此时直接取MEMORY ID
IF lt_txt_memory IS INITIAL.
DO.
lv_memory_pos = lv_memory_pos + 1.
memory_id+8(6) = lv_memory_pos.
IMPORT thead TO ls_head tline TO lt_lines FROM MEMORY ID memory_id. "内存中获取文本
IF sy-subrc EQ 0.
IF ls_head-tdobject = iv_object AND ls_head-tdid = iv_id AND ls_head-tdspras = iv_language.
EXIT.
ELSE.
CLEAR:ls_head,lt_lines.
ENDIF.
ELSE.