SAPфорум.RU
https://www.sapboard.ru/forum/

ZWWW - ФМ для выгрузки данных в WORD, EXCEL
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=4880
Страница 147 из 161

Автор:  metha [ Пн, сен 10 2018, 15:01 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Parazit написал:
metha написал:
Всем привет, есть ли возможность получить физическое имя файла (полное имя с диреткорией), которое сгенерил этот ФМ? Не шаблона, а именно файла итогового? Задача стоит взять сгенеренный бинарник.

Подход немного другой. Вы сами можете сгенерить каталог и имя файла и подать его на вход ZWWW, параметр FILE_NAME.
Таким образом вы будете знать, где лежит готовый файл после выполнения ZWWW.


А если на вход подавать просто имя файла в этот параметр без полного пути, то куда будет идти генерация итогово файла? У меня на разных рабочих станциях какая-то вакханалия, кому-то в tmp\ кому-то в \temp, кому-то просто в десктоп. :-)

Автор:  Parazit [ Пн, сен 10 2018, 16:56 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

metha написал:
Parazit написал:
...
Подход немного другой. Вы сами можете сгенерить каталог и имя файла и подать его на вход ZWWW, параметр FILE_NAME.
Таким образом вы будете знать, где лежит готовый файл после выполнения ZWWW.


А если на вход подавать просто имя файла в этот параметр без полного пути, то куда будет идти генерация итогово файла? У меня на разных рабочих станциях какая-то вакханалия, кому-то в tmp\ кому-то в \temp, кому-то просто в десктоп. :-)

Файл без пути зависит от версии.
Сделайте как в ZWWW:
Code:
      Call function 'GUI_GET_DESKTOP_INFO'
        exporting
          Type   = 4  "TmpDir
        changing
          Return = Temp_Dir
        exceptions
          others = 99.

Автор:  Aleksoid1978 [ Ср, сен 19 2018, 03:53 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Всем привет.
Есть пару вопросов к автору.

1) - в Form GetTempDir ты используешь FM 'WS_EXECUTE', а он уже не работает в SAP GUI 7.5, просто на этом вызове висит бесконечно. Ну как бы и считается устаревшим(не помню ноту) и вместо него лучше использовать CALL METHOD CL_GUI_FRONTEND_SERVICES=>EXECUTE.
2) - используется старенькая версия сабжа(не знаю как узнать точную версию, но год "внедрения" в САП - 2010 указан). Если не было никакого изменения - могу ли я безболезненно обновиться на последнюю 3.03 версия ? Почему спрашиваю - сравнил код, ну очень много отличий, боюсь как бы не поломалось после обновления.

Автор:  Parazit [ Ср, сен 19 2018, 10:54 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Aleksoid1978 написал(а):
Всем привет.
Есть пару вопросов к автору.

1) - в Form GetTempDir ты используешь FM 'WS_EXECUTE', а он уже не работает в SAP GUI 7.5, просто на этом вызове висит бесконечно. Ну как бы и считается устаревшим(не помню ноту) и вместо него лучше использовать CALL METHOD CL_GUI_FRONTEND_SERVICES=>EXECUTE.
2) - используется старенькая версия сабжа(не знаю как узнать точную версию, но год "внедрения" в САП - 2010 указан). Если не было никакого изменения - могу ли я безболезненно обновиться на последнюю 3.03 версия ? Почему спрашиваю - сравнил код, ну очень много отличий, боюсь как бы не поломалось после обновления.

О как! :shock:
Не слышал про проблемы под SAP GUI 7,5. Спасибо за инфу. Поставлю, проверю.
Вызов через WS_EXECUTE был написан давно. Поскольку я стараюсь соблюдать совместимость со старыми версиями SAP (поначалу даже было с 4.0), то стараюсь не трогать старый работающий код. Тем более, что не всегда есть возможность проверить изменения на всех версиях. Строго говоря, я считаю код совместимым, если корректно работают все мои примеры, поскольку они реализуют все типичные приёмы работы ZWWW: ZWWW_SAMPLE_INVOICE, ZWWW_MANY_LIST, ZWWW_ALV_GRID.
Насчёт обновления - я блюду обратную совместимость именно с той целью, чтобы не изменять старые отчёты. Все новые параметры ФМ создаются с признаком "необязательный" и имеют такие значения по умолчанию, чтобы работало как раньше без них. Но, разумеется, если кто-то изменял мой код или использовал "недокументированные" особенности, то накладки могут возникнуть. Но я ещё не встречал нерешаемых проблем.
Однако перед обновлением лучше положить все объекты разработки ZWWW в отдельный запрос и деблокировать его, чтобы иметь возможность быстро восстановить старую версию.
После обновления конечно желательно проверить старые отчёты.

Автор:  Aleksoid1978 [ Ср, сен 19 2018, 15:47 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Parazit написал:
Однако перед обновлением лучше положить все объекты разработки ZWWW в отдельный запрос и деблокировать его, чтобы иметь возможность быстро восстановить старую версию.


Ну тогда подскажи такой вопрос(в этом я еще не особо) - а можно ли сразу весь пакет ZWWW(ну со всеми потрахами) положить в запрос. А то объектов то не мало, запаришься по отдельности.

Автор:  Parazit [ Ср, сен 19 2018, 22:58 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Aleksoid1978 написал(а):
Parazit написал:
Однако перед обновлением лучше положить все объекты разработки ZWWW в отдельный запрос и деблокировать его, чтобы иметь возможность быстро восстановить старую версию.


Ну тогда подскажи такой вопрос(в этом я еще не особо) - а можно ли сразу весь пакет ZWWW(ну со всеми потрахами) положить в запрос. А то объектов то не мало, запаришься по отдельности.

Тр. SE03, "включение объектов в запрос на перенос".
Можно по имени пакета все входящие в него объекты добавить в запрос.

Автор:  Aleksoid1978 [ Сб, сен 22 2018, 09:16 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Спасибо большое за помощь. Обновил пакет - вроде бы все заработало.
Но есть одно но - выгрузка в Excel стала работать "по другому". Если на старой версии сразу открывался Excel файл с данными, то теперь этот файл помещается во входящую почту пользователя, при выходе из транзакции об этом сообщается и тогда можно открыть полученный Excel файл.

Вот как это выглядит:
Изображение
нажимаем часики:
Изображение
И только когда прогресс дойдет до конца откроется Excel с нужным файлом.

Если просто закрыть первое окно - то видим созданный документ во входящей почте.

P.S. пример с первой страницы Z_HELLO_WORLD работает как и положено.

Выгрузка в Excel вот таким кодом, к примеру:
Code:
  CALL FUNCTION 'ZWWW_OPENFORM'
    EXPORTING
      form_name   = 'ZPERESORT'
      printdialog = ''
      protect     = ''
      optimize    = 0
    TABLES
      it_values   = lt_values
    EXCEPTIONS
      printcancel = 1
      OTHERS      = 2.

Автор:  Parazit [ Сб, сен 22 2018, 11:35 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Aleksoid1978 написал(а):
Спасибо большое за помощь. Обновил пакет - вроде бы все заработало.
Но есть одно но - выгрузка в Excel стала работать "по другому". Если на старой версии сразу открывался Excel файл с данными, то теперь этот файл помещается во входящую почту пользователя, при выходе из транзакции об этом сообщается и тогда можно открыть полученный Excel файл.

Вот как это выглядит:
Изображение
нажимаем часики:
Изображение
И только когда прогресс дойдет до конца откроется Excel с нужным файлом.

Если просто закрыть первое окно - то видим созданный документ во входящей почте.

P.S. пример с первой страницы Z_HELLO_WORLD работает как и положено.

Выгрузка в Excel вот таким кодом, к примеру:
Code:
  CALL FUNCTION 'ZWWW_OPENFORM'
    EXPORTING
      form_name   = 'ZPERESORT'
      printdialog = ''
      protect     = ''
      optimize    = 0
    TABLES
      it_values   = lt_values
    EXCEPTIONS
      printcancel = 1
      OTHERS      = 2.

Такое должно происходить только при запуске модуля из фона, или принудительно указан параметр FILE_LOCATION='O' (Office)
Есть какая-то особенность у вашей задачи? Может она запускается через BATCH-INPUT или в UPDATE TASK ?

Автор:  Aleksoid1978 [ Сб, сен 22 2018, 12:11 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Да просто вручную запускаю транзакции(во всех так стала вести выгрузка).

Может подскажешь где кусок кода, который делает проверки и либо выгружает напрямую в файл либо в почту отправляет?
Посмотрю в отладчике что там к чему.

Автор:  Parazit [ Сб, сен 22 2018, 13:23 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Aleksoid1978 написал(а):
Да просто вручную запускаю транзакции(во всех так стала вести выгрузка).

Может подскажешь где кусок кода, который делает проверки и либо выгружает напрямую в файл либо в почту отправляет?
Посмотрю в отладчике что там к чему.

Мои примеры нормально работают или так же? Если нормально, значит в ваших транзакциях есть какая-то особенность. Есть глобальная переменная isBackGrnd , нужно смотреть когда она становится не пустой.

Автор:  Aleksoid1978 [ Сб, сен 22 2018, 13:38 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Отбой - ложная тревога. Перезапустил SAP GUI - теперь все работает как и положено.

Автор:  Parazit [ Сб, сен 22 2018, 14:50 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Parazit написал:
Aleksoid1978 написал(а):
Всем привет.
Есть пару вопросов к автору.

1) - в Form GetTempDir ты используешь FM 'WS_EXECUTE', а он уже не работает в SAP GUI 7.5, просто на этом вызове висит бесконечно. Ну как бы и считается устаревшим(не помню ноту) и вместо него лучше использовать CALL METHOD CL_GUI_FRONTEND_SERVICES=>EXECUTE.
2) - используется старенькая версия сабжа(не знаю как узнать точную версию, но год "внедрения" в САП - 2010 указан). Если не было никакого изменения - могу ли я безболезненно обновиться на последнюю 3.03 версия ? Почему спрашиваю - сравнил код, ну очень много отличий, боюсь как бы не поломалось после обновления.

О как! :shock:
Не слышал про проблемы под SAP GUI 7,5. Спасибо за инфу. Поставлю, проверю.
Вызов через WS_EXECUTE был написан давно. Поскольку я стараюсь соблюдать совместимость со старыми версиями SAP (поначалу даже было с 4.0), то стараюсь не трогать старый работающий код. Тем более, что не всегда есть возможность проверить изменения на всех версиях. Строго говоря, я считаю код совместимым, если корректно работают все мои примеры, поскольку они реализуют все типичные приёмы работы ZWWW: ZWWW_SAMPLE_INVOICE, ZWWW_MANY_LIST, ZWWW_ALV_GRID.
Насчёт обновления - я блюду обратную совместимость именно с той целью, чтобы не изменять старые отчёты. Все новые параметры ФМ создаются с признаком "необязательный" и имеют такие значения по умолчанию, чтобы работало как раньше без них. Но, разумеется, если кто-то изменял мой код или использовал "недокументированные" особенности, то накладки могут возникнуть. Но я ещё не встречал нерешаемых проблем.
Однако перед обновлением лучше положить все объекты разработки ZWWW в отдельный запрос и деблокировать его, чтобы иметь возможность быстро восстановить старую версию.
После обновления конечно желательно проверить старые отчёты.

Проверил SAP Logon 7.5. Проблема есть, но она не в том, что WS_EXECUTE устарел и не работает.
ФМ работает, как и раньше. Проблема в самом SAP Logon, точнее в настройках безопасности.
Если проваерки безопасности полностью отключить, то всё работает. Если наоборот, всё запретить, то получим адекватное сообщение. И только если "на основе правил", то происходит зависание.
Однако эта проблема легко обходится в данном случае. Подвисающий вызов в подпрограмме GetTempDir делался исключительно для очистки каталога временных файлов при первом запуске. Новые версии SAP Logon берут на себя эту функцию, поэтому её можно просто отключить. Для этого в таблицу ZWWW_PARAM_DEFLT нужно добавить настройку, где:
NAME = 'CLEAR_TEMP'
DATE_FROM = сегодняшнее число
VALUE = '' - пусто

Автор:  calm [ Ср, окт 10 2018, 15:29 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Добрый день, Валерий.

Скачал версию 3.03.
Всё как будто отлично ставится, активируется. Но при попытке переноса в журнале сообщения
Цитата:
Программа ZCL_ZWWW======================CU: ошибка синтаксиса в строке 000001
ABAP-оператор REPORT/PROGRAM отсутствует или типомпрограммы является Include
Программа ZCL_ZWWW======================CO: ошибка синтаксиса в строке 000003
ABAP-оператор REPORT/PROGRAM отсутствует или типомпрограммы является Include
Программа ZCL_ZWWW======================CI: ошибка синтаксиса в строке 000003
ABAP-оператор REPORT/PROGRAM отсутствует или типомпрограммы является Include

Указанные инклуды, если их глянуть в SE38, имеют типа "1 выполняемая программа", хотя ожидается "I - Include-программа".
В установочных файлах, насколько я их понял, всё верно.
Пробовали ставить дважды - оба раза с такойо ошибкой.

SAP_ABA 750, 11 уровень.

Пока непонятно, как побороть проблему, т.к. тип программы так просто не изменить.
И откуда это взялось.

Автор:  Parazit [ Чт, окт 11 2018, 09:50 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

calm написал(а):
Добрый день, Валерий.

Скачал версию 3.03.
Всё как будто отлично ставится, активируется. Но при попытке переноса в журнале сообщения
Цитата:
Программа ZCL_ZWWW======================CU: ошибка синтаксиса в строке 000001
ABAP-оператор REPORT/PROGRAM отсутствует или типомпрограммы является Include
Программа ZCL_ZWWW======================CO: ошибка синтаксиса в строке 000003
ABAP-оператор REPORT/PROGRAM отсутствует или типомпрограммы является Include
Программа ZCL_ZWWW======================CI: ошибка синтаксиса в строке 000003
ABAP-оператор REPORT/PROGRAM отсутствует или типомпрограммы является Include

Указанные инклуды, если их глянуть в SE38, имеют типа "1 выполняемая программа", хотя ожидается "I - Include-программа".
В установочных файлах, насколько я их понял, всё верно.
Пробовали ставить дважды - оба раза с такойо ошибкой.

SAP_ABA 750, 11 уровень.

Пока непонятно, как побороть проблему, т.к. тип программы так просто не изменить.
И откуда это взялось.

Попробуйте использовать самую последнюю версию ZWWW_MIGRATE отсюда https://sites.google.com/site/vvnabap/fajly/ywww

Автор:  Sam Stone [ Вт, окт 16 2018, 13:03 ]
Заголовок сообщения:  Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL

Добрый день :)

Есть макрос в экселе, именованная область для него на листе.
Делаю так:
Code:
append #( var_name = 'Область' value = '10' ) TO zwww_values.
append #( var_name = 'Область' val_type = 'M' value = 'Макрос' ) TO zwww_values.
append #( var_name = 'Область' value = '20' ) TO zwww_values.
append #( var_name = 'Область' val_type = 'M' value = 'Макрос' ) TO zwww_values.

При втором вызове макроса значение в 'Область' всё равно 10. Почему? Или нельзя несколько раз подряд в одно место записывать данные?

Страница 147 из 161 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/