‎2005 Dec 29 6:40 AM
Hi all,
I've been reading some of the earlier threads on READ_TEXT FM and so far i have only managed to find out what fields i need:
CLIENT = SY-MANDT
ID = 'BEST'
LANGUAGE = 'EN'
OBJECT = 'MATERIAL'
As for NAME, i know that i want to send the Material Code (ITAB-MATNR) to the call function, but how do i do it?
This is to extract the PO Material Text and be filled into ITAB-MAT_TXT which i have defined...
Where do i go from here?
‎2005 Dec 29 11:07 AM
‎2005 Dec 29 6:42 AM
Hi Bernard,
1. The main parameter is
NAME LIKE THEAD-TDNAME
Regards,
Amit M.
‎2005 Dec 29 6:53 AM
‎2005 Dec 29 7:01 AM
Hi again,
1. It is nothing but a normal
character value.
2. ie. in your case it should be the
material number.
3. Like in case of purchase order,
client = sy-mandt
id = 'F96'
language = 'E'
name = ITAB-EBELN
object = 'EKKO'
NAME = PURCHASE ORDER NUMBER
ID = DIFFERENT KIND OF TEXTS IN A PURCHASE ORDER
(eg. delivery text, terms and conditons,
shipment remarks)
Regards,
Amit M.
‎2005 Dec 29 7:19 AM
you can check these tables
STXL and STXH for tdid,tdaname,tdobject...
regards
vijay
‎2005 Dec 29 7:23 AM
If that is the case, how do i move the text that was retrieved into ITAB-MAT_TXT?
Do i do a LOOP?
‎2005 Dec 29 7:28 AM
Hi again,
1. ur last statment is not clear
2. using READ_TEXT
we will not get a single line text.
3. The parameter in this FM
LINES
is/should be an internal table.
4. All the data which has been entered
(possible in more than one lines)
will be retrieved in this internal table.
(I hope u are not talking about the
simple material decription text . )
regards,
amit m.
‎2005 Dec 29 7:33 AM
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'Z001'
language = sy-langu
name = name
object = 'VTTK'
TABLES
lines = lines
EXCEPTIONS
OTHERS = 1.lines is internal table, so you need to loop and fill.
LOOP AT lines.
WRITE: 1 sy-vline,
35 sy-vline,
36 lines-tdline,
109 sy-vline,
/1 space.
ENDLOOP.
‎2005 Dec 29 7:51 AM
Then what about the SELECT statement?
I've did a SELECT * FROM STXH before calling it. Should i add in some conditions to the SELECT?
‎2005 Dec 29 7:57 AM
no need of select, why are you selecting,
and what for..?
if you are selecting for tdobject,tdname,tdid then ok.
pass then to FM.
and do the above..
vijay
‎2005 Dec 29 8:36 AM
Since i want to retrieve the PO Material Text for each individual Material Number (ITAB-MATNR) that is in ITAB, would i need to do a LOOP to MOVE the PO Material Text that was retrieved into ITAB before the WRITE statement?
‎2005 Dec 29 8:39 AM
yeah exactly..
you loop that and move the text for each material you need to repeat the same process.
vijay
‎2005 Dec 29 8:43 AM
Hi Bernard,
Try this example.....
DATA: BEGIN OF T_DET OCCURS 0,
QMNUM LIKE QMEL-QMNUM,
MBLNR LIKE QMEL-MBLNR,
LOSMENGE LIKE QALS-LOSMENGE,
END OF T_DET.
DATA:F_TDOBJECT LIKE THEAD-TDOBJECT,
F_TDNAME LIKE THEAD-TDNAME,
F_TDID LIKE THEAD-TDID,
ITAB_LINES LIKE TLINE OCCURS 0 WITH HEADER LINE.
DATA:BEGIN OF ITAB OCCURS 10,
DESC(72),
END OF ITAB.
SELECT QMNUM REFNUM QMDAT QMTXT OBJNR QMGRP QMCOD FROM QMEL
INTO CORRESPONDING FIELDS OF TABLE T_DET
WHERE QMNUM IN S_QMNUM AND
QMART IN S_QMART AND
QMDAT IN S_QMDAT.
LOOP AT T_DET.
F_TDID = 'LTQM'.
F_TDNAME = T_DET-QMNUM.
F_TDOBJECT = 'QMEL'.
F_TDID = 'LTQM'.
F_TDNAME = T_DET-QMNUM.
F_TDOBJECT = 'QMEL'.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = F_TDID
LANGUAGE = SY-LANGU
NAME = F_TDNAME
OBJECT = F_TDOBJECT
TABLES
LINES = ITAB_LINES
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
DESCRIBE TABLE ITAB_LINES LINES SY-TFILL.
IF SY-TFILL > 0.
LOOP AT ITAB_LINES.
ITAB-QMNUM = T_DET-QMNUM.
ITAB-DESC = ITAB_LINES-TDLINE.
APPEND ITAB.
CLEAR ITAB.
ENDLOOP.
ENDIF.
ENDLOOP.
cheers
kaki
‎2005 Dec 29 9:04 AM
i got a runtime error message...something about type conflict when calling function...any ideas?
‎2005 Dec 29 9:09 AM
use all exceptions
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = F_TDID
LANGUAGE = SY-LANGU
NAME = F_TDNAME
OBJECT = F_TDOBJECT
TABLES
LINES = ITAB_LINES<b>
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.</b>
kaki
‎2005 Dec 29 9:09 AM
Hi again,
1. It simply means that
the variable which u passed
to the FM
is not declared in the SAME WAY
as declared in the FM definition se37.
2. Check out the way
u have declared the variables.
3. Also check the error message in detail.
it will also tell which parameter/variable
is not proper.
regards,
amit m.
‎2005 Dec 29 9:10 AM
hi bernard,
when callling the function module, ypou might be passing a text name TDNAME like material number, which should be declared like THEAD-TDNAME, declare a variable v_name like thead-tdname. Then move matnr to this field. Pass V_NAME to function module's name.
Similarly u will pass an object like VBBK or VBBP which should also declared as THEAD-OBJECTID .
Just declare all the fields that you are passing as type of the READ_TEXT FM values. This is a requisite for all FMs that u will use.
‎2005 Dec 29 9:10 AM
just show the code
how you are calling FM ,
give declarations also..
just see my post and copy the FM and pass appropriate values.
vijay
‎2005 Dec 29 9:16 AM
can u describe ur error analuysis?
I think the problem is with ur declarations. declare like below and use these variables to pass to read_text
DATA:V_TDOBJECT LIKE THEAD-TDOBJECT,
V_TDNAME LIKE THEAD-TDNAME,
V_TDID LIKE THEAD-TDID,
I_LINES LIKE TLINE OCCURS 0 WITH HEADER LINE.
Move ur matne to the V_TDNAME , move the TDID appropriatelu and the TDOBJECt . these details u can pick up from the header of your long text. Click on the longtext and goto--> header, here you will find the id which will be client, TD object,tdid,tdname concatenated together... use these in the variuablkes and call the FM.
Hope this helps.
‎2005 Dec 29 9:23 AM
check out the declarations of variables that u had passed to the FM
‎2005 Dec 29 9:36 AM
Let's say for example that i have done the following:
FORM READ_TXT.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = 'BEST'
NAME = ITAB-MATNR
OBJECT = 'MATERIAL'
LANGUAGE = 'EN'
TABLES
LINES = MAT_TXT
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
ENDFORM.
So how should i be defining MAT_TXT?
‎2005 Dec 29 9:39 AM
hi
declare like this..
MAT_TXT LIKE TLINE OCCURS 0 WITH HEADER LINE.
‎2005 Dec 29 9:40 AM
Hi again,
1. Declare it like this.
DATA : MAT_TXT LIKE TABLE OF TLINE WITH HEADER LINE.
(other syntax is also possible, but we can gor fo this)
regards,
amit m.
‎2005 Dec 29 9:49 AM
I don't think it'll work if i want to do a MOVE on the Material PO Text that was retrieved into ITAB (which also has to correspond to Material Number/ITAB-MATNR that is already in ITAB)
‎2005 Dec 29 9:52 AM
loop that text table and concatenate the text(tdline) to material text.
but this way only you need to do..
vijay
‎2005 Dec 29 10:30 AM
before i start on that, i still need to solve the runtime error i'm getting. I tried both of the earlier posts on defining the internal table and its still generating errors. The following is what i can pick out from the error report:
RUNTIME ERROR: CALL_FUNCTION_CONFLICT_TYPE
Type conflict when calling a function module.
A function module was called incorrectly
‎2005 Dec 29 10:33 AM
before that can you give your code so that we will correct it and give you.
(full code).
vijay
‎2005 Dec 29 10:39 AM
Hi, Bernard Loh :
You can not pass your parameter directly to the Function modul. I think you should do like this:
<b>data:</b>
l_name LIKE thead-tdname ,
l_object LIKE thead-tdobject.
<b>loop at</b> ....
l_name = 'yourname'.
l_object = 'yourobject'.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = c_text_id
language = sy-langu
name = l_name
object = l_object
TABLES
.......
<b>endloop.</b>
Message was edited by: guixin chen
‎2005 Dec 29 10:46 AM
Hi again,
1. Lots of confusion.
2. The data which we get from the FM,
will be an internal table
with possibly more than 1 lines.
3. What is ur exact requirement ?
Regards,
Amit M.
‎2005 Dec 29 10:55 AM
Sorry its all in a mess...i'm modifying another ABAPer's program
REPORT ZLPUPO03 NO STANDARD PAGE HEADING LINE-SIZE 255 LINE-COUNT 65
MESSAGE-ID Z00.
TABLES: MARA, "GENERAL MATERIAL DATA
MAKT, "MATERIAL DESCRIPTIONS
MARD, "STORAGE LOCATION DATA FOR MATERIAL
EKPO, "PURCHASING DOCUMENT ITEM
EKKO, "PURCHASING DOCUMENT HEADER
LFA1, "VENDOR MASTER (GENERAL SECTION)
STXH. "STXD SAPscript text file header
DATA: BEGIN OF ITAB OCCURS 0,
MATNR LIKE MARA-MATNR, "Material Number
MATKL LIKE MARA-MATKL, "Material Group
MAKTX LIKE MAKT-MAKTX, "Material Description
WERKS LIKE MARD-WERKS, "Plant
EBELN LIKE EKPO-EBELN, "Purchasing Document Number
EBELP LIKE EKPO-EBELP, "Item Number of Purchasing Document
BUKRS LIKE EKPO-BUKRS, "Company Code
MENGE LIKE EKPO-MENGE, "Purchase order quantity
NETPR LIKE EKPO-NETPR, "Net price in purchasing document
PEINH LIKE EKPO-PEINH, "Price unit
MTART LIKE EKPO-MTART, "Material Type
EXTWG LIKE MARA-EXTWG, "External material group
LIFNR LIKE EKKO-LIFNR, "Account Number of the Vendor
BEDAT LIKE EKKO-BEDAT, "Purchasing Document Date
NAME1 LIKE LFA1-NAME1, "Name 1
MTEXT TYPE C, "PO Material Text
PTEXT TYPE C, "Item Text/Specification
END OF ITAB.
DATA: BEGIN OF WTAB OCCURS 0,
MATNR TYPE EKPO-MATNR, "Material Number
MATKL TYPE EKPO-MATKL, "Material Group
WERKS TYPE EKPO-WERKS, "Plant
EBELN TYPE EKPO-EBELN, "Purchasing Document Number
EBELP TYPE EKPO-EBELP, "Item Number of Purchasing Document
BUKRS TYPE EKPO-BUKRS, "Company Code
MENGE TYPE EKPO-MENGE, "Purchase order quantity
NETPR TYPE EKPO-NETPR, "Net price in purchasing document
PEINH TYPE EKPO-PEINH, "Price unit
MTART TYPE EKPO-MTART, "Material Type
LIFNR TYPE EKKO-LIFNR, "Account Number of the Vendor
BEDAT TYPE EKKO-BEDAT, "Purchasing Document Date
NAME1 TYPE LFA1-NAME1, "Name 1
END OF WTAB.
DATA MAT_TXT LIKE TLINE OCCURS 0 WITH HEADER LINE. "just added
*--> Last Purchase Price
DATA: V_PRICE TYPE P DECIMALS 2.
DATA: L_PAGE_COUNT(5) TYPE C.
DATA: LINE_CHECK TYPE I.
*TYPE-POOLS: SLIS.
*DATA: GT_SLIS_T_EVENTS TYPE SLIS_T_EVENT,
* LAYOUT TYPE SLIS_LAYOUT_ALV,
* C_PROG LIKE SY-REPID,
* I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
* I_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER WITH HEADER LINE,
* GW_SLIS_EVENTS TYPE SLIS_ALV_EVENT,
* F2CODE LIKE SY-UCOMM VALUE '&ETA'.
*&---------------------------------------------------------------------*
*& SELECTION-SCREEN *
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001.
PARAMETERS: I_BUKRS LIKE EKKO-BUKRS DEFAULT 'GSPC' OBLIGATORY,
"Company Code
I_WERKS LIKE MARD-WERKS DEFAULT '6000' OBLIGATORY.
"Plant
SELECT-OPTIONS: I_MATNR FOR MARA-MATNR, "Material Number
I_MTART FOR MARA-MTART, "Material Type
I_MATKL FOR MARA-MATKL, "Material Group
I_EXTWG FOR MARA-EXTWG. "External Material Group
SELECTION-SCREEN END OF BLOCK 1.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION *
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM INITIALIZE.
PERFORM SELECT_DATA.
PERFORM READ_TXT.
PERFORM WRITE_HEADER.
PERFORM WRITE_DATA.
PERFORM PAGE_COUNT.
PERFORM WRITE_SELECTION_CRITERIA.
END-OF-SELECTION.
* PERFORM ALV_DISPLAY.
*------------------------------------------------------------------
* FORM INITIALIZE
*------------------------------------------------------------------
FORM INITIALIZE.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 100
TEXT = 'Generating Report...'.
ENDFORM.
*&---------------------------------------------------------------------*
*& TOP-OF-PAGE
*&---------------------------------------------------------------------*
TOP-OF-PAGE.
WRITE: /1 'REPORT:',SY-REPID,
115 'PAGE:', SY-PAGNO, 'of', '-----'.
WRITE: /1 'DATE:',SY-DATUM,
57 'PURCHASE HISTORY DATA',
115 'USER:', SY-UNAME.
WRITE: / SY-ULINE.
END-OF-PAGE.
*&---------------------------------------------------------------------*
*& FORM PAGE_COUNT
*&---------------------------------------------------------------------*
FORM PAGE_COUNT.
WRITE SY-PAGNO TO L_PAGE_COUNT LEFT-JUSTIFIED.
DO SY-PAGNO TIMES.
READ LINE 1 OF PAGE SY-INDEX.
REPLACE '-----' WITH L_PAGE_COUNT INTO SY-LISEL.
MODIFY CURRENT LINE.
ENDDO.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM SELECT_DATA *
*&---------------------------------------------------------------------*
FORM SELECT_DATA.
SELECT A~MATNR A~MATKL B~MAKTX A~MTART A~EXTWG C~WERKS
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM MARA AS A
INNER JOIN MAKT AS B
ON A~MATNR = B~MATNR AND
B~SPRAS = 'EN'
INNER JOIN MARD AS C
ON A~MATNR = C~MATNR
WHERE A~MATNR IN I_MATNR AND
A~MATKL IN I_MATKL AND
A~MTART IN I_MTART AND
A~EXTWG IN I_EXTWG AND
C~WERKS = I_WERKS.
SORT ITAB BY MATNR MATKL MTART EXTWG WERKS MAKTX.
CHECK NOT ITAB[] IS INITIAL.
SELECT A~MATNR A~MATKL A~WERKS MAX( A~EBELN ) MAX( A~EBELP ) A~BUKRS
A~MENGE A~NETPR A~PEINH A~MTART B~LIFNR B~BEDAT C~NAME1
INTO TABLE WTAB
FROM EKPO AS A
INNER JOIN EKKO AS B
ON A~EBELN = B~EBELN AND
A~BUKRS = B~BUKRS AND
B~BSTYP = 'F'
INNER JOIN LFA1 AS C
ON B~LIFNR = C~LIFNR
WHERE A~MATNR IN I_MATNR AND
A~MATKL IN I_MATKL AND
A~WERKS = I_WERKS AND
A~BUKRS = I_BUKRS AND
A~MTART IN I_MTART AND
A~LOEKZ = ' '
GROUP BY A~MATNR A~MATKL A~WERKS A~EBELN A~EBELP A~BUKRS A~MENGE
A~NETPR A~PEINH A~MTART B~LIFNR B~BEDAT C~NAME1.
SORT WTAB BY MATNR MATKL MTART WERKS EBELN EBELP MENGE NETPR PEINH
LIFNR BEDAT NAME1.
LOOP AT WTAB.
MOVE: WTAB-EBELN TO ITAB-EBELN,
WTAB-EBELP TO ITAB-EBELP,
WTAB-BUKRS TO ITAB-BUKRS,
WTAB-MENGE TO ITAB-MENGE,
WTAB-NETPR TO ITAB-NETPR,
WTAB-PEINH TO ITAB-PEINH,
* WTAB-MTART TO ITAB-MTART,
WTAB-LIFNR TO ITAB-LIFNR,
WTAB-BEDAT TO ITAB-BEDAT,
WTAB-NAME1 TO ITAB-NAME1.
MODIFY ITAB TRANSPORTING EBELN EBELP BUKRS MENGE NETPR PEINH LIFNR
BEDAT NAME1
WHERE MATNR = WTAB-MATNR.
ENDLOOP.
SORT ITAB BY MATNR MATKL MTART.
DELETE ADJACENT DUPLICATES FROM ITAB COMPARING ALL FIELDS.
LINE_CHECK = 0.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM WRITE_HEADER *
*&---------------------------------------------------------------------*
FORM WRITE_HEADER.
WRITE: SY-ULINE.
NEW-LINE.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
FORMAT COLOR COL_HEADING.
WRITE: 1 '|', 2 'MATERIAL CODE',
15 '|', 16 'MATERIAL GROUP',
30 '|', 31 'DESCRIPTION',
70 '|', 71 'MATERIAL PO TEXT',
110 '|', 111 'ITEM TEXT/SPECIFICATION',
150 '|', 151 'LAST PURCHASE QUANTITY',
173 '|', 174 'LAST PURCHASE PRICE',
193 '|', 194 'LAST PURCHASE DATE',
212 '|', 213 'LAST PURCHASE VENDOR',
255 '|'.
FORMAT COLOR COL_HEADING OFF.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE: SY-ULINE.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM WRITE_DATA *
*&---------------------------------------------------------------------*
FORM WRITE_DATA.
LOOP AT ITAB.
IF SY-LINNO >= 65.
NEW-PAGE.
PERFORM WRITE_HEADER.
ENDIF.
*--> ALTERNATE COLORS FOR EACH LINE OF OUTPUT
IF LINE_CHECK = 0.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
LINE_CHECK = 1.
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
LINE_CHECK = 0.
ENDIF.
CLEAR V_PRICE.
COMPUTE V_PRICE = ( ITAB-NETPR / ITAB-PEINH ).
NEW-LINE.
WRITE: 1 '|', 2 ITAB-MATNR, "MATERIAL CODE
15 '|', 16 ITAB-MATKL, "MATERIAL GROUP
30 '|', 31 ITAB-MAKTX, "DESCRIPTION
70 '|', 71 ITAB-MTEXT, "MATERIAL PO TEXT
* 110 '|', 111 ITAB-PTEXT, "ITEM TEXT
150 '|', 157 ITAB-MENGE, "PURCHASE QUANTITY
173 '|', 177 V_PRICE DECIMALS 2, "PURCHASE PRICE
193 '|', 204 ITAB-BEDAT, "PURCHASE DATE
212 '|', 213 ITAB-NAME1, "PURCHASE VENDOR
255 '|'.
ENDLOOP.
WRITE: SY-ULINE.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM READ_TXT *
*&---------------------------------------------------------------------*
FORM READ_TXT. "my headache starts here :)
CALL FUNCTION 'READ_TEXT' "Runtime error highlighted this line
EXPORTING
CLIENT = SY-MANDT
ID = 'BEST'
NAME = ITAB-MATNR
OBJECT = 'MATERIAL'
LANGUAGE = SY-LANGU
TABLES
LINES = MAT_TXT
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
* LOOP AT MAT_TXT.
*--> Need move the text retrieved in MAT_TXT into ITAB-MTEXT
* ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM WRITE_SELECTION_CRITERIA *
*&---------------------------------------------------------------------*
FORM WRITE_SELECTION_CRITERIA.
SKIP 2.
FORMAT COLOR INTENSIFIED OFF.
WRITE: /2 'SELECTION CRITERIA:'.
WRITE: /2 '-------------------'.
*--> TO DISPLAY COMPANY CODE SELECTED
WRITE: /2 'Company Code = '.
FORMAT COLOR COL_GROUP ON.
WRITE: I_BUKRS RIGHT-JUSTIFIED.
FORMAT COLOR COL_GROUP OFF.
*--> TO DISPLAY PLANT SELECTED
WRITE: /2 'Plant = '.
FORMAT COLOR COL_GROUP ON.
WRITE: I_WERKS RIGHT-JUSTIFIED.
FORMAT COLOR COL_GROUP OFF.
*--> TO DISPLAY MATERIAL NUMBER RANGE
WRITE: /2 'Material Number = '.
FORMAT COLOR COL_GROUP ON.
WRITE: I_MATNR-LOW RIGHT-JUSTIFIED.
FORMAT COLOR COL_GROUP OFF.
WRITE: 'TO '.
FORMAT COLOR COL_GROUP ON.
WRITE: I_MATNR-HIGH RIGHT-JUSTIFIED.
FORMAT COLOR COL_GROUP OFF.
*--> TO DISPLAY MATERIAL TYPE RANGE
WRITE: /2 'Material Type = '.
FORMAT COLOR COL_GROUP ON.
WRITE: I_MTART-LOW RIGHT-JUSTIFIED.
FORMAT COLOR COL_GROUP OFF.
WRITE: 'TO '.
FORMAT COLOR COL_GROUP ON.
WRITE: I_MTART-HIGH RIGHT-JUSTIFIED.
FORMAT COLOR COL_GROUP OFF.
*--> TO DISPLAY MATERIAL GROUP RANGE
WRITE: /2 'Material Group = '.
FORMAT COLOR COL_GROUP ON.
WRITE: I_MATKL-LOW RIGHT-JUSTIFIED.
FORMAT COLOR COL_GROUP OFF.
WRITE: 'TO '.
FORMAT COLOR COL_GROUP ON.
WRITE: I_MATKL-HIGH RIGHT-JUSTIFIED.
FORMAT COLOR COL_GROUP OFF.
*--> TO DISPLAY EXTERNAL MATERIAL GROUP RANGE
WRITE: /2 'External Material Group = '.
FORMAT COLOR COL_GROUP ON.
WRITE: I_EXTWG-LOW RIGHT-JUSTIFIED.
FORMAT COLOR COL_GROUP OFF.
WRITE: 'TO '.
FORMAT COLOR COL_GROUP ON.
WRITE: I_EXTWG-HIGH RIGHT-JUSTIFIED.
FORMAT COLOR COL_GROUP OFF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ALV_DISPLAY
*&---------------------------------------------------------------------*
*FORM ALV_DISPLAY .
*
* PERFORM LIST_HEADING USING ''. " Comp name here
*
* PERFORM INIT_EVENT TABLES GT_SLIS_T_EVENTS.
*
* PERFORM BUILD_FIELDCAT.
*
* PERFORM BUILD_LAYOUT USING LAYOUT.
*
* PERFORM DISPLAY_ALV.
*
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV
*&---------------------------------------------------------------------*
*FORM DISPLAY_ALV .
*
* C_PROG = SY-REPID.
*
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* I_CALLBACK_PROGRAM = C_PROG
* IT_FIELDCAT = I_FIELDCAT[]
* IS_LAYOUT = LAYOUT
* I_GRID_TITLE = 'PURCHASE HISTORY DATA'
* IT_EVENTS = GT_SLIS_T_EVENTS[]
* I_SAVE = 'A'
* TABLES
* T_OUTTAB = ITAB
* EXCEPTIONS
* PROGRAM_ERROR = 0.
*
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form LIST_HEADING
*&---------------------------------------------------------------------*
*FORM LIST_HEADING USING VALUE(Z_HEADING) TYPE C.
*
* PERFORM HEADING USING:
* 'H' ' ' Z_HEADING,
* 'S' 'Report:' SY-REPID,
* 'S' 'User:' SY-UNAME,
* 'S' 'Date:' SY-DATUM.
* 'S' 'Material Number:' I_MATNR-LOW, " I_MATNR-HIGH,
* 'S' 'Material Group:' I_MATKL-LOW, " I_MATKL-HIGH,
* 'S' 'Plant:' I_WERKS,
* 'S' 'Company Code:' I_BUKRS,
* 'S' 'Material Type:' I_MTART-LOW, " I_MTART-HIGH,
* 'S' 'Ext. Material Group:' I_EXTWG-LOW. " I_EXTWG-HIGH.
*
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form HEADING
*&---------------------------------------------------------------------*
*FORM HEADING USING A TYPE ANY
* B TYPE ANY
* C TYPE ANY.
*
* CLEAR I_LIST_TOP_OF_PAGE.
* I_LIST_TOP_OF_PAGE-TYP = A.
* I_LIST_TOP_OF_PAGE-KEY = B.
* I_LIST_TOP_OF_PAGE-INFO = C.
* APPEND I_LIST_TOP_OF_PAGE.
* CLEAR I_LIST_TOP_OF_PAGE.
*
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
*FORM TOP_OF_PAGE .
* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
* EXPORTING
* IT_LIST_COMMENTARY = I_LIST_TOP_OF_PAGE[].
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form INIT_EVENT
*&---------------------------------------------------------------------*
*FORM INIT_EVENT TABLES P_SLIS_T_EVENT STRUCTURE GW_SLIS_EVENTS.
* CLEAR P_SLIS_T_EVENT.
* P_SLIS_T_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
* P_SLIS_T_EVENT-FORM = SLIS_EV_TOP_OF_PAGE.
* APPEND P_SLIS_T_EVENT.
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*FORM BUILD_FIELDCAT .
* PERFORM FIELDCAT USING:
* 'ITAB' ' ' 'MATNR' '13' 'Material Code' 'X' ' ',
* 'ITAB' ' ' 'MATKL' '14' 'Material Group' ' ' ' ',
* 'ITAB' ' ' 'MAKTX' '40' 'Description' ' ' ' ',
* 'ITAB' ' ' 'MTEXT' '40' 'Material PO Text' ' ' ' ',
* 'ITAB' ' ' 'PTEXT' '40' 'Item Text' ' ' ' ',
* 'ITAB' ' ' 'MENGE' '22' 'Last Purchase Quantity' ' ' ' ',
* 'ITAB' ' ' 'V_PRICE' '19' 'Last Purchase Price' ' ' ' ',
* 'ITAB' ' ' 'BEDAT' '18' 'Last Purchase Date' ' ' ' ',
* 'ITAB' ' ' 'NAME1' '40' 'Last Purchase Vendor' ' ' ' '.
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form FIELDCAT
*&---------------------------------------------------------------------*
*FORM FIELDCAT USING A TYPE ANY
* B TYPE ANY
* C TYPE ANY
* D TYPE ANY
* E TYPE ANY
* F TYPE ANY
* G TYPE ANY.
* CLEAR I_FIELDCAT.
* I_FIELDCAT-TABNAME = A.
* I_FIELDCAT-REF_TABNAME = B.
* I_FIELDCAT-FIELDNAME = C.
* I_FIELDCAT-OUTPUTLEN = D.
* I_FIELDCAT-SELTEXT_M = E.
* I_FIELDCAT-KEY = F.
* I_FIELDCAT-DO_SUM = G.
* APPEND I_FIELDCAT.
* CLEAR I_FIELDCAT.
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
*FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
* P_LAYOUT-F2CODE = F2CODE.
* P_LAYOUT-ZEBRA = 'X'.
* P_LAYOUT-DETAIL_POPUP = 'X'.
*ENDFORM.
Message was edited by: Bernard Loh
‎2005 Dec 29 11:00 AM
Sorry about the confusion...i myself am getting confused, too. All i want is to retrieve the PO Material Text (it is more than 1 line when it is retrieved) and display it as part of my report.
‎2005 Dec 29 11:03 AM
check ur importing declarations , they do not match with the FM declarations
try like this
IMPORTING
*" VALUE(CLIENT) LIKE SY-MANDT DEFAULT SY-MANDT
*" VALUE(ID) LIKE THEAD-TDID
*" VALUE(LANGUAGE) LIKE THEAD-TDSPRAS
*" VALUE(NAME) LIKE THEAD-TDNAME
*" VALUE(OBJECT) LIKE THEAD-TDOBJECT
*" VALUE(ARCHIVE_HANDLE) LIKE SY-TABIX DEFAULT 0
*" VALUE(LOCAL_CAT) DEFAULT SPACE
‎2005 Dec 29 11:05 AM
Hi again,
1. replace with this code
it won't give u any error atleast.
2. just replace the FORM.
FORM read_txt. "my headache starts here
DATA : name LIKE thead-tdname.
name = itab-matnr.
CALL FUNCTION 'READ_TEXT' "Runtime error highlighted this line
EXPORTING
client = sy-mandt
id = 'BEST'
name = name
object = 'MATERIAL'
language = sy-langu
TABLES
lines = mat_txt
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
LOOP AT MAT_TXT.
IF sy-tabix = 1.
itab-mtext = mat_txt.
ENDIF.
*--> Need move the text retrieved in MAT_TXT into ITAB-MTEXT
ENDLOOP.
ENDFORM. "READ_TXT
regards,
amit m.
‎2005 Dec 29 7:17 AM
Hi Bernard,
For NAME ...
Goto the text editor, double click on it.
on the menu bar
GOTO-> header You will find the name there.
Use the same name to pass to the FM READ_TEXT.
Hope it helps...
Lokesh
Pls. reward appropriate points
‎2005 Dec 29 11:07 AM
‎2005 Dec 29 4:59 PM
Hi
I don't know your dump, but if the problem is on the type conflict, you could solve by EXTENDED PROGRAM CHECK.
So in ABAP EDITOR, go to Program->Check->Extended Program Check
Max
‎2005 Dec 30 7:00 AM
Hi all...thanks for the codes but although there is no longer a runtime error, it still does not display the Material PO Text which by right the function call should retrieve...could it be because the PO Text retrieve is more than a single line?
Anyway, new year's coming up, wanna wish you all, especially those who have helped me along the way a Happy New Year!
‎2005 Dec 30 7:03 AM
hi Bernard,
thanks, i wish you the same, did you checked the return table, is it having data or not..
if not check in debug mode..
vijay
‎2005 Dec 30 7:10 AM
‎2005 Dec 30 7:14 AM
Hi,
take one example and run directly the FM , and check are you getting the text or not.
since some times your declaration correct, but passing the values to FM might be wrong check those also..
vijay