NPrinting API – подпрограммы Qlik Rest
Всем привет!
Это будет небольшой пост, но я потратил довольно много сил и времени на его подготовку. В нем будет представлен API Qlik NPrinting, уже хорошо описанный здесь с помощью метода Джанлуки с использованием коннектора Qlik RESTfull для отправки запросов к API NPrinting из QlikView или скрипта Qlik Sense. Пожалуйста, прочтите этот документ, а также просмотрите его посты и вопросы пользователей, чтобы устранить проблемы с подключением, аутентификацией и т. д.
Итак, я потратил несколько недель, пытаясь разобраться в методах API NPrinting и поместить как можно больше из них в подпрограммы скрипта Qlik. К этому приложению прилагается файл NPrinting.qvs, в котором вы найдете готовые к использованию подпрограммы.
В этом файле QVS есть 3 раздела:
- SETUP & SETTINGS – это раздел конфигурации, который необходимо настроить, чтобы все работало как следует. В разделе настройки я предоставил конфигурации GET и POST RESTfull коннекторов. В разделе НАСТРОЙКИ используются переменные для настройки имен хостов Qlik Sense/QlikView, Qlik NPrinting, подключений библиотеки/пути и т. д.
- Раздел TASK включает отдельные методы
- Раздел JOB содержит образцы, которые вы можете легко создать с помощью процедур из TASKS.
Я использую Visual Studio Code в качестве редактора, который позволяет мне красиво сворачивать разделы каждого метода и получить полный обзор скрипта.
Давайте посмотрим, как мы можем его использовать.
Нам нужно загрузить файл NPrinting.qvs с помощью функции Include (я всегда использую Must_Include, чтобы не пропустить какой-либо код). Это позволит нам вызвать все подпрограммы. В разделе JOB я создал образцы задач, которые объединяют отдельные задачи в логический путь. Например, вот этот:
Подложка NP_JOB_Reload_N_Publish объединяет следующие подпрограммы:
- аутентифицирует и захватывает куки сеанса
- получает AppId на основе параметра vNPrintingAppName – это имя приложения NPrinting, которое будет использоваться на последующих шагах
- получает все ConnectionsId с необязательным параметром имени соединения (если он не указан, то перебирает все соединения из в AppId. Перезагружает метаданные этого соединения. Есть дополнительный параметр (тайм-аут перезагрузки метаданных, который позволяет остановить его, если он работает дольше, чем указанное время)
- Получает все задачи публикации (на основе vNPrintingTaskName), ответ может выглядеть так:
- пусто – все задачи
- через запятую: список запускаемых задач
- имя задачи – отдельная задача для запуска
- Запускает вышеупомянутые задачи и ожидает их публикации.
Все это можно сделать в QlikView или Qlik Sense, используя 2 строки кода сценария:
В строке 23 я вызываю «задание NP_JOB_Reload_N_PublishTask», чтобы:
- перейти в приложение NPrinting под названием «Тестирование»,
- проверить и перезагрузить все подключения в этом приложении (примечание: «в строке параметра»)
- если перезагрузка метаданных длится более 10 минут, прервать (примечание 10 в качестве последнего параметра)
- опубликовать задания «тестирование» и «тестирование12».
Это всего лишь пример того, что можно сделать. В файле QVS есть подпрограммы, позволяющие удалять пользователей, импортировать пользователей из таблицы, загруженной в Qlik, создавать или обновлять группы пользователей, фильтры, роли. Пользовательский импорт основан на шаблонах XLS с сайта справки Qlik, он также может поступать непосредственно из любой другой таблицы, которая будет иметь подходящие поля. Эта работа все еще продолжается, и ее цель – показать, что вы можете создать довольно гибкий инструмент в соответствии со своими потребностями, и вы можете полностью перенести все распределение по расписанию и NPrinting в QMC.
В QVS-файле есть мой подход, но вы можете использовать его как источник вдохновения для написания собственного скрипта, модифицировать мой, чтобы он лучше вам подходил, и больше исследовать NPrinting API. В моих примерах вы можете увидеть, как изменить метод POST на PUT, PATCH или DELETE.
В зависимости от ваших задач вы можете создавать задания прямо в Qlik Script или вызывать все необходимые задачи самостоятельно. Все зависит от вас.