Извлечение текстов заказа на поставку в SAP

Есть ли способ просмотреть подробную информацию на вкладке «Текст позиции» в заказе на поставку ME23N в форме отчета или таблицы? Я пробовал искать во многих местах, но мне не удалось найти таблицу. Таблица EKKO / EKPO, похоже, в этом не помогает.


person Anonymous    schedule 16.02.2017    source источник


Ответы (1)


Существуют таблицы STXH (для заголовка) и STXL (для строк), но они не читаются из коробки.
Обычно чтение текстов осуществляется READ_TEXT FM:

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

Чтобы узнать ID / название необходимого текста, необходимо войти в режим редактирования и нажать Goto >> Header, где нужно проверить соответствующие поля.

введите изображение  описание здесь

ОБНОВЛЕНИЕ: массовое извлечение текстов на основе приведенного выше примера

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.
person Suncatcher    schedule 16.02.2017
comment
Привет Suncatcher, спасибо за предложение. Я уже пробовал этот способ. Но этот нужно вводить по очереди. Я ищу способ отобразить все текстовые элементы одним снимком в таблице. Я ищу любой запрос, который можно создать для этого. - person Anonymous; 22.02.2017
comment
Привет Suncatcher, спасибо! Этот код должен быть реализован в SQ02, верно? Если да, то мне нужно будет создать новый информационный набор, не так ли? Извините, у меня раньше не было опыта создания запросов SAP. - person Anonymous; 09.03.2017
comment
@ Анонимно, не обязательно в SQ02. В любом типе программы (тип 1, пул модулей, функциональный модуль и т. Д.) ) - person Suncatcher; 09.03.2017
comment
Хорошо, я сначала попробую этот @Suncatcher. Спасибо! - person Anonymous; 10.03.2017
comment
Я продолжаю получать сообщение об ошибке: «Поле« t_stxl »неизвестно» .. Я попытался вставить этот код в информационный набор в разделе «Данные» для таблицы EKPO после того, как я создал информационный набор. Есть идеи, почему? @Suncatcher - person Anonymous; 24.05.2017
comment
@Anonymous, объявление таблицы отсутствует. Подправил код - person Suncatcher; 24.05.2017
comment
Это потрясающе, не могли бы вы сделать вариант для извлечения текста заказа на поставку из материалов в SAP? (MM03) Я бы устроил награду, но моя репутация отстой ... - person DeerSpotter; 08.11.2017
comment
@DeerSpotter, процесс тот же, просто используйте MATERIAL вместо EKPO и BEST вместо F01 в приведенном выше фрагменте. И, конечно же, правильное имя tdname. - person Suncatcher; 10.11.2017