SAPфорум.RU https://www.sapboard.ru/forum/ |
|
ФМ READ_TEXT не выводит тексты для некоторых материалов https://www.sapboard.ru/forum/viewtopic.php?f=13&t=53759 |
Страница 1 из 1 |
Автор: | OK(sic!) [ Вт, сен 29 2009, 13:23 ] |
Заголовок сообщения: | ФМ READ_TEXT не выводит тексты для некоторых материалов |
День добрый ! Подскажите, пожалуйста, по какой причине для некоторых русских текстов/материалов может не работать ФМ READ_TEXT? Вообще ничего не выводит. Параметры экспорта: id = F03 language = RU name = заказ+номер позиции object = EKPO Использую его для SAPScript формуляра под заказ на поставку. Причем INCLUDE с теми же параметрами выдает текст из карточки материала без сбоев. Более того, ФМ READ_TEXT тоже работает для тех материалов, где не работал, в одних случаях, если в самой карточке стереть и набить (вставить) русский текст заново, в других - это не помогает, но "кушает", если в позиции самого заказа в разделе "Тексты" переписать соответствующий русский текст (но тогда решение, соответственно, распространяется только на данный заказ). INCLUDE не подошел, т.к. 1) текст нужно было вставить в определенную строку с другими переменными до и после, 2) нужно было отрезать нужное количество знаков текста. Спасибо! |
Автор: | SAA [ Вт, сен 29 2009, 13:55 ] |
Заголовок сообщения: | Re: ФМ READ_TEXT не выводит тексты для некоторых материалов |
OK(sic!) написала: Подскажите, пожалуйста, по какой причине для некоторых русских текстов/материалов может не работать ФМ READ_TEXT? Вообще ничего не выводит. Запусти READ_TEXT в SE37 с теми же параметрами и посмотри, что будет в LINES. Вполне возможно, пустые строки в начале или пробелы. Также поищи ноты. Также попробуй другие тексты посмотреть (другой id). |
Автор: | OK(sic!) [ Ср, сен 30 2009, 11:43 ] |
Заголовок сообщения: | Re: ФМ READ_TEXT не выводит тексты для некоторых материалов |
BINGO! Спасибо огромное, изменила код для переноса в формуляр только непустой и, на всякий случай, только первой (!) непустой позиции (нечего в несколько строк названия писать и все супер работает |
Автор: | SAA [ Ср, сен 30 2009, 13:07 ] |
Заголовок сообщения: | Re: ФМ READ_TEXT не выводит тексты для некоторых материалов |
OK(sic!) написала: только первой (!) непустой позиции (нечего в несколько строк названия писать CONCATENATE может решить и эту проблему |
Автор: | OK(sic!) [ Ср, сен 30 2009, 16:50 ] |
Заголовок сообщения: | Re: ФМ READ_TEXT не выводит тексты для некоторых материалов |
Меня эта мысль тоже посетила, только сколько этих строчек склеивать: 2? А вдруг их будет 3 или 4. В общем я решила пока не усложнять, потому что обычно у нас описание позиции материала из одной строки состоит... Встанет вопрос - сделаем. Этак можно сделать и чтобы высота строк в таблице регулировалась в зависимости от длины текста к примеру... Вопрос только, надо ли... Вот ограничивается же длина текста во многих полях SAP определенным числом знаков. Пусть и тут тоже привыкают В конце концов, это не текст для документов сбыта (накладная, сч/ф) и не форма установленного образца... В любом случае - спасибо |
Автор: | DED_MOROZ [ Ср, сен 30 2009, 17:52 ] |
Заголовок сообщения: | Re: ФМ READ_TEXT не выводит тексты для некоторых материалов |
Зачем вам знать сколько строк возвращает ФМ? Лепите с помощью CONCATENATE их все. |
Автор: | riki11 [ Пт, окт 16 2020, 09:21 ] |
Заголовок сообщения: | Re: ФМ READ_TEXT не выводит тексты для некоторых материалов |
Добрый день. Дорогие абаперы, подскажите пожалуйста. Куда в моем случае воткнуть CONCATENATE? ФМ берет не все строчки, а только первую из LINES Пример кода: CALL FUNCTION 'READ_TEXT' " Текст с комментарием по согласованию EXPORTING id = lc_tdid1 language = ls_head-tdspras name = ls_head-tdname object = ls_head-tdobject TABLES lines = lt_lines EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 OTHERS = 7. IF sy-subrc EQ 0. READ TABLE lt_lines REFERENCE INTO lr_line INDEX 1. IF sy-subrc EQ 0. lv_comment = lr_line->tdline. ENDIF. ENDIF. |
Автор: | John Doe [ Пт, окт 16 2020, 09:25 ] |
Заголовок сообщения: | Re: ФМ READ_TEXT не выводит тексты для некоторых материалов |
Посмотрите пример в статье Function Example READ_TEXT ABAP wrapper function Нужно организовать цикл по таблице вместо чтения первой строки. Code: CALL FUNCTION 'READ_TEXT'
EXPORTING OBJECT = OBJECT ID = ID LANGUAGE = LANGUAGE NAME = l_NAME "TR IMPORTING HEADER = TEXTHEADER TABLES LINES = TEXTLINES EXCEPTIONS ID = 1 LANGUAGE = 2 NAME = 3 NOT_FOUND = 4 OBJECT = 5 REFERENCE_CHECK = 6 WRONG_ACCESS_TO_ARCHIVE = 7 OTHERS = 8. LOOP AT TEXTLINES. CONCATENATE TEXT TEXTLINES into TEXT SEPARATED BY space. ENDLOOP. |
Автор: | riki11 [ Пн, окт 19 2020, 08:44 ] |
Заголовок сообщения: | Re: ФМ READ_TEXT не выводит тексты для некоторых материалов |
Прописал все вроде правильно, в дамп не вылетает, но и комментарии не хочет вытаскивать, что я не так прописал? Code: CALL FUNCTION 'READ_TEXT' " Текст с комментарием по согласованию
EXPORTING id = lc_tdid1 language = ls_head-tdspras name = ls_head-tdname object = ls_head-tdobject TABLES lines = lt_lines EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 OTHERS = 7. IF sy-subrc EQ 0. ELSEIF lt_lines IS NOT INITIAL. LOOP AT lt_lines INTO lv_comment WHERE tdformat EQ '*'. IF lt_lines IS INITIAL. CONCATENATE lr_line->tdline lv_comment INTO lv_comment. ELSE. CONCATENATE lr_line->tdline lv_comment INTO lv_comment SEPARATED BY '0D0A'. ENDIF. ENDLOOP. ENDIF. |
Автор: | ghost [ Пн, окт 19 2020, 10:56 ] |
Заголовок сообщения: | Re: ФМ READ_TEXT не выводит тексты для некоторых материалов |
riki11 написал: Прописал все вроде правильно, в дамп не вылетает, но и комментарии не хочет вытаскивать, что я не так прописал? всё не так после проверки sy-subrc, такое ощущение, что код был собран из разных примеров. Code: DATA:
lv_comment TYPE string, lref_line TYPE REF TO tline. CALL FUNCTION 'READ_TEXT' " Текст с комментарием по согласованию EXPORTING id = lc_tdid1 language = ls_head-tdspras name = ls_head-tdname object = ls_head-tdobject TABLES lines = lt_lines EXCEPTIONS OTHERS = 1. IF sy-subrc EQ 0 AND lt_lines IS NOT INITIAL. LOOP AT lt_lines REFERENCE INTO lref_line. IF lv_comment IS INITIAL. lv_comment = lref_line->tdline. ELSE. CONCATENATE lv_comment lref_line->tdline INTO lv_comment SEPARATED BY '0D0A'. ENDIF. ENDLOOP. ENDIF. |
Автор: | riki11 [ Пн, окт 19 2020, 12:11 ] |
Заголовок сообщения: | Re: ФМ READ_TEXT не выводит тексты для некоторых материалов |
Спасибо большое, все получилось. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |