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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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