Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

READ_TEXT

Former Member
0 Likes
5,356

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?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
4,819

hi declare the variable as NAME LIKE THEAD-TDNAME

Satish

51 REPLIES 51
Read only

Former Member
0 Likes
3,270

Hi Bernard,

1. The main parameter is

NAME LIKE THEAD-TDNAME

Regards,

Amit M.

Read only

0 Likes
3,270

Could you elaborate more on that abit?

Read only

0 Likes
3,270

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.

Read only

0 Likes
3,270

you can check these tables

STXL and STXH for tdid,tdaname,tdobject...

regards

vijay

Read only

0 Likes
3,270

If that is the case, how do i move the text that was retrieved into ITAB-MAT_TXT?

Do i do a LOOP?

Read only

0 Likes
3,270

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.

Read only

0 Likes
3,270
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.

Read only

0 Likes
3,270

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?

Read only

0 Likes
3,270

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

Read only

0 Likes
3,270

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?

Read only

0 Likes
3,270

yeah exactly..

you loop that and move the text for each material you need to repeat the same process.

vijay

Read only

0 Likes
3,270

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

Read only

0 Likes
3,270

i got a runtime error message...something about type conflict when calling function...any ideas?

Read only

0 Likes
3,270

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

Read only

0 Likes
3,270

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.

Read only

0 Likes
3,270

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.

Read only

0 Likes
3,270

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

Read only

0 Likes
3,270

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.

Read only

0 Likes
3,270

check out the declarations of variables that u had passed to the FM

Read only

0 Likes
3,270

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?

Read only

0 Likes
3,270

hi

declare like this..

MAT_TXT LIKE TLINE OCCURS 0 WITH HEADER LINE.

Read only

0 Likes
3,270

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.

Read only

0 Likes
3,270

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)

Read only

0 Likes
3,270

loop that text table and concatenate the text(tdline) to material text.

but this way only you need to do..

vijay

Read only

0 Likes
3,270

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

Read only

0 Likes
3,270

before that can you give your code so that we will correct it and give you.

(full code).

vijay

Read only

0 Likes
3,270

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

Read only

0 Likes
3,270

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.

Read only

0 Likes
3,270

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

Read only

0 Likes
3,270

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.

Read only

0 Likes
3,270

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

Read only

0 Likes
3,270

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.

Read only

Former Member
0 Likes
3,270

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

Read only

Former Member
0 Likes
4,820

hi declare the variable as NAME LIKE THEAD-TDNAME

Satish

Read only

0 Likes
3,270

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

Read only

0 Likes
3,270

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!

Read only

0 Likes
3,270

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

Read only

0 Likes
3,270

i checked in debug mode, its blank

Read only

0 Likes
3,270

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