Здравствуйте!
Подскажите, пожалуйста, как сделать, чтобы документ сам загружал данные по расписанию или с какой-то периодичностью.
Догадываюсь, что копать надо в сторону скриптов, но описании объектной модели не нашел никаких методов связанных с загрузкой.
Привет, о какой программе идет речь?
QlikView 11.20 для Windows Personal edition.
Автоматическую загрузку хочется делать не только для десктопного приложения, но и для просмотра в браузере.
Автоматическое обновление данных доступно только в серверных решениях.
Привет.
Например, можно использовать виндовый шеддулер.
В bat-файл пишем следующее:
Цитировать"C:\Program Files\QlikView11\Qv.exe" /r "C:\Projects\QlikView\Load.qvw"
И bat-файл запускаем по шеддулеру.
Цитата: kvv от 06 марта 2017, 03:20:52
Привет.
Например, можно использовать виндовый шеддулер.
В bat-файл пишем следующее:
Цитировать"C:\Program Files\QlikView11\Qv.exe" /r "C:\Projects\QlikView\Load.qvw"
И bat-файл запускаем по шеддулеру.
Ну так конечно тоже вариант. =)
И еще какой Вариант! :)
Qvd-файлы сформированные Qlikview 12.10 прекрасно открываются в Qlik Sense... ;)
Товарищи, спасибо за ответы. Но я в клике новичок, мне надо разжевывать.)
С бат-файлом не прокатит. Это мне на каждый комп, где будут смотреть аналитику, надо будет ставить бат-файлы.
Цитата: millik от 06 марта 2017, 02:43:31
Автоматическое обновление данных доступно только в серверных решениях.
Millik, что означает "в серверных решениях"?
Вот у меня есть комп, на нем установленный сервер Qlik.
Вижу какие-то сэмплы по адресу: http://localhost/qlikview/index.htm (http://localhost/qlikview/index.htm)
Т.е. автозагрузка данных по расписанию возможна, если мое приложение опубликовано с помощью Qlik Access Point, как эти сэмплы?
А где это настраивается?
Зачем на каждом ?
Сделайте один комп главным, псевдо-сервером. На нем запускайте сценарий обновления данных.
Папку с файлами qvd расшарьте по сети, и коллегам в приложениях пропишите путь на вашу папку.
В итоге, один комп будет обновлять данные и складывать их по папкам, а станции будут обращаться к этой папке и забирать необходимую информацию.
Только откуда у вас сэмплы если версия десктопная? ;)
P.S. Все-таки серверная версия. Тогда все настройки через консоль.
Цитата: admin от 06 марта 2017, 08:20:29
Зачем на каждом ?
Сделайте один комп главным, псевдо-сервером. На нем запускайте сценарий обновления данных.
Папку с файлами qvd расшарьте по сети, и коллегам в приложениях пропишите путь на вашу папку.
В итоге, один комп будет обновлять данные и складывать их по папкам, а станции будут обращаться к этой папке и забирать необходимую информацию.
Только откуда у вас сэмплы если версия десктопная? ;)
P.S. Все-таки серверная версия. Тогда все настройки через консоль.
А, вот как... Да, тогда это вариант.
А где в серверной версии настраивается?
Зашел в консоль сервера, вижу в свойствах документов на вкладке Perfomance поле Timeout (minutes). Поставил туда 1, открыл документ, но не вижу, чтобы он обновлял данные.
Это то самое?
И еще момент. Если рассматривать вариант с батником.
Поправьте, если я где-то не прав. Алгоритм получается такой:
1) Есть скрипт qlik, который сохраняет полученные данные в qvd.
2) Есть батник, который выполняется по расписанию и запуском скрипта обновляет файл qvd.
3) пользователь открывает приложение qlik, оно тянет данные из обновленного qvd.
Но если у пользователя открыто приложение qlik, оно же автоматически не обновит свои данные из обновившегося qvd? Пользователю все равно придется тыкнуть мышкой, чтобы инициировать повторную загрузку?
Пригласите к себе специалиста по Qlikview для проведения обучения и первоначальной настройки.
Так будет намного эффективнее чем самим изучать руководство (http://help.qlik.com/en-US/qlikview/12.0/Subsystems/QMC/Content/Administering.htm).
Цитата: admin от 07 марта 2017, 07:02:41
Пригласите к себе специалиста по Qlikview для проведения обучения и первоначальной настройки.
Так будет намного эффективнее чем самим изучать руководство (http://help.qlik.com/en-US/qlikview/12.0/Subsystems/QMC/Content/Administering.htm).
Проблема в том, что специалист - это я.) Другого не будет.)
Поэтому был бы все же благодарен форумчанам за подсказки по конкретным вопросам.
Руководство тоже осилю, но далеко не сразу... А по конкретным моментам желательно что-то сделать уже сейчас.
Привет.
Вкратце, суть сервера в том, чтобы используя свои процессоры и свою память - раскрывать ваши приложения, производить вычисления и работать с данными исключительно на ресурсах сервера.
А пользователю формировать окна с визуализацией.
В случае с батником и общей папкой, который я описывал, используются настольные версии.
Т.е. у каждого пользователя, как только он открывает приложение или запускает его обновление происходят все те же процессы как и на сервере, с использованием ресурсов пользовательской станции. При этом, если ресурсов мало а данных много велика вероятность того, что работать с таким приложением на такой станции будет крайне трудно. В случае с использованием серверного решения, такой проблемы не будет.
Qlikview-сервер, по сути тот же настольный Qlikview, плюс Веб сервер с оболочкой администрирования, в которой есть сервис запуска заданий (Tasks) по расписанию. На одно приложение должно быть как минимум одно задание, если мы хотим его регулярно обновлять.
Спасибо за развернутый ответ.
Буду пробовать задания на веб-сервере.
Аналогичный вопрос по Qlik Sense.
Каждый месяц формирую отчет из 1с(в теории можно его сразу выгружать в директорию).
В отчете меняется только имя файла и сами данные, формат один и тот же(номер строки заголовка, расположение колонок, название заголовков).
Каким способом можно сделать, чтобы Qlik мог сам(автоматически или полуавтоматически) брать файл из директории, загружать из него данные отдельной таблицей, и создать по этой таблице два новый приложения(которые тоже одинаковые, меняются только данные).
Пример, есть отчет по продажам за Август, я его загружаю в Qlik как таблицу, копирую приложение прошлого месяца(Июля), и везде меняю значения с Июля на Август, т.е. с Count ({<[Июль.Просрочка] = {"<0"}>} [Июль.Просрочка]) на Count ({<[Август.Просрочка] = {"<0"}>} [Август.Просрочка]).
Скорее всего какой-то скрипт, можете дать пример, который я уже под себя допилю или ткните точно куда смотреть.
Спасибо!
Привет.
Непонятно зачем делать новые приложения.
В принципе, загрузку данных и формирование qvd можно делать и из QlikView.
Что касается дублирования приложений и их обновление автоматом в Qlik Sense....
Ну, как бы можно использовать внешние скрипты .qvs. Скриптами на Power Shell делать дубли, в которых будет подтягиваться внешний скрипт/скрипты.
Но к чему этот "зоопарк" из технологий? Не проще купить?
Привет.
Приложение то одно и тоже, меняются только данные, поэтому я беру приложение за Июль и меняю в нем обращение к таблицам(уже не к Июлю, а к Августу).
QlikView не пользовался, как то начал в Sense и пока там остался.
т.е. хотите сказать в View это можно все сделать стандартными способами, "кнопками"?
А что купить вы предлагаете?
p.s. сейчас качаю Qlikview покапаюсь там, посмотрю, что умеет.
Теперь более менее понятно.
Вариантов может быть несколько.
Самый простой: по дате формировать имя файла для загрузки, с предварительной проверкой на его существование. В этом случае загрузка не произойдет пока файл с необходимым именем не появится.
В итоге, в скрипт не заходим, просто жмем кнопку обновить и все.
Но так можно только в View штатной функцией, в Sense такого нет?
View только что установил, боюсь долго буду ковырять, хоть примерно куда лезть, чтобы сделать: "по дате формировать имя файла для загрузки, с предварительной проверкой на его существование"
И после этого мы только загрузим данные за новый месяц, а приложение такое же только с заменой данных новым месяцем?
Думаю самое простое - заменять файл-источник на новый. Т.е. не менять его имя, менять содержимое.
В таком варианте просто обновляете данные и всё, кстати для Сенса есть Extension с такой кнопкой.
Но если нужно - можно и в скрипте формировать имя, ну или вообще грузить всё и отбирать нужное фильтрами (если данных не уж так много, что сразу всё не взять).
Очень хочется понять как все это реализовать, то что вы пишите, но не пойму как.
Т.е. я понимаю идею, а вот куда конкретно тыкнуть не ясно.
Extension - в смысле какое-то расширение?
Есть расширение Reload Button - ну это если нужна такая кнопка.
Ну а июль-август и т.д. - может просто менять в скрипте это поле на нейтральное название? Тогда в функциях ничего менять не нужно.
Ну или переписать на использование переменной, которую задавать кодом загрузки.
Ну с переименовыванием справлюсь, да и загрузка тоже не главная проблема, хотя в концепции автоматизации без нее никуда.
Изначально моя проблема состояла из двух задач:
1. Автоматическая загрузка данных - это буду сейчас пробовать по вашему совету через Reload Button
2. Или создание новых приложений по заданному шаблону с использованием загруженных данных из первого пункта, или дублирование уже созданных шаблонов с заменой старых данных, на новые из загруженных из первого пункта. Конечно правильнее создать по шаблону с новыми данными, а то замена это какие-то костыли.
Кнопку reload поставил. Теперь вопрос, т.к. у меня в одной базе данных много приложений, которые различаются данными по месяцам, т.е. приложение одинаковые, в них разные только данные, reload тут не поможет, но его можно как-то использовать, пока не пойму как, но это все равно вторично, первично, это дублировать приложение, возможно именно в какому-то скрипте дублирования приложения, можно и менять источник данных на новый файл.
Не понятно зачем нужно дублировать приложение? Почему в одно приложение не загружать только нужные данные, если не хотите всегда грузить всё и отбирать фильтрами?
Действително как говорили выше - можно формировать имя загружаемого файла по выбранной дате, и этими данными заменять текущие.
Выбрали дату, нажали Reload Button - если нужный файл в нужном месте есть, то он загрузится.
На самом деле, почему разные приложения для разных периодов? Много данных? Нехватка ресурсов?
Для каждого периода собственное приложение, для сравнения по месяцам.
И пока это писал, кажется понял, почему вы недоумеваете. Если у меня сейчас 1 приложение = 1 месяц, то лучше будет 1 приложение = несколько месяцев, а уже внутри приложения фильтровать по месяцам и я смогу смотреть каждый месяц по отдельности или даже квартально, если выберу сразу 3 месяца, верно понял идею?
Загружаете все данные - можно перебирая все существующие файлы каталога.
Если в данных есть реальные даты, то на лист ставите фильтр (я использую Climber Selection Bar) по годам/квараталам/месяцам/неделям/дням ну или как угодно. Для этого нужно в скрипте создать таблицу с этими полями.
Связь с данными по дате.
Далее при выборе периода будете в визуализациях видеть только этот период событий.
Образать лишнее можно или корректируя список/наличие файлов, или корректируя создание календаря.
Цитата: suboral от 10 октября 2018, 11:19:00
Для каждого периода собственное приложение, для сравнения по месяцам.
И пока это писал, кажется понял, почему вы недоумеваете. Если у меня сейчас 1 приложение = 1 месяц, то лучше будет 1 приложение = несколько месяцев, а уже внутри приложения фильтровать по месяцам и я смогу смотреть каждый месяц по отдельности или даже квартально, если выберу сразу 3 месяца, верно понял идею?
Именно так.
Спасибо, это упрощает мне работу)
Дальше буду думать об выгрузке этого отчета из 1с, на какой-нибудь сервер вроде ftp и автоматическую загрузку в qlik, и может Reload Button чтобы работал по расписанию.
Цитата: suboral от 10 октября 2018, 03:05:23
Спасибо, это упрощает мне работу)
Дальше буду думать об выгрузке этого отчета из 1с, на какой-нибудь сервер вроде ftp и автоматическую загрузку в qlik, и может Reload Button чтобы работал по расписанию.
База 1с на SQL ?
Этого не знаю, у меня к ней доступа. В этом проще, поставлю задачу ИТ отделу, они уже сделаю мне выгрузку.
Ну если есть ИТ, значит SQL.
Будет проще, если они пропишут источники данных, которые нужны.
И им работы меньше по выгрузке .