Reporting API

Reporting API — это программный интерфейс, позволяющий получить источники данных отчетов WorkPoint в виде OData V4 Feed.

Важно! Раздел предназначен только для опытных пользователей и администраторов системы.

С помощью отчетов данные можно анализировать в веб-приложении или экспортировать их в MS Excel в виде статичного файла. С помощью Reporting API данные WorkPoint можно подключить к средству аналитики, тем самым обеспечив обновление данных «на лету».

Использование Reporting API позволяет:

  • Создать сложный отчет, использующий несколько источников данных WorkPoint.
  • Объединять в стороннем средстве аналитики данные WorkPoint и других систем, например, финансово-учетной системы.
  • Использовать данные WorkPoint в корпоративных средствах бизнес-аналитики, таких как MS Power BI или QlikView.

API доступно по адресу https://reporting.workpoint.app/OData.

Пример настройки подключения в MS Excel

Для подключения к данным необходимо использовать функцию Power Query. Функция Get External Data, также входящая в MS Excel, предназначена для работы с ранними версиями OData источников данных и не подходит для подключения к WorkPoint Reporting API.

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

1
На ленте Данные выберите пункт Получить данные  -> Из других источников -> Из канала OData:
2

Введите URL канала: https://reporting.workpoint.app/OData. Нажмите OK.

3
Выберите тип аутентификации Базовый и укажите ваш адрес электронной почты и пароль, используемые для входа в WorkPoint и нажмите Подключиться:

Важно! Ознакомьтесь с рекомендациями производителя ПО по обеспечению безопасности. Для PowerQuery, прежде всего, с уровнями безопасности источника данных.
4
Выберите источник данных ActualData (Фактические данные) и нажмите Редактировать:

5
В открывшемся редакторе запроса выберем только нужные колонки. Это ускорит работу отчета и упростит дальнейшую настройку. Для этого используйте команду Выбрать колонки:

И оставьте только следующие колонки: Month, Project и HoursTotal. Нажмите ОК:

6
Выполним развертывание колонки-сущности Project. Для этого выберите команду развернуть на ленте или в заголовке колонки:

Выберем одно свойство проекта для отображения — "Наименование". Выберите свойство и нажмите ОК:

7
Сохраните запрос нажав кнопку Закрыть и Загрузить:

Средствами Power Query вы можете создать вычисляемые колонки, переименовать колонки (например, сделать название на русском языке), соединять разные источники в новых таблицах и пр. Подробнее читайте на сайте Microsoft.
8
Данные подключены к Excel. Для построения сводной таблицы на ленте Вставка нажмите кнопку Сводная таблица:

9
Настройте сводную таблицу:

Для обновления информации используйте команду Обновить на ленте Данные. В результате обновления из WorkPoint будут загружены актуальные данные.

Особенности работы Power Query

Power Query — средство извлечения и трансформации данных из внешних источников, является встроенной функцией продуктов MS Excel (актуальных версий) и Power BI. Для подключения к каналу OData используется коннектор OData.Feed, подробнее — https://docs.microsoft.com/en-us/powerquery-m/odata-feed. В актуальных версиях Power Query доступна вторая версия коннектора, которая включается параметром Implementation = «2.0», этот параметр устанавливается по умолчанию.

Рекомендуем использовать именно эту версию коннектора в виду значительной оптимизации. В частности фильтрация данных в запросе Power Query новой версии приводит к фильтрации на уровне сервера, т.е. в Excel передается ограниченный набор данных. Учитывая ограничение на максимальный набор данных в Reporting API (500 000 строк) для относительно крупных наборов данных подобная фильтрация является полностью необходимой.

Расширенные возможности для крупных команд

Power Query — удобный и мощный инструмент с простой настройкой без написания запросов. Однако для крупных источников данных (более 250 000 строк) вопрос производительности встает на первый план.

Важно! Вычислительные возможности вашего абонента ограничены. Если вы создадите сложный, часто используемый и ресурсоемкий отчет, то это может оказать негативное влияние на производительность для всех пользователей вашей системы.

Power Query выполняет так называемый Query Folding. Идея, лежащая в основе Query Folding, заключается в том, чтобы перенести логику, встроенную в запрос Power BI, обратно на сервер источника данных и выполнить его там, вместо преобразования данных на стороне клиента. До второй реализации коннектора, которая включается ключом Implementation = «2.0», данная функция работает очень ограниченно и не во всех случаях. На сторону сервера Power Query переносит несколько операций, в частности: select (выбор колонок), expand («раскрывает» колонки сущности и выбирает только нужные колонки) и filter (фильтрация данных). Этого достаточно в большинстве случаев.

Однако Reporting API отдает данные без группировки, в отличии от того, как это делается в веб-отчетах, подробнее — Группировка и суммирование данных отчета. Например, если вам требуется вывести повременные сведения сводку по утилизации сотрудников на основе источника Фактические данные, то исходных данных может оказаться слишком много для передачи в средство бизнес аналитики и потребуется серверная группировка.

Для решения задач серверной группировки данных WorkPoint поддерживает расширение стандарта OData по агрегации данных, подробнее — OData Extension for Data Aggregation Version 4.0. Однако его пока не поддерживает Power Query Folding и если вы группируете данные в редакторе запроса, то вначале все данные будут запрошены с сервера и только потом на клиенте будут сгруппированы.

Обходным путем является использование коннектора Json.Document с применение собственного запроса к Reporting API. Следующий пример показывает запрос с группировкой данных:

https://reporting.workpoint.app/OData/ActualData?$apply=filter(Year ge 2010-01-01)/groupby((User/Name,WeekNumber), aggregate(HoursTotal with sum as HoursTotal))
		

Подобный подход позволяет полностью контролировать запросы, направляемые серверу, и оптимизировать производительность.

Для проектирования, разработки и внедрения сложной аналитики рекомендуем воспользоваться услугами расширенной поддержки.