READ_TEXT находит длинный текст, только если он изменен - PullRequest
0 голосов
/ 08 января 2020

Моя программа считывает текст с вкладки «Внутренние наблюдения» кода транзакции MM03, используя функциональный модуль Read_Text.

Во время испытаний я столкнулся со странной проблемой. Когда я запускал программу, показывалось только несколько текстов. Я отредактировал некоторые из этих текстов материалов в MM02 (только с пробелом или символом, например 'ABC' -> 'ABC '), и они были показаны в моей программе, поэтому я пошел на отладку и увидел, что функция работает отлично для всех.

Возможно, проблема в том, что почти все существующие материалы были изменены в натуральном выражении. Вы когда-нибудь сталкивались с такой проблемой?

Вот моя программа:

MOVE: gs_tab_out_f-matnr TO name,
      'IVER'             TO id,
      'MATERIAL'         TO object,
      sy-langu           TO language.

CALL FUNCTION 'READ_TEXT'
  EXPORTING
    id                      = id
    language                = language
    name                    = name
    object                  = object
  TABLES
    lines                   = lines
  EXCEPTIONS
    OTHERS                  = 8.
IF sy-subrc = 0.
  LOOP AT lines INTO line WHERE tdformat EQ '*'.
    WRITE line-tdline TO gs_tab_out_f-descricao.
  ENDLOOP.
ENDIF.

ENDIF.

Шаги для воспроизведения:

1) Без изменения текста в MM02, вывод будет:

MATERIAL       TEXT

 1. ASP-AU247
 2. ASP-AU753
 3. ASP-AU842

2) Добавить завершающий пробел к тексту в MM02 и сохранить его

3) Запустить программу, вывод:

MATERIAL       TEXT

 1. ASP-AU247   *A6 01/09-G/LAMAS
 2. ASP-AU753   *A6 01/09-GREL
 3. ASP-AU842    A6 01/09-FRISO

После изменения текста вручную я могу выполнить транзакцию, и каждый раз для этих материалов текст будет отображаться правильно.

...