ABAP讀取長文本的方法


SAP中所有的項目文本都存在以下兩張數據表中:

1. STXH  抬頭項目文本 透明表

2. STXL  明細項目文本   透明表

長文本讀取方法

首先在STXH和STXL中根據OBJECT NAME, TEXT ID,TEXT OBJECT查找到需要的文本對象,

然后通過READ_TEXT / READ_TEXT_INLINE函數來讀取文本內容。 

以讀取交貨單文本為例:

1.獲取OBJECT NAME, TEXT ID,TEXT OBJECT

2.獲取交貨單抬頭、行項目長文本

 1 FORM read_text USING u_name TYPE tdobname "OBJECT NAME,通常是訂單ID&行項目號
 2                      u_tdid TYPE tdid "TEXT ID
 3                      u_tdobject TYPE tdobject "TEXT OBJECT
 4                      u_split TYPE string
 5                CHANGING c_text TYPE string.
 6   DATA: ls_stxh TYPE stxh,
 7         ls_stxl TYPE stxl,
 8         lt_lines TYPE TABLE OF tline WITH HEADER LINE.
 9   IF u_tdobject = 'VBBK'.
10     "STXH 抬頭項目文本 透明表
11     SELECT SINGLE * INTO ls_stxh FROM stxh WHERE tdobject = u_tdobject AND tdname = u_name AND tdid = u_tdid AND tdspras = sy-langu.
12   ELSEIF u_tdobject = 'VBBP'.
13     "STXL 明細項目文本 透明表
14     SELECT SINGLE * INTO ls_stxl FROM stxl WHERE tdobject = u_tdobject AND tdname = u_name AND tdid = u_tdid AND tdspras = sy-langu.
15   ELSE.
16     "sy-subrc = 0.
17   ENDIF.
18   IF sy-subrc = 0.
19     CALL FUNCTION 'READ_TEXT'
20       EXPORTING
21 *       CLIENT                        = SY-MANDT
22         id                            = u_tdid
23         language                      = '1'
24         name                          = u_name
25         object                        = u_tdobject
26 *       ARCHIVE_HANDLE                = 0
27 *       LOCAL_CAT                     = ' '
28 *     IMPORTING
29 *       HEADER                        =
30 *       OLD_LINE_COUNTER              =
31       TABLES
32         lines                         = lt_lines[]
33 *     EXCEPTIONS
34 *       ID                            = 1
35 *       LANGUAGE                      = 2
36 *       NAME                          = 3
37 *       NOT_FOUND                     = 4
38 *       OBJECT                        = 5
39 *       REFERENCE_CHECK               = 6
40 *       WRONG_ACCESS_TO_ARCHIVE       = 7
41 *       OTHERS                        = 8
42               .
43     IF sy-subrc = 0.
44 * Implement suitable error handling here
45       CLEAR c_text.
46       LOOP AT lt_lines.
47         CONCATENATE c_text lt_lines-tdline INTO c_text SEPARATED BY u_split.  "解決回車事件 space
48         CLEAR lt_lines.
49       ENDLOOP.
50       CONDENSE c_text NO-GAPS.
51     ENDIF.
52   ENDIF.
53 ENDFORM.                    "READ_TEXT

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM