Отчёты из API Мойсклад в Power BI и Excel (интеграция)

Отчёты из API Мойсклад в Power BI и Excel (интеграция)

Вы ведёте учёт в сервисе Мойсклад и хотите строить отчёты на основе данных? Мы сделали коннектор, позволяющий затягивать данные из Мойсклад в Power BI и Excel по API! 

Наш коннектор успешно обновляется в Power BI Service. Для обновления бесплатной версии коннектора нужен персональный шлюз, а платная - обновляется без шлюза.

Особенности интеграции Мойсклад

Бесплатную версию коннектора Power BI (.mez) к Мойсклад вместе с описанием можно найти здесь

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

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

Если не знаете ссылку - не страшно, в коннекторе уже есть список названий отчётов со встроенными ссылками. Просто выбираете нужный отчёт и забираете данные! Будьте осторожны - отчётов довольно много, так что постарайтесь не запутаться;)

Что еще характерно для подобных коннекторов - пользователь сам разворачивает полученные таблицы. Ведь для такого количества отчётов мне сложно составить списки столбцов. Да и вам удобнее - что захотели, то и развернули. 

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

Установка коннектора в Power BI

  1. Скачайте файл Moysklad.mez
  2. Поместите файл Moysklad.mez в папку C:\Users\USERNAME\Documents\Power BI Desktop\Custom Connectors, подставив USERNAME своего компьютера. 
    Если у вас есть OneDrive, папка может выглядеть так: C:\Users\USERNAME\OneDrive\Documents\Power BI Desktop\Custom Connectors. 
    Если папки еще нет, её нужно создать.
  3. Откройте Power BI, зайдите в Файл -> Параметры и настройки -> Параметры -> Глобальные -> Безопасность, выберите "Разрешить загрузку любого расширения без проверок и предупреждений".
  4. Нажмите на кнопку "Получить данные", в поиске найдите коннектор Moysklad. Выбрвав коннектор, укажите необходимые параметры подключения.

Параметры и получение токена

В коннекторе вы увидите 4 параметра: Что нужно получить, Тип отчёта, URL для получения данных и начальный отступ. 

В разворачивающемся списке "что нужно получить" вы увидите 3 пункта: 
Токен, Размер выгрузки и собственно выгрузку данных. 

Анонсы всех видео, статей и полезностей - в нашем Telegram-канале🔥
Присоединяйтесь, обсуждайте и автоматизируйте!

Как обычно это бывает в коннекторах, сначала нужно получить токен. Для этого в разделе "что нужно получить" выбираем "Токен", а тип отчёта - "Не выбрано" и жмём на "ОК".

Система потребует ввести ключ учётной записи - это будут ваши ЛОГИН:ПАРОЛЬ, разделённые двоеточием. Но прежде, чем ввести логин:пароль, переведите их в кодировку base64. Это можно сделать на любом сайте с кодировками, например тут:

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

Выгрузка и размер выгрузки Мойсклад

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

Прежде, чем получать сам отчёт, я всегда рекомендую проверить количество строк в нём. Поэтому в первом параметре выбираем "Размер выгрузки" и получаем количество строк в будущем отчёте. Если оно в пределах 10 000 строк - можно переходить к загрузке отчёта, поменяв первый параметр на "Выгрузка". Если число строк слишком велико - например, более 20 000 строк - рекомендуется добавить отступ прежде чем переходить к "Выгрузке" . 

Отступ - это последний параметр в коннекторе. Он позволяет не забирать весь объем данных, а начать например с 10001-й строки, опустив первые десять тысяч. Отступ нужно ставить кратным тысяче, в противном случае он всё равно округлится. По умолчанию отступ равен нулю, поэтому если вы его не указали - загрузится полный объем данных, а это может занять время. 

В типах отчёта уже заложен список допустимых значений, ошибиться тут сложно. У системы Мойсклад список отчётов довольно большой, тем не менее мы постарались заложить большинство из этих отчётов в типы. Если вы нашли нужный отчёт в списке, третий параметр (URL для получения данных) указывать не нужно.

Если же вы не нашли нужный тип отчёта, можно поискать в справке. Найдите в справке пример запроса и скопируйте часть URL, которая идёт после "https://online.moysklad.ru/api/remap/1.2/":

Выберите в типах отчёта "Не выбрано" и вставьте скопированную часть URL в третий параметр - "конец URL для получения данных". Это позволит вам получить данные по указанному URL в обход фиксированного списка отчётов. URL работает только для отчётов, получаемых по методу GET, но другие вам вряд ли встретятся.

Получение данных и сегментирование

При больших объемах данных вы можете долго ждать окончания загрузки. В этом случае можно воспользоваться потоками данных в Power BI по инструкции из статьи.

Отличие коннектора Мойсклад - в отсутствии параметров даты. Мы не можем получать данные за нужные даты, но можем регулировать отступ. Специально для удобной фильтрации в потоках, мы оставили столбец отступов (offset) в выгрузке:

Благодаря отступам, вы можете настроить поток данных на обновление последних 5000 строк, в то время как весь остальной объем данных не будет занимать ресурсы обновления. 

Как вы видите по выгрузке, в столбце "data" находятся сами данные в формате списка строк (List - это список, а внутри будут Records- строки). Развернув список (первый разворот), вы получите множество строк. Развернув строки и выбрав нужные столбцы (второй разворот), вы получите сами данные. 

Возможно, вам потребуется продолжить разворачивать содержимое ячеек, так как Мойсклад часто отдаёт вложенные данные, об этом я писал выше. Я рекомендую не тратить время и ресурсы Power Query на разворачивание столбца, который скорее всего не потребуется в итоговом отчёте.

Платная версия

Помимо бесплатной mez-версии, мы предоставляем платные версии коннекторов - функции. Коннекторы-функции обладают рядом преимуществ перед mez. Например, они работают в Excel и потоках данных Power BI. Подробнее о преимуществах коннекторов-функций написано в этой статье.

Для пользователей, которые не готовы долго ждать загрузки, настоятельно рекомендую метод из нашей статьи про потоки данных. Потоки данных помогут быстро проводить обновление, а метод инкремента помогает обновлять только последние несколько тысяч строк (не трогая остальные данные). 

Для потоков вам понадобится именно функция, а не mez. Напомню, что потоки данных работают только на аккаунтах Power BI Pro и не могут быть созданы в "Моей рабочей области". 

Если вам будет интересно полноценно работать с нашими коннекторами, доступ к функциям предоставляется в рамках курса Из API -> в Excel и Power BI

Буду рад ответить на все ваши вопросы в Telegram;)

Комментарии