1、READ_TEXTパラメータの塗りつぶし
長いテキストは、品目BOMの品目に読み、機能READ_TEXTを通じて見上げことができます。この記事では、品目BOMの品目に長いテキストを読み取る方法に焦点を当てています。
SE37:
品目BOMラインアイテムの長いテキストを読むときは、次のように、関数のパラメータは、READ_TEXT:
ID: 固定値'MPO'
OBJECT:固定値 'BOM'
NAME:クライアント番号(3ビット)+ BOMカテゴリ(A)+ BOM数(8ビット)+ BOM項目ノード数(8ビット)+内部カウンタ(8)
表STPO(BOMラインアイテムテーブル)に格納されたBOMデータの名前、MAST(品目BOM表)
まず、MASTの数で品目BOMを見つけます
NAMEパラメータで使用BOMデータを見つけることが、次にBOM番号STLNR STPOによってでき、
この広告申込情報の長いテキストは次のように、テーブルに格納されているSTXH READ_TEXTは、実際には、パラメータに対応する、埋めるために、この表に従います。
図2に示すように、コードの例
次のように完全なコードの例は以下のとおりです。
BOMコードはSTPO、MASTから直接データを読み出すが、関数によってされていない BOM CS_BOM_EXPL_MAT_V2の材料。
REPORT ztest_read_longtxt_mbom. DATA:git_stb TYPE STANDARD TABLE OF stpox, gwa_stb TYPE stpox. DATA:git_line TYPE STANDARD TABLE OF tline WITH HEADER LINE. SELECTION-SCREEN BEGIN OF BLOCK b_kopvor WITH FRAME TITLE text-001. PARAMETERS: p_matnr1 LIKE mast-matnr MEMORY ID mat, p_werks1 LIKE mast-werks OBLIGATORY MEMORY ID wrk, "plant p_stlan1 LIKE mast-stlan DEFAULT '1' MODIF ID mod. "BOM Usage SELECTION-SCREEN END OF BLOCK b_kopvor. * 物料BOM展开 CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING mtnrv = p_matnr1 werks = p_werks1 stlan = p_stlan1 datuv = sy-datum ehndl = '1' mmory = '1' capid = 'PP01' aufsw = ' ' mbwls = ' ' mehrs = ' ' TABLES stb = git_stb EXCEPTIONS alt_not_found = 1 call_invalid = 2 material_not_found = 3 missing_authorization = 4 no_bom_found = 5 no_plant_data = 6 no_suitable_bom_found = 7. LOOP AT git_stb INTO gwa_stb. PERFORM frm_read_text TABLES git_line USING gwa_stb-stlnr "Bill of material gwa_stb-stlkn "BOM item node number gwa_stb-stpoz "Internal counter gwa_stb-stlty."BOM category ENDLOOP. LOOP AT git_line. WRITE:/ git_line-tdformat, git_line-tdline. ENDLOOP. *&---------------------------------------------------------------------* *& Form FRM_READ_TEXT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_GIT_LINE text * -->P_GWA_STB_STLNR text * -->P_GWA_STB_STLKN text * -->P_GWA_STB_STPOZ text * -->P_GWA_STB_STLTY text *----------------------------------------------------------------------* FORM frm_read_text TABLES it_line STRUCTURE tline USING i_stlnr i_stlkn i_stpoz i_stlty. DATA:lwa_line TYPE csltx_line. DATA:lit_tline TYPE STANDARD TABLE OF tline, lwa_tline TYPE tline, lwa_textheader TYPE thead. DATA: BEGIN OF lwa_htext, tdobject LIKE thead-tdobject, tdname LIKE thead-tdname, tdid LIKE thead-tdid, tdspras LIKE thead-tdspras. DATA: END OF lwa_htext. * Fill textheader CLEAR lwa_htext. lwa_htext-tdid = 'MPO'. lwa_htext-tdspras = sy-langu. lwa_htext-tdobject = 'BOM'. lwa_htext-tdname(3) = sy-mandt. lwa_htext-tdname+3(1) = i_stlty. "BOM category lwa_htext-tdname+4(8) = i_stlnr. "Bill of material lwa_htext-tdname+12(8) = i_stlkn. "BOM item node number lwa_htext-tdname+20(8) = i_stpoz. "Internal counter * read longtext into table textlines CALL FUNCTION 'READ_TEXT' EXPORTING id = lwa_htext-tdid language = lwa_htext-tdspras name = lwa_htext-tdname object = lwa_htext-tdobject IMPORTING header = lwa_textheader TABLES lines = lit_tline EXCEPTIONS OTHERS = 1. APPEND LINES OF lit_tline TO it_line. ENDFORM.
3, 测试结果
输入选择条件,点击运行,
将物料BOM每个行项目上的长文本write出来,
前台CS03查看一下物料BOM 0010行项目上的长文本,
0020行也有如下长文本,
0030行没有长文本,
由此可以看到程序输出的长文本正确。
以上。