Power BI Desktop - это настольное приложение от Microsoft, предназначенное для создания интерактивных отчетов и визуализаций данных.
Подключение Power BI Desktop к Системе ADVANTA выполняется с помощью скрипта на языке Python. В качестве источника для получения данных используются LINQ-запросы, настроенные в ADVANTA.
Чтобы настроить в Power BI Desktop визуализацию по данным из Системы ADVANTA, требуется выполнить следующие шаги:
Ниже рассмотрен пример настройки дашборда в PowerBI на основе двух источников (LINQ-запросов) из Системы ADVANTA. На основе этого примера Вы можете создавать собственные источники в Системе для автоматического получения данных из ADVANTA в Power BI Desktop.
Чтобы загрузить данные из ADVANTA в PowerBI, необходимо сначала создать в ADVANTA источники данных в виде LINQ-запросов (необходим хотя бы один запрос). LINQ-запросы станут источниками данных для соответствующих дашбордов в PowerBI.
Для этого перейти в Системе ADVANTA в раздел Администрирование → Дополнительные сервисы → Источники LINQ. На странице выбрать либо уже созданный источник, либо создать новый. В примере ниже выбрано два уже созданных источника для BI: «КТ» и «Проекты».
Нужно присвоить LINQ-запросам имена и ключи. Для удобства имена, ключи и id запросов необходимо скопировать и сохранить.
Для того чтобы при импорте в PowerBI обращаться к API ADVANTA, надо использовать скрипт на Python. Для этого необходимо установить Python на ПК и проверить, что он работает.
В используемой инсталляции Python для работы скрипта нужно также установить менеджер пакетов - pip
и выполнить команду для установки библиотек:
python -m pip install requests matplotlib pandas
Заходим в Power BI Desktop и создаем/открываем отчет - в этом отчете будет настраиваться новый источник данных.
В отчете создаем новый источник данных: вкладка «Получить данные» → Другие → Скрипт Python → Подключить.
В поле «Сценарий» вставить код из примера:
# не забудьте установить требуемые библиотеки Python: # python -m pip install requests matplotlib pandas import requests from pandas import json_normalize # данные пользователя для подключения к инсталляции ADVANTA # LOGIN = '' # PASSWORD = '' # лучше использовать токен - см. Вики # https://wiki.a2nta.ru/doku.php/product/auth/users/token_management # https://wiki.a2nta.ru/doku.php/product/linq/new#webapi TOKEN = 'enter_your_token_here' # адрес сервера с системой ADVANTA (при необходимости можно указать справа от домена каталог установки, если система расположена не в корне домена) DOMAIN = 'https://test.a2nta.ru' # переменная для хранения параметров сессии session = requests.Session() # авторизация в ADVANTA response = session.post( url=DOMAIN+'/api/auth/login', ### если используем подключение с помощью логина и пароля # json={ # 'Login': LOGIN, # 'Password': PASSWORD, # }, ### если подключаемся, используя токен json={ 'tokenValue': TOKEN, }, ) # сохранение полученных авторизационных cookies для дальнейшего использования cookies = session.cookies.get_dict() # получение данных из LINQ-запроса response = session.post( url=DOMAIN+'/api/queries/get', cookies=cookies, json={ # указать ваш код LINQ-запроса и его параметры 'DataSourceKey': 'enter_your_linq_code_here', 'PageSize': 100, }, ) # возвращаем данные в Power BI в нужном для дальнейшей обработки формате projects = json_normalize(response.json())
После заполнения всех параметров нажимаем «Ок» - начнется подключение к ADVANTA. Если скрипт успешно отработал, в PowerBI появятся импортированные данные. Надо выбрать источник слева и затем нажать «Загрузить» внизу окна. Далее полученные из ADVANTA данные можно обрабатывать и преобразовывать средствами PowerBI для большего удобства работы с ними в дашбордах.
Для формирования дашборда необходимо сделать столько источников в PowerBI, сколько их нужно импортировать из ADVANTA, т.е. один LINQ-источник = один источник данных в PowerBI. В последующем, при нажатии кнопки «Обновить данные» в отчете PowerBI, информация из Системы ADVANTA будет запрашиваться автоматически с использованием сохраненного в параметрах источника данных Python-скрипта.
После добавления всех необходимых источников в модели данных PowerBI можно связать поля источников между собой для автоматической фильтрации данных в дашбордах. В примере свяжем ProjectId из таблицы «milestones» и Id из таблицы «projects».
На основе загруженных данных можно создать необходимые визуализации в PowerBI, подключая их к нужным источникам данных.
Например, можно сделать панель в виде таблицы, которая будет содержать список проектов с их id и статусом.
Также можно сделать таблицу с перечнем контрольных точек и базовой датой их окончания.
Так как данные двух таблиц связаны, то при выборе «Проекта» в верхнем списке - перечень «Контрольных точек» в нижней части дашборда будет автоматически фильтроваться по id выбранного проекта за счет ранее установленной связи между таблицами.
После настроек визуализации готовый файл PowerBI необходимо сохранить. Дальнейшая настройка дашбордов в PowerBI осуществляется стандартными средствами данного приложения.