Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Декабрь 18, 2017, 07:45:24 pm

Автор Тема: Проверка папки на наличие файлов (Qlikview, Qlik Sense)  (Прочитано 3358 раз)

Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Добрый день форумчане!
Есть такая необходимость, проверить папку на наличие в ней файлов для загрузки, если есть файлы выполнить основной скрипт, если нет файлов то просто загрузить старые данные.
Вопрос заключается в том что как проверить папку на наличие файлов?

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов
« Ответ #1 : Март 19, 2016, 10:08:50 pm »
Привет.
Для проверки на наличие файла используйте комбинацию функций len() и filesize().

SET vFileExists = if(len(FileSize($1)) > 0, 1, 0);

Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов
« Ответ #2 : Март 19, 2016, 10:52:22 pm »
Привет!
Не могу понять как указать папку для проверки.
И оператор нужно использовать Let, а не Set или я не прав?

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Проверка папки на наличие файлов
« Ответ #2 : Март 19, 2016, 10:52:22 pm »

Оффлайн kvv

  • Гуру
  • ***
  • Сообщений: 135
  • Страна: 00
  • Рейтинг: +36/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов
« Ответ #3 : Март 21, 2016, 01:07:37 pm »
Привет!
Не могу понять как указать папку для проверки.
И оператор нужно использовать Let, а не Set или я не прав?

Привет.
Можно вот так:
Directory D:\QlikView\EachFiles;

Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов
« Ответ #4 : Март 21, 2016, 07:09:00 pm »
Привет.
пробую так
//Директория хранения файлов
DIRECTORY d:\...\В Qlik\;

//Проверяем папку
LET vFileExists = if(len(FileSize($1))>0, 1, 0);

//Действие

if vFileExists=0 then
load
*
From D:\...\*.qvd (qvd);
exit script;
end if

В результате значение переменной всегда = 0


Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов
« Ответ #5 : Март 21, 2016, 07:11:49 pm »
Привет, сделайте проще
if len(filesize('путь'))>0 then
...
endif

Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов
« Ответ #6 : Март 21, 2016, 09:25:03 pm »
Спасибо всем за помощь!
Сделал так:
Set a = 'd:\...\В Qlik\*.xml';

LET vFileSize = FileSize(a);
if vFileSize=0 or IsNull(vFileSize) then
load
*
From ...\*.qvd (qvd);
exit script;
end if

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Проверка папки на наличие файлов
« Ответ #6 : Март 21, 2016, 09:25:03 pm »

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов
« Ответ #7 : Сентябрь 21, 2016, 01:29:47 pm »
если приходится некоторые qvd занулять, чтобы места они не занимали. есть возможность удалять файлы из скрипта?

Оффлайн kvv

  • Гуру
  • ***
  • Сообщений: 135
  • Страна: 00
  • Рейтинг: +36/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов (Qlikview)
« Ответ #8 : Сентябрь 21, 2016, 01:49:34 pm »
Привет.
Есть такая возможность.
1. Можно сделать таблицу с одной строки:
Data:
LOAD * Inline [
ERASE, 1
];
И данную таблицу выгрузить с тем названием, qvd-файл который нужно затереть:
STORE * From Data into last.qvd (qvd);В результате создаться qvd-файл с маленьким размером.

2. Второй вариант:
EXECUTE cmd.exe /c del "last.qvd";

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов (Qlikview)
« Ответ #9 : Сентябрь 21, 2016, 02:11:19 pm »
Благодарю!

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов (Qlikview)
« Ответ #10 : Сентябрь 25, 2016, 07:42:03 pm »
2. Второй вариант:
EXECUTE cmd.exe /c del "last.qvd";

Сейчас решил прописать код по удалению файлов - в итоге идет ошибка:
EXECUTE statement not available in this script mode: [код]
Какие нюансы? использую QS.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов (Qlikview)
« Ответ #11 : Сентябрь 25, 2016, 08:41:16 pm »
Привет.
В стандартном режиме скрипта Qlik Sense ( и Desktop в том числе) этот оператор не поддерживается.
Подробнее здесь.
Тоже предстоит столкнуться с подобной задачей. Планирую выгружать в csv перечень файлов для удаления, и обрабатывать этот перечень уже на сервере.

Оффлайн kvv

  • Гуру
  • ***
  • Сообщений: 135
  • Страна: 00
  • Рейтинг: +36/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов (Qlikview)
« Ответ #12 : Сентябрь 26, 2016, 01:42:12 pm »
2. Второй вариант:
EXECUTE cmd.exe /c del "last.qvd";

Сейчас решил прописать код по удалению файлов - в итоге идет ошибка:
EXECUTE statement not available in this script mode: [код]
Какие нюансы? использую QS.

Привет.
Да, есть нюанс в QlikView. С Qliksense, к сожалению, не работаю.
Смотреть прикрепленный файл 02.png

Оффлайн millik

  • Наставник
  • **
  • Сообщений: 55
  • Страна: by
  • Рейтинг: +22/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов (Qlikview)
« Ответ #13 : Сентябрь 27, 2016, 10:08:41 pm »
Привет.
В стандартном режиме скрипта Qlik Sense ( и Desktop в том числе) этот оператор не поддерживается.
Подробнее здесь.
Тоже предстоит столкнуться с подобной задачей. Планирую выгружать в csv перечень файлов для удаления, и обрабатывать этот перечень уже на сервере.


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

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Re: Проверка папки на наличие файлов (Qlikview, Qlik Sense)
« Ответ #14 : Октябрь 08, 2016, 02:36:48 am »
Каким образом отключить стандартный режим?