Киоск производительности складского персонала: QlikView на страже расчета премиальных

Obolenskiy

Работаю с Qlik с 2009 года, начиная с проекта в компании Копейка.

Всем, привет!

Хочу поделиться нестандартным опытом применения QlikView для кладовщиков. Да-да, аналитика в массы!  😀

Киоск производительности персонала в QlikView: задача

Задача такая: у рядовых сотрудников нет четкого понимания формирования сдельной части оплаты труда. Из-за этого в конце каждого месяца выстраивалась очередь к начальнику склада с вопросами: “А почему столько я получил? А почему в прошлом месяце больше?”.  Это отнимало много времени: как у сотрудников, так и у руководителя.

Если кратко, то задачу можно описать следующим образом:

  1. Проинформировать рядовых сотрудников склада об их производительности.
  2. Информация не должна обновляться слишком часто, чтобы это не отвлекало и не превратилось в игру «сделал перемещение — сбегал проверил».
  3. Максимальная простота и наглядность интерфейса.
  4. Защищенность от возможности что-то перенастроить или посмотреть чужие данные.
  5. Физическая доступность для персонала.

Реализация

Исходные данные о производительности уже собирались и анализировались в центральном офисе. На складе было решено установить специальное рабочее место для контроля собственной производительности, доступной для сотрудника склада. Соответственно, дано:

  • Данные о производительности каждого сотрудника
  • Обычная рабочая станция, у которой настроен общий доступ к диску и установлен QlikView,
  • Локальный клиент QlikView Personal Edition (мы же хотим сэкономить лицензии 😀 ).

Два раза в сутки, примерно в конце рабочей смены, с центрального сервера QlikView данные о производительности размещались на локальный диск «Киоска производиельности» (далее по тексту именно так я буду именовать развернутое на складе решение).

Разработчиками был нарисован простенький интерфейс из 3 таблиц:

  • Производительность за прошедшие 3 смены.
  • Суммарная производительность за текущий расчетный период.
  • Суммарная производительность за прошедший расчетный период.Киоск производительности QlikView

А теперь предстояло решить главную проблему: как кладовщик будет выбирать себя в фильтрах? Ведь он не должен иметь возможности посмотреть чужую статистику и должен максимально быстро найти именно себя.

Решили использовать понятную и привычную для всех сотрудников склада технологию – бейджик со своим уникальным логином и соответствующим штрихкодом. Сканируя этот бейджик, он регистрирует все свои работы на складе. Поэтому мы подключили к киоску самый обычный сканер штрих кодов, ведь он является чуть менее распространенным, но, тем не менее, обычным средством ввода информации.

В нашем Киоске сканер преобразует отсканированный штрихкод в текст, и  алгоритм работы получился следующим:

  • Человек сканирует штрихкод,
  • QlikView воспринимает это как ввод текста в строку поиска по полю «логин».Киоск производительности QlikView

Оставалось лишь немного настроить сканер, чтобы он автоматически добавлял символ перехода на новую строку после отсканированного текста (то есть чтобы QlikView получал следующую информацию: «Логин+Enter»).

Вот так Киоск производительности выглядит в собранном состоянии:Киоск производительности QlikView

Из нестандартного могу, пожалуй, выделить следующие элементы:

  1. Как заставить экран ОС не блокироваться? Я установил простейшую программу, которая двигала курсор по экрану каждые 2 минуты из угла в угол. Подобное приложение можно скачать здесь: https://movemouse.codeplex.com
  1. Как оставлять нужный фильтр с логином всегда активным? Достаточно просто сделать его активным, ведь после отключения мыши единственный источник ввода информации — сканер штрихкодов. Но на всякий случай я еще настроил тригер «on any select» — активация нужного объекта.
  2. Как перезагружать локальное приложение без участия сервера и необходимости его переоткрывать? Windows scheduler не подошел, т.к. он бы создавал новое приложение QlikView (уверен, что можно и его использовать – буду рад прочитать об этом в комментариях). Но я решил не выходить за рамки оболочки одного приложения QlikView и не использовать иные приложения, ведь чем меньше составных частей в решении, тем меньше шанс, что будет сбой. Вот, что я сделал:

a. Настроил тригер на любое изменение переменной. Действие — reloadНастройка триггеров QlikView

b. А вот значение переменной я сделал вычисляемым:

=if(hour(now())=9 and Minute(now())=10 and Second(now())>55,1,0)

Таким образом, каждый день в 9:10:55 значение переменной изменялось с «0» на «1» и срабатывал тригер, который в свою очередь запускал перезагрузку. Отдельным бонусом является то, что при такой перезагрузке ее нельзя отменить и по завершении QlikView не выводит перечень доступных полей, то есть он просто возвращает в интерфейс отчета с обновленными данными.

Заключение или умей мыслить нестандартно

Своим постом я хотел рассказать о том, что даже применение совсем элементарных функций QlikView может решать реальную задачу бизнеса, надо лишь чуть шире взглянуть на методы достижения результата. Уверен, что даже новичок после просмотра пары видео в интернете сможет создать подобное приложение, именно поэтому я не описываю само приложение (там все очень просто и неинтересно – скриншот я приложил).

Желаю всем удачи в творческом подходе к решению аналитических задач! Жду ваших комментариев и идей по нестандартному использованию QlikView.

Obolenskiy

Работаю с Qlik с 2009 года, начиная с проекта в компании Копейка.

Комментарии

  • Сентябрь 8, 2015 at 15:04
    Permalink

    Интересная и полезная статья!
    И по ней сразу вопрос (ну не совсем по ней) — я так понят у вас стоит просто локальный клиент.
    а вот у нас стоит доступ через WEB, и есть отчет, который обновляется данными каждые 5 минут.
    Может сможете посоветовать, как автоматически можно попробовать обновлять отображение этого отчета в WEB — (Хотим повесить монитор, что бы почти в реальном времени видеть данные).

    Ответить
  • Сентябрь 8, 2015 at 16:02
    Permalink

    У нас есть и такая реализация. На сервере есть отчет, который обновляется раз в 5 минут и на выходе генерит csv файл. Данный файл с данными размещается на портале. И есть страничка портала, которая отрисовывает данные из csv. И уже в самой страничке прописан код, который ее перерисовывает при изменении данных в csv.

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Подпишись на Data-Daily!

Введите email и будьте в курсе!

Подпишись!