Текущее время: Ср, июл 30 2025, 20:30

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 11:26 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Текущий вариант выгрузки данных через OLE дико тормозит. Следовательно появилась необходимость поменять принцип взаимодействия с MS Office.
На форумах почитал, что DOI вроде как быстрее. Но в оффициальной документации я не нашел его принципа работы. Быстрее он может быть, если все запросы сохраняются на стороне сервера, а потом скопом через CET отправляются на клиент и там уже через OLE импортируются куда-нибудь.

Это так или DOI только каждый запрос отдельно отправлять умеет?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 11:45 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
При правильной реализации скорость работы с использованием OLE напрямую и с использованием DOI отличается крайне незначительно.
DOI всего-лишь предоставляет более удобный интерфейс для определенного типа задач.
На вашем месте я бы начал с оптимизации "текущего варианта выгрузки".


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 12:02 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Спасибо за информацию, Артем! Буду искать другой вариант.

Куда дальше оптимизировать текущую программу я не представляю: практически все обрабатывается через хеш таблицы и field-symbol'ы, данные и форматирование группируются на сервере; на клиент отправляется только "выжимка" результата. Просто два десятка тысяч запросов на клиент (при пинге в 20 миллисекунд) уже занимают больше 6 минут. Макросы в Offic'e использовать нельзя.

Может быть можно запускать какие-нибудь программы на клиенте (C/C++, VBS, Java etc) из SAPGui чтобы не возникало проблем с правами?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 12:23 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
weise, так а что тормозит то тогда? Именно выгрузка в офис или обработка данных или выборка из БД? Откуда берется 20к запросов? Вы в SE30 производительность анализировали?
Еще интересно понять что есть "дико тормозит". Например для меня выгрузка порядка 100 сложных форм в Excel с форматированием за 5ть минут - вовсе не тормоза :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 12:45 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Тормозит именно выгрузка (этап когда готовые данные и форматирование переносяться в Excel). Поэтому все что можно, вынесено в ABAP. 20к запросов генегируются сознательно :D
Значит, подумала моя мысль, нужно все запросы за раз перенести на клиент и заполнять шаблон уже там. Поэтому теперь ищу способ запустить какую-нибудь программу на клиенте и заполнять всё ей :wink:

PS
100 сложных форм за 5 минут действительно хорошо. Но у меня-то 1-2 таблички (правда по 10к строк 8) )


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 13:46 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
может лучше выложите код выгрузки, а то гадать не очень тянет :wink:

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 14:07 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Так в коде же проблем нет :)
Тормозит-то именно выгрузка (процесс назначения свойств и значений ячейкам Excel через OLE): слишком много вызовов при большом пинге. Поэтому ищу способ заполнять excel файл с локальной машины.

Кстати, попробовал сейчас, запуск локальных VB скриптов (встрены в офис) и заполнение ими Excel шаблона данными из второго, сформированного на сервере, файла. Оказалось очень медленно.
А вот тот же VB код, перенесенный в Excel шаблон в качестве VBA дает нормальную скорость.
То есть надо или писать на C++ программу, загружать ее на клиент и ей заполнять шаблон или
разобраться с запуском макросов при отключенных макросах :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 14:17 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
weise написал(а):
Так в коде же проблем нет :)
Тормозит-то именно выгрузка (процесс назначения свойств и значений ячейкам Excel через OLE): слишком много вызовов при большом пинге. Поэтому ищу способ заполнять excel файл с локальной машины.

Кстати, попробовал сейчас, запуск локальных VB скриптов (встрены в офис) и заполнение ими Excel шаблона данными из второго, сформированного на сервере, файла. Оказалось очень медленно.
А вот тот же VB код, перенесенный в Excel шаблон в качестве VBA дает нормальную скорость.
То есть надо или писать на C++ программу, загружать ее на клиент и ей заполнять шаблон или
разобраться с запуском макросов при отключенных макросах :D


конечно лучше использовать шаблоны с макросами и осуществлять наведение красоты на стороне клиента то бишь в excel. советую поглядеть разработку Parazit - а .

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 14:20 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, окт 21 2008, 08:02
Сообщения: 71
Откуда: Moscow
Пол: Мужской
Форматирование шаблона статическое или динамическое? Просто если статическое - можете попробовать выгрузку в xml через simple transformation


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 14:42 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
weise, для начала нужно разобраться с OLE ;)
Естественно, заполняя данные и форматируя шаблон поячеично ни о какой скорости можно не задумываться.
Собственно референс.
С точки зрения пакетной выгрузки данных поможет DOI, там уже все работает верно. Но возможности форматирования в DOI оставляют желать много лучшего.

P.S.: Макросы использовать настоятельно не рекомендую.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 16:52 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Я очень благодарен вам за советы! Процесс решения (или перебора вариантов) движется вперед :D

Решение Parazit'а (респект ему по жизни) классно подходит заполнения нормальных человеческих отчетов. Но я не разобрался как в нем сделать всякое динамическое форматирование: например, промежуточные итоги таблиц (когда посередине таблицы нужно мержить ячейки). Наверно макросами? И там тоже OLE поячеечное используется?

ppeter, честно говоря я не очень понял как влияет статичность или динамичность форматирования на выгрузку в xml. Я уже делал так - это один из моих любимых вариантов :wink:. Только я реализовывал через xsl. На выходе - один аккуратненький файл xml. Но здесь есть тонкие места:
- xml я сделал для Excel. Для Ворда будет сложнее. И для каждой новой программы/версии надо все ручками исправлять;
- как оказалось Excel свободно переваривает десятки килострок в xml. Но вот при количестве стилей больше тысячи начинает
ощутимо тормозить (хотя столько стилей редко бывает - этот пункт не так важен);
- не понятно как получить на вход шаблон xml. САП не поддерживает in-place редактирование таких шаблонов (в BDS) по -умолчанию.
А я не дошел пока как это добавить;

Артем, а почему именно настойчиво не рекомендуете макросы? У меня самого они отключены, но с ними еще есть подводные камни?
Референс как бы намекает на создание xml-схем и соответственно импорт xml файлов. Но как с ними сделать форматирование я еще не дошел. Копаю дальше :arrow:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Принцип работы DOI: кеширует/буферизует ли он запросы?
СообщениеДобавлено: Вт, дек 01 2009, 17:27 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
weise, для меня это главный подводный камень и есть. То что выполнение макросов можно запретить. По моему достаточно для отказа от подобного подхода к форматированию.

По вашей задаче, мне кажется, будет проще всего остановиться на связке DOI для выгрузки данных + OLE для форматирования (хотя если вы скажете что за форматирование вам нужно - возможно я смогу подсказать как его реализовать через DOI). В DOI смотрите методы INSERT_RANGES и SET_RANGES_DATA (это методы SPREADSHEET интерфейса). В OLE форматирование делайте с максимальным использованием рэйнджей. Т.е. применяйте действие сразу ко всем необходимым элементам.
XML mapping и иже с ними - это все замечательно. Но потребует больших временных затрат.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB