Extracting Purchase Order texts in SAP

Anonymous picture Anonymous · Feb 16, 2017 · Viewed 14.8k times · Source

Is there any way to view the details in Item Text tab in Purchase Order ME23N in a report form or table form? I have tried to search in many places but I couldn't find the table. Table EKKO/EKPO doesn't seem to help in this.

Answer

Suncatcher picture Suncatcher · Feb 16, 2017

There are tables STXH (for header) and STXL (for lines) but they are not readable out-of-the-box.
Usually reading texts is made by READ_TEXT FM:

CALL FUNCTION 'READ_TEXT'
 EXPORTING
  client = sy-mandt
  id = 'F01'
  language = 'E'
  name = %PO_number% + %PO_pos%
  object = 'EKPO'

To find out ID/name of necessary text one should enter edit mode and press Goto >> Header where one should check correspondent fields

enter image description here

UPDATE: mass extraction of texts based on the above example

TYPES: BEGIN OF ty_stxl_raw,
        clustr TYPE stxl-clustr,
        clustd TYPE stxl-clustd,
       END OF ty_stxl_raw,
       BEGIN OF ty_stxl,
        tdname TYPE stxl-tdname,
        clustr TYPE stxl-clustr,
        clustd TYPE stxl-clustd,
       END OF ty_stxl.
DATA:  t_stxl_raw TYPE STANDARD TABLE OF ty_stxl_raw,
       t_stxl     TYPE TABLE OF ty_stxl,
       w_stxl_raw TYPE ty_stxl_raw.

DATA:  t_tline TYPE STANDARD TABLE OF tline.
FIELD-SYMBOLS: <tline> TYPE tline,
               <stxl> LIKE LINE OF t_stxl.

SELECT l~tdname l~clustr l~clustd
 INTO CORRESPONDING FIELDS OF TABLE t_stxl
 FROM stxl AS l
 JOIN stxh AS h
  ON h~tdobject = l~tdobject
   AND h~tdname   = l~tdname
   AND h~tdid     = l~tdid
 WHERE l~relid    = 'TX'          "standard text
   AND h~tdobject = 'EKPO'
   AND h~tdname   = '450001216400010'
   AND h~tdid     = 'F01'
   AND l~tdspras  = sy-langu.

LOOP AT t_stxl ASSIGNING <stxl>.
CLEAR: t_stxl_raw[], t_tline[].
APPEND VALUE ty_stxl_raw( clustr = <stxl>-clustr clustd = <stxl>-clustd ) TO t_stxl_raw.
IMPORT tline = t_tline FROM INTERNAL TABLE t_stxl_raw.

LOOP AT t_tline ASSIGNING <tline>.
 "do anything
ENDLOOP.

ENDLOOP.