Привет, дорогие пользователи Qlik!
Сегодня расскажу вам, как использовать Bat-файл для автоматизации запуска QlikView-приложений и поделюсь с вами рабочим примером для перезагрузки данных в QVD-файлах.
Автоматизация запуска QlikView-приложений: инструкция по применению
- Запуск QlikView из командной строки осуществляется с помощью следующего синтаксиса:
1 | [path]Qv.exe /parameter [app path]application.qvw |
, где:
[path] — это путь к исполняемому файлу QlikView.
[app path] – путь к приложению QlikView, которое нужно перезапустить.
Параметры (parameter):
- /r
Ключ перезагрузки. Выполняется открытие документа и перезагрузка скрипта. Затем документ можно сохранить, при этом QlikView закроется. - /rp
То же, что и выше, но с выполнением частичной перезагрузки. - /l
Загрузка новых данных. Выполняется открытие документа и перезагрузка скрипта. Документ не сохраняется и QlikView остается в открытом состоянии. - /lp
То же, что и выше, но с выполнением частичной перезагрузки. - /v
Если за этим переключателем следует имя переменной и оператор назначения, то переменная получит назначенное значение до начала выполнения скрипта. - /nodata
Открывает документ без переменных, таблиц или данных полей. Эта функция также доступна для открытых документов. - /NoSecurity
Переопределяет меры защиты QlikView от вредных макросов и скриптов, встроенных в документ QlikView. После этого сообщения о потенциально вредоносном содержимом больше не будут выводиться. Используйте этот переключатель с осторожностью и только при работе с хорошо знакомыми документами.
BAT-файл для перезагрузки данных в QVD-файлы: Пример
Теперь предлагаю посмотреть, как все это работает на живом примере.
Код вызова приложения QlikView, которое генерирует QVD-файлы:
1 | «C:\Program Files\QlikView\qv.exe» /R «C:\QlikView_Projects\1.Application\1.QVD-Generator\1.LOAD_MASTER_DATA.qvw» |
НА ЗАМЕТКУ! Для дальнейшей автоматизации можно использовать Планировщик задач на сервере Windows.
Создаем новую задачу:
Заполняем каждую вкладку.
На вкладке “Действия” выбираем наш bat-файл:
Как запустить параллельно 2 модели QlikView
- Создаем первый батник “1.Run LOAD_MASTER_DATA.bat”:
1 | «C:\Program Files\QlikView\qv.exe» /R «C:\QlikView_Projects\Parallel\1.Application\1.QVD-Generator\1.LOAD_MASTER_DATA.qvw» |
- Создаем второй батник “2.Run LOAD_MASTER_DATA.bat”:
1 | «C:\Program Files\QlikView\qv.exe» /R «C:\QlikView_Projects\Parallel\1.Application\1.QVD-Generator\2.LOAD_MASTER_DATA.qvw» |
- Создаем батник “AllBatch.bat”, который будет запускать параллельно два батника:
12 | start cmd.exe /C «1.Run LOAD_MASTER_DATA.bat»start cmd.exe /C «2.Run LOAD_MASTER_DATA.bat» |
Теперь при запуске батника “AllBatch.bat” будут выполняться в параллельном режиме 2 сценария выгрузки данных (они должны быть независимыми):
Вот на этом сегодня все! Пишите комментарии, делитесь своими идеями по автоматизации работы приложений!
Поделюсь своим опытом использования Bat-файлов на крупном проекте QlikView.
Задача: ежедневно (вернее «еженощно») останавливать и вновь стартовать службы QlikView Server на серверах.
Цель: освобождение RAM от кэша QVS. Все равно на следующий день он устаревает — ведь приложения обновляются новыми данными, и вчерашние результаты выборок и вычислений практически 100% не будут востребованы (подробнее про кэш можно почитать в этой статье Henric Cronstrom: https://community.qlik.com/blogs/qlikviewdesignblog/2014/04/14/the-qlikview-cache ). Такая превентивная очистка RAM позволяет держать расходование памяти «в узде», не дожидаясь пока оно уйдет за Working Set Low и QVS сам начнет тратить на нее ресурсы в самом разгаре продуктивной нагрузки.
Решение: комбинация «Bat-файл» и регулярная задача на Windows Task Scheduler. Текст Bat-файла:
@echo off
echo Stop QlikView Server service
echo ======================================================
net stop «QlikView Server»
echo ======================================================
echo QlikView Server service have been stopped …
echo Start QlikView Server service
echo ======================================================
net start «QlikView Server»
echo ======================================================
echo QlikView Server service have been started …
В Task Scheduler создается задача с триггером на ежедневный запуск в ночные часы, в действиях — прописывается путь к указанному Bat, и в принципе все.
Единственное, опыт показал, что желательно делать некоторую паузу между остановкой и повторным запуском службы (иначе может не запуститься). Я поставил 10 минут.
Добавлю еще 5 копеек. Здорово результаты работы батничка логировать. Можно замутить что-нибудь на PowerShell, а можно и по кондовому:
SET QV=C:UsersqvDocuments
ECHO Start %USERNAME% %USERPROFILE% >> %QV%reload.bat.log
DATE /T >> %QV%reload.bat.log
TIME /T >> %QV%reload.bat.log
ECHO blablabla >> %QV%reload.bat.log
«%ProgramFiles%QlikViewqv.exe» -r «%QV%blablabla.qvw»
DATE /T >> %QV%reload.bat.log
TIME /T >> %QV%reload.bat.log
ECHO Finish >> %QV%reload.bat.log
Спасибо за инфо!