SAPABAP长文本处理汇编.docx
《SAPABAP长文本处理汇编.docx》由会员分享,可在线阅读,更多相关《SAPABAP长文本处理汇编.docx(8页珍藏版)》请在冰豆网上搜索。
SAPABAP长文本处理汇编
1.1.长文本处理
1.1.1.读取长文本
这里以抓取DeliveryNote的Item上的长文本作为例子。
查找长文本的TextID,TextObject
VL02N修改DeliveryNote:
80000023
按回车键或者点击
,
选中要一行资料,然后点击菜单Goto->Item->Texts
点击
,
然后点击菜单:
Goto->Header
在这里显示的TextID:
0001,TextObject:
VBBP,以及TextName:
0080000023000010,这几个字段在后面取值时要使用到
编写程序
*&---------------------------------------------------------------------*
*& Report Y10028
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Y10028.
DATA IT_DATA TYPE STANDARD TABLE OF TLINE .
DATA W_DATA TYPE TLINE.
DATA ID LIKE THEAD-TDID.
DATA LANGUAGE LIKE THEAD-TDSPRAS.
DATA NAME LIKE THEAD-TDNAME.
DATA OBJECT LIKE THEAD-TDOBJECT.
START-OF-SELECTION.
ID = '0001'.
LANGUAGE = 'EN'.
NAME = '0080000023000010'.
OBJECT = 'VBBP'.
CALL FUNCTION 'READ_TEXT'
EXPORTING
* CLIENT = SY-MANDT
ID = ID
LANGUAGE = LANGUAGE
NAME = NAME
OBJECT = OBJECT
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
* IMPORTING
* HEADER =
TABLES
LINES = IT_DATA
* 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.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT_DATA INTO W_DATA.
WRITE:
/ W_DATA-TDLINE.
ENDLOOP.
显示结果
1.1.2.写入长文本
有时需要将其他的系统的资料Upload到长文本字段中,或者将资料从文字档、Excel档Upload到长文本字段中,使用BDC比较麻烦,这个时候可以使用SAVE_TEXTFunction来写入长文本。
查找TextID,TextObject的方法在上一个章节已经说明,这里不再重复。
REPORTY10028.
DATAHEADERLIKETHEAD.
DATALINESTYPESTANDARDTABLEOFTLINE.
DATAW_LINETYPETLINE.
START-OF-SELECTION.
HEADER-TDOBJECT='VBBP'.
HEADER-TDNAME='0080000023000010'.
HEADER-TDID='0001'.
HEADER-TDSPRAS='EN'.
W_LINE='测试资料写入'.
APPENDW_LINETOLINES.
CALLFUNCTION'SAVE_TEXT'
EXPORTING
*CLIENT=SY-MANDT
HEADER=HEADER
INSERT='X'
SAVEMODE_DIRECT='X'
*OWNER_SPECIFIED=''
*LOCAL_CAT=''
*IMPORTING
*FUNCTION=
*NEWHEADER=
TABLES
LINES=LINES
EXCEPTIONS
ID=1
LANGUAGE=2
NAME=3
OBJECT=4
OTHERS=5
.
IFSY-SUBRC<>0.
*MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNO
*WITHSY-MSGV1SY-MSGV2SY-MSGV3SY-MSGV4.
ENDIF.
COMMITWORK.
结果显示为:
1.1.3.删除长文本
CALL FUNCTION 'DELETE_TEXT'
EXPORTING
* CLIENT = SY-MANDT
ID = ID
LANGUAGE = LANGUAGE
NAME = NAME
OBJECT = OBJECT
* SAVEMODE_DIRECT = ' '
* TEXTMEMORY_ONLY = ' '
* LOCAL_CAT = ' '
* EXCEPTIONS
* NOT_FOUND = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.