Автоматическая загрузка данных по расписанию

Автор orcdunaev, 05 марта 2017, 09:26:19

« назад - далее »

suboral

Аналогичный вопрос по Qlik Sense.
Каждый месяц формирую отчет из 1с(в теории можно его сразу выгружать в директорию).
В отчете меняется только имя файла и сами данные, формат один и тот же(номер строки заголовка, расположение колонок, название заголовков).
Каким способом можно сделать, чтобы Qlik мог сам(автоматически или полуавтоматически) брать файл из директории, загружать из него данные отдельной таблицей, и создать по этой таблице два новый приложения(которые тоже одинаковые, меняются только данные).
Пример, есть отчет по продажам за Август, я его загружаю в Qlik как таблицу, копирую приложение прошлого месяца(Июля), и везде меняю значения с Июля на Август, т.е. с Count ({<[Июль.Просрочка] = {"<0"}>} [Июль.Просрочка]) на Count ({<[Август.Просрочка] = {"<0"}>} [Август.Просрочка]).

Скорее всего какой-то скрипт, можете дать пример, который я уже под себя допилю или ткните точно куда смотреть.

Спасибо!

admin

Привет.
Непонятно зачем делать новые приложения.
В принципе, загрузку данных и формирование qvd можно делать и из QlikView.

Что касается дублирования приложений и их обновление автоматом в Qlik Sense....
Ну, как бы можно использовать внешние скрипты .qvs. Скриптами на Power Shell делать дубли, в которых будет подтягиваться внешний скрипт/скрипты.
Но к чему этот "зоопарк" из технологий? Не проще купить?

suboral

Привет.
Приложение то одно и тоже, меняются только данные, поэтому я беру приложение за Июль и меняю в нем обращение к таблицам(уже не к Июлю, а к Августу).
QlikView не пользовался, как то начал в Sense и пока там остался.
т.е. хотите сказать в View это можно все сделать стандартными способами, "кнопками"?
А что купить вы предлагаете?
p.s. сейчас качаю Qlikview покапаюсь там, посмотрю, что умеет.

admin

Теперь более менее понятно.
Вариантов может быть несколько.
Самый простой: по дате формировать имя файла для загрузки, с предварительной проверкой на его существование.  В этом случае загрузка не произойдет пока файл с необходимым именем не появится.
В итоге, в скрипт не заходим, просто жмем кнопку обновить и все.

suboral

Но так можно только в View штатной функцией, в Sense такого нет?
View только что установил, боюсь долго буду ковырять, хоть примерно куда лезть, чтобы сделать: "по дате формировать имя файла для загрузки, с предварительной проверкой на его существование"
И после этого мы только загрузим данные за новый месяц, а приложение такое же только с заменой данных новым месяцем?

Hugo

Думаю самое простое - заменять файл-источник на новый. Т.е. не менять его имя, менять содержимое.
В таком варианте просто обновляете данные и всё, кстати для Сенса есть Extension с такой кнопкой.
Но если нужно - можно и в скрипте формировать имя, ну или вообще грузить всё и отбирать нужное фильтрами (если данных не уж так много, что сразу всё не взять).

suboral

Очень хочется понять как все это реализовать, то что вы пишите, но не пойму как.
Т.е. я понимаю идею, а вот куда конкретно тыкнуть не ясно.
Extension - в смысле какое-то расширение?

Hugo

#22
Есть расширение Reload Button - ну это если нужна такая кнопка.
Ну а июль-август и т.д. - может просто менять в скрипте это поле на нейтральное название? Тогда в функциях ничего менять не нужно.
Ну или переписать на использование переменной, которую задавать кодом загрузки.

suboral

Ну с переименовыванием справлюсь, да и загрузка тоже не главная проблема, хотя в концепции автоматизации без нее никуда.
Изначально моя проблема состояла из двух задач:
1. Автоматическая загрузка данных - это буду сейчас пробовать по вашему совету через Reload Button
2. Или создание новых приложений по заданному шаблону с использованием загруженных данных из первого пункта, или дублирование уже созданных шаблонов с заменой старых данных, на новые из загруженных из первого пункта. Конечно правильнее создать по шаблону с новыми данными, а то замена это какие-то костыли.

suboral

Кнопку reload поставил. Теперь вопрос, т.к. у меня в одной базе данных много приложений, которые различаются данными по месяцам, т.е. приложение одинаковые, в них разные только данные, reload тут не поможет, но его можно как-то использовать, пока не пойму как, но это все равно вторично, первично, это дублировать приложение, возможно именно в какому-то скрипте дублирования приложения, можно и менять источник данных на новый файл.

Hugo

Не понятно зачем нужно дублировать приложение? Почему в одно приложение не загружать только нужные данные, если не хотите всегда грузить всё и отбирать фильтрами?
Действително как говорили выше - можно формировать имя загружаемого файла по выбранной дате, и этими данными заменять текущие.
Выбрали дату, нажали Reload Button - если нужный файл в нужном месте есть, то он загрузится.

admin

На самом деле, почему разные приложения для разных периодов? Много данных? Нехватка ресурсов?

suboral

Для каждого периода собственное приложение, для сравнения по месяцам.
И пока это писал, кажется понял, почему вы недоумеваете. Если у меня сейчас 1 приложение = 1 месяц, то лучше будет 1 приложение = несколько месяцев, а уже внутри приложения фильтровать по месяцам и я смогу смотреть каждый месяц по отдельности или даже квартально, если выберу сразу 3 месяца, верно понял идею?

Hugo

Загружаете все данные - можно перебирая все существующие файлы каталога.
Если в данных есть реальные даты, то на лист ставите фильтр (я использую Climber Selection Bar) по годам/квараталам/месяцам/неделям/дням ну или как угодно. Для этого нужно в скрипте создать таблицу с этими полями.
Связь с данными по дате.
Далее при выборе периода будете в визуализациях видеть только этот период событий.
Образать лишнее можно или корректируя список/наличие файлов, или корректируя создание календаря.

admin

Цитата: suboral от 10 октября  2018, 11:19:00  
Для каждого периода собственное приложение, для сравнения по месяцам.
И пока это писал, кажется понял, почему вы недоумеваете. Если у меня сейчас 1 приложение = 1 месяц, то лучше будет 1 приложение = несколько месяцев, а уже внутри приложения фильтровать по месяцам и я смогу смотреть каждый месяц по отдельности или даже квартально, если выберу сразу 3 месяца, верно понял идею?
Именно так.

Яндекс.Метрика