Текущее время: Пн, июл 14 2025, 15:15

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Выгрузка данных в Word - в фоне.
СообщениеДобавлено: Ср, сен 17 2008, 15:46 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
Добрый день народ!

Подскажите пожалуйста, как можно решить следующую задачку.
Задачка в том чтобы выгрузить данные в Word в фоновом режиме работы программы.
Для выгрузки использую ФМ ZWWW_OPENFORM (большое спасибо Parazit'у)
из темы (http://sapboard.ru/forum/viewtopic.php?t=4880&highlight=word).

При запуске выгрузки в обычной программе - все Ок.

Пытаюсь запустить в фоновом (!) режиме:

Такая вот цепочка:
Прогр. ZTEST -> ФМ1 (IN UPDATE TASK) -> ФМ2 (STARTING NEW TASK 'MYTASK') ->
-> Call function 'ZWWW_OPENFORM'

Текст программы ZTEST ->
Code:
* Вызываю первый ФМ
call function 'ZWORD_FM1' IN UPDATE TASK.
commit work.
write: / 'ok'.

Текст ФМ FM1
(В свойствах ZWORD_FM1 стоит "Моуль обновления", "ЗапускОткладыв")
Code:
* Вызываю второй ФМ
call function 'ZWORD_FM2' STARTING NEW TASK 'MYTASK'.

Текст ФМ FM2
В свойствах второго ФМ установлено "Дистанционный модуль", "Немедленный запуск".
Code:
Data:  it_Val  type standard table of ZWWW_VALUES with header line.
Clear it_Val.
it_Val-Var_Name = 'SumProp'. "Имя закладки
it_Val-Find_Text = ''.
it_Val-Value = '12345'.
Append it_Val.

********************************************************************
* Заполнение шаблона подготовленными данными и вывод на экран
********************************************************************
Call function 'ZWWW_OPENFORM'
     EXPORTING
          FORM_NAME   = 'ZTEMPLATE1'
          PrintDialog = ''
     TABLES
          IT_VALUES   = it_Val.

Но ничего не получается. (
Если убрать вызов 'ZWWW_OPENFORM' то все ФМ отрабатывают. Иначе отрабатывает только первый ФМ, а ФМ где вызывается 'ZWWW_OPENFORM' не отрабатывает. (Чтобы проверить что он отработал в нем же добавлял запись в тестовую табличку).
Программа выполняется но никакой выгрузки не происходит.
Методом тыка обнаружил что не может выполниться ФМ
Call function 'DOWNLOAD_WEB_OBJECT' в инклюде LZWWWFORMF01. Без него по крайней мере второй ФМ отрабатывает, но конечно ничего не выгружает.

Спасибо!

P.S. Смысл затеи в том, что вордовский документ должен формироваться в процессе выполнения транзакции, которая выполняется в фоне.

P.P.S. Спасибо всем кто прочитал такой длинный пост!

_________________
Regards


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка данных в Word - в фоне.
СообщениеДобавлено: Ср, сен 17 2008, 17:02 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
FoLKo написал:
P.S. Смысл затеи в том, что вордовский документ должен формироваться в процессе выполнения транзакции, которая выполняется в фоне.



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

Если хотите запускать в фоновый режим из-за больших объёмов данных, то попробуйте временно сохранять где-нибудь результаты работы, чтобы потом их пользователь себе смог выгрузить.

Можно, конечно, формировать Word документы и на сервере приложений, но с этим будете мучаться.

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 18 2008, 08:42 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
Цитата:
Фоновый режим означает, что к конкретному пользователю он вообще не будет иметь никакого отношения. Если связи с компьютером пользователя не будет, то где он получит документ Word?

Может я не правильно выразился просто. Пользователь сам запускает транзакцию, а во время работы транзакции, как бы в фоне или в другом процессе (В функМодуле типа STARTING NEW TASK) выполняется выгрузка в Word, и он получает документ на экране.
Но 'DOWNLOAD_WEB_OBJECT' возвращает ошибку NO_GUI.
Спасибо за ответ.
Я попробую сохранять данные в пользовательской табличке, и затем печатать их из другой программы обычным вызовом.

_________________
Regards


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 18 2008, 12:32 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
FoLKo написал:
Цитата:
Фоновый режим означает, что к конкретному пользователю он вообще не будет иметь никакого отношения. Если связи с компьютером пользователя не будет, то где он получит документ Word?

Может я не правильно выразился просто. Пользователь сам запускает транзакцию, а во время работы транзакции, как бы в фоне или в другом процессе (В функМодуле типа STARTING NEW TASK) выполняется выгрузка в Word, и он получает документ на экране.
Но 'DOWNLOAD_WEB_OBJECT' возвращает ошибку NO_GUI.
Спасибо за ответ.
Я попробую сохранять данные в пользовательской табличке, и затем печатать их из другой программы обычным вызовом.


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

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

Подобную проблему с "фоновым режимом" проще решить самому пользователю, если он создаст новый режим GUI для выгрузки, а продолжит работать в первом. Но это может затормозить систему, если пользователей много. Постарайтесь упростить саму выгрузку, а данные готовить независимо.


P.S. Если вопросы остались, то уточните и предметную область, пожалуйста.

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 18 2008, 19:31 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
FoLKo написал:
Может я не правильно выразился просто. Пользователь сам запускает транзакцию, а во время работы транзакции, как бы в фоне или в другом процессе (В функМодуле типа STARTING NEW TASK) выполняется выгрузка в Word, и он получает документ на экране.


К сожалению, режима "как бы в фоне" в SAP не предусмотрено. :) Как уже правильно ответили, в background (т.е. "в фоне") GUI не доступен, соответственно и появляется ошибка.

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

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 18 2008, 19:47 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Jelena написала:
Честно говоря, я бы порекомендовала пользователям просто открывать отдельную сессию для транзакции. Пока там программа крутится, они могут что-нибудь другое делать.


Только не переусердствовать, иначе десяток пользователей (точнее сессий с выгрузками) и SAP "лежит"...

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 19 2008, 08:30 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
Спасиба за советы! Буду пробовать.

_________________
Regards


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

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


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

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


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

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