SAPфорум.RU https://sapboard.ru/forum/ |
|
Результат работы метода CLIPBOARD_IMPORT класса CL_GUI_FRONTEND_SERVICES отличается в 731 и 750 https://sapboard.ru/forum/viewtopic.php?f=13&t=95067 |
Страница 1 из 1 |
Автор: | wolf_sv [ Пт, июн 30 2017, 11:19 ] |
Заголовок сообщения: | Результат работы метода CLIPBOARD_IMPORT класса CL_GUI_FRONTEND_SERVICES отличается в 731 и 750 |
Здравствуйте, коллеги. Участвую в ABAP разработках в системе SAP BW (версия продукта SAP NetWeaver AS ABAP 7.31, SAP_BASIS 731, SAP_ABA 731). Сейчас планируем переход на версию продукта SAP NETWEAVER 7.5 (SAP_BASIS 750, SAP_ABA 750) и выполняем проверку работоспособности всех своих реализаций на версии 750. Использую SAP Logon Pad 740. При тестировании разработки по загрузки данных из Excel при помощи метода «CLIPBOARD_IMPORT» класса «CL_GUI_FRONTEND_SERVICES» выяснилось, что результат работы данного метода отличается в версиях 731 и 750. Структура данных Excel файла фрагментирована, последовательно с вверху вниз идут области данных. Каждая область данных содержит область заголовка и предваряется техническим именем области. Например, T_RANGE1 Код | Дата начала действия | Версия | Наименование | Полное наименование 0001| 20130611 | 001 | Яблоки | Молдавские яблоки 0002| 20130611 | 001 | Яблоки | Яблоки зелённые T_RANGE2 Код | Дата начала действия | Версия | Атрибуты 0001| 20130611 | 001 | Вес 0001| 20130611 | 001 | Цена Разница результатов работы выше указанного метода заключается в том, что когда длина строки в Excel получается длинной, то в версии 750 выше указанный метод отдаёт длинную строку из Excel в виде двух строк в отличии от версии 731. Приведу пример на уже выше указанном примере данных в Excel. Пример выше указанных данных очень упрощён, но думаю будет понятно. Реальная первая область данных T_RANGE1 содержит область заголовка с наименованиями, состоящую из 135 полей, длина строки из этих наименований полей получается приличной в отличии от длины строки полученной из области с данными области T_RANGE1, поэтому выше указанный метод область заголовка отдаёт в виде двух строк, а строку области данных отдаёт в виде одной строки. Вторая область данных T_RANGE2 покороче, поэтому выше указанный метод каждую область по ней отдаёт в виде одной строки. В версии 750 будет так: T_RANGE1#### Код#Дата начала действия#Версия Наименование#Полное наименование 0001#20130611#001#Яблоки#Молдавские яблоки 0002#20130611#001#Яблоки#Яблоки зелённые T_RANGE2### Код#Дата начала действия#Версия#Атрибуты 0001#20130611#001#Вес 0001#20130611#001#Цена В версии 731 будет так: T_RANGE1#### Код#Дата начала действия#Версия#Наименование#Полное наименование 0001#20130611#001#Яблоки#Молдавские яблоки 0002#20130611#001#Яблоки#Яблоки зелённые T_RANGE2### Код#Дата начала действия#Версия#Атрибуты 0001#20130611#001#Вес 0001#20130611#001#Цена Сам пока не понял почему результаты работы выше указанного метода отличаются на версиях 731 и 750. Ищу решение данной проблемы для версии 750. Может быть ноту надо поставить или версию SAP Logon поменять…. Заранее благодарен за любую помощь. Спасибо. |
Автор: | Rodon [ Чт, фев 22 2018, 08:28 ] |
Заголовок сообщения: | Re: Результат работы метода CLIPBOARD_IMPORT класса CL_GUI_FRONTEND_SERVICES отличается в 731 и 750 |
Привет. Проблема была решена? как? |
Автор: | R256 [ Пн, фев 25 2019, 19:53 ] |
Заголовок сообщения: | Re: Результат работы метода CLIPBOARD_IMPORT класса CL_GUI_FRONTEND_SERVICES отличается в 731 и 750 |
А какой тип у параметра DATA в методе CLIPBOARD_IMPORT? Предположу следующее. В методе CALL METHOD cl_gui_frontend_services=>clipboard_export параметр DATA определен как TYPE STANDARD TABLE. Не знаю как это работало в предыдущих версиях, но в 7.5 работает так: В вызывающей программе объявляется таблица с одним символьным полем длиной 100 знаков. Если в буфере обмена содержится строка длиной менее 100 символов, то в таблице вернется одна строка, если больше 100 знаков, то вернется две строки, что при "разборе" excel будет не совсем корректно. Поэтому и спрашиваю про тип, может он определяется динамически и некорректно перед вызовом CLIPBOARD_IMPORT. Может просто надо аккуратно расширить длину таблицы. Но если таблица объявлена как itab TYPE STANDARD TABLE OF string, то метод зависает и больше не работает. А так бы string таблица была бы идеальна |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |