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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Библиотека решений Qlikview и Qlik Sense => Тема начата: admin от 18 марта 2015, 03:20:36

Название: Сбор сведений по файловой системе
Отправлено: admin от 18 марта 2015, 03:20:36
Выкладываю очень простой скрипт (за основу взят пример из документации (http://help.qlik.com/sense/ru-RU/online/#../Subsystems/Hub/Content/Scripting/ScriptControlStatements/ForEach.htm%3FTocPath%3D%25D0%25A0%25D0%25B0%25D0%25B1%25D0%25BE%25D1%2582%25D0%25B0%2520%25D1%2581%2520Qlik%2520Sense%7C%25D0%25A1%25D0%25B8%25D0%25BD%25D1%2582%25D0%25B0%25D0%25BA%25D1%2581%25D0%25B8%25D1%2581%2520%25D1%2581%25D0%25BA%25D1%2580%25D0%25B8%25D0%25BF%25D1%2582%25D0%25B0%2520%25D0%25B8%2520%25D1%2584%25D1%2583%25D0%25BD%25D0%25BA%25D1%2586%25D0%25B8%25D0%25B8%2520%25D0%25B4%25D0%25B8%25D0%25B0%25D0%25B3%25D1%2580%25D0%25B0%25D0%25BC%25D0%25BC%25D1%258B%7C%25D0%25A1%25D0%25B8%25D0%25BD%25D1%2582%25D0%25B0%25D0%25BA%25D1%2581%25D0%25B8%25D1%2581%2520%25D1%2581%25D0%25BA%25D1%2580%25D0%25B8%25D0%25BF%25D1%2582%25D0%25B0%7C%25D0%259E%25D0%25BF%25D0%25B5%25D1%2580%25D0%25B0%25D1%2582%25D0%25BE%25D1%2580%25D1%258B%2520%25D0%25B8%2520%25D0%25BA%25D0%25BB%25D1%258E%25D1%2587%25D0%25B5%25D0%25B2%25D1%258B%25D0%25B5%2520%25D1%2581%25D0%25BB%25D0%25BE%25D0%25B2%25D0%25B0%2520%25D1%2581%25D0%25BA%25D1%2580%25D0%25B8%25D0%25BF%25D1%2582%25D0%25B0%7C%25D0%259E%25D0%25BF%25D0%25B5%25D1%2580%25D0%25B0%25D1%2582%25D0%25BE%25D1%2580%25D1%258B%2520%25D1%2583%25D0%25BF%25D1%2580%25D0%25B0%25D0%25B2%25D0%25BB%25D0%25B5%25D0%25BD%25D0%25B8%25D1%258F%2520%25D1%2581%25D0%25BA%25D1%2580%25D0%25B8%25D0%25BF%25D1%2582%25D0%25BE%25D0%25BC%7C_____5) Sense), сканирующий структуру папок с архивными файлами (в данном случае) .
Будет полезно сисадминам или лицам, их замещающих, а также тем кто работает без упомянутых специалистов.
Скрипт собирает информацию обо всех файлах в папке (включая входящие в нее) указанной в переменной vPathArc.

sub DoArc(Root)
  FOR Each File in filelist (Root&'\*.*')
arcfiles_tmp:
  LOAD '$(File)' as FileName,
    FileSize('$(File)') as FileSize,
FileTime('$(File)') as FileTime
autogenerate 1;
  NEXT File

  For each Dir in Dirlist(Root&'\*')
    Call DoArc(Dir)
  Next Dir
ENDSUB

call DoArc('$(vPathArc)')

arcfiles:
NoConcatenate
LOAD *,
mid(left(FileName,Index(FileName,' ')),1+index(left(FileName,Index(FileName,' ')),'\',-1)) as ArcJob
resident arcfiles_tmp;
DROP Table arcfiles_tmp;
STORE * from arcfiles into arc_files.qvd (qvd);
DROP Table arcfiles;

ArcJob - имя задания ( в примере оно вырезается из имени файла, например из имени "Doc_Full 20150318 22;00.zip" будет извлечено Doc_Full.
С объектами визуализации все просто, взять хотя бы блочную диаграмму с измерением ArcJob  и выражением sum(FileSize)...