M365Con 2027 – бесплатная онлайн-конференция · 11–22 Jan 2027 · 120 sessions→ m365con.net

Блог · Mirko Peters

Раскрываем возможности Dynamics 365 с помощью рабочих пользовательских коннекторов

By ·

Добро пожаловать в наше подробное руководство о том, как вывести интеграции Power Platform и Dynamics 365 на новый уровень. Если вы хоть раз упирались в стену при попытке получить нужные пользовательские таблицы, выполнить сложные вычисляемые поля или выполнить точные запросы OData с помощью готовых компонентов, вы не одиноки. Стандартные инструменты отлично подходят для быстрой разработки приложе

Automatically translated with AI from the original post. Read the English original

▶ BLOGUnlocking AdvancedDynamics 365 Data with…M365.FM
Titelbild: Unlocking Advanced Dynamics 365 Data with Production Custom Connectors

Добро пожаловать в наше подробное руководство о том, как вывести интеграции Power Platform и Dynamics 365 на новый уровень. Если вы хоть раз упирались в стену при попытке получить нужные пользовательские таблицы, выполнить сложные вычисляемые поля или выполнить точные запросы OData с помощью готовых компонентов, вы не одиноки. Стандартные инструменты отлично подходят для быстрой разработки приложений, но корпоративным архитектурам часто нужен тонкий контроль, надёжная обработка ошибок и надёжные ограничения безопасности. В этом развернутом материале мы разберём, как пользовательские коннекторы соединяют Power Platform с Dataverse Web API и дают вам полный контроль над ландшафтом данных.

Это письменное руководство напрямую развивает темы, обсуждавшиеся в нашем подкасте. Если вы хотите послушать аудиоразбор, разобраться во всех нюансах и услышать истории реальных внедрений, обязательно посмотрите связанный выпуск: Expose Dynamics 365 APIs with Power Platform Custom Connectors.

Слоган

Когда стандартный коннектор останавливается, ваша автоматизация — нет.

Что вы узнаете

  • Как находить недостающие возможности в стандартном коннекторе Dynamics 365
  • Практический порядок действий для поиска точных конечных точек Dynamics/Dataverse Web API, которые вам нужны
  • Создание безопасного пользовательского коннектора (OAuth2 через Azure AD, области доступа, сервисные принципалы)
  • Производственные паттерны: фильтрация, постраничный вывод, ограничение частоты запросов, повторные попытки и эволюция схемы
  • Управление: DLP, RBAC, владение, версионирование, мониторинг и аудит

Проблема в одном предложении

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


Эталонный план (от начала до конца)

1) Обнаружение

  • Сопоставьте недостающие потребности (пользовательские таблицы, столбцы, расширенные фильтры, действия).
  • Используйте метаданные Dataverse Web API, Solution Explorer или API Inspector/Postman, чтобы подтвердить конечные точки и логические имена.
  • Проверьте запросы OData $filter, $select, $expand на примерах данных.

2) Защита

  • Создайте регистрацию приложения в Azure AD (один клиент, OAuth2).
  • Назначайте минимальные роли приложений Graph/Dataverse; решите, что использовать: делегированный доступ пользователя или сервисный принципал.
  • Настройте URL перенаправления для пользовательского коннектора и спланируйте ротацию секретов.

3) Сборка

  • В Power Platform создайте пользовательский коннектор (из OpenAPI или с нуля).
  • Определите узел (host), базовый путь, аутентификацию и действия (GET/POST/PATCH), включая схемы параметров запроса и тела.
  • Добавьте политики: повторные попытки с экспоненциальной задержкой, постраничный вывод, заголовки по умолчанию, тайм-ауты.

4) Управление

  • Назначьте владельца, настройте среды (Dev/Test/Prod) и классификацию по политике DLP.
  • Ограничьте использование через RBAC/группы безопасности; документируйте области доступа и домены данных.
  • Установите версионирование (v1, v2…), журнал изменений и сроки устаревания.

5) Эксплуатация

  • Отслеживайте запуски потоков и телеметрию коннектора; настройте оповещения о всплесках ошибок 4xx/5xx и长 времени выполнения.
  • Добавьте автоматические выключатели (circuit breakers) и повторное воспроизведение очередей при ограничении частоты (429); отслеживайте потребление.
  • Ежеквартально проверяйте разрешения, секреты и изменения API.

Краткое руководство по обнаружению API

  • Найдите логические имена: в решении проверьте логические имена таблиц и столбцов (например, new_pricetierlevelid).
  • Протестируйте запросы в Postman:
    • GET .../api/data/v9.2/new_warrantyclaims?$select=...&$filter=modifiedon ge {timestamp}
    • Используйте $expand для связанных записей; $count и постраничный вывод (@odata.nextLink).
  • Вычисляемые и агрегированные поля: проверьте, что они материализованы и доступны для фильтрации; в противном случае вычисляйте на стороне сервера (FetchXML) или в последующей обработке.
  • Действия/функции: вызывайте связанные и несвязанные действия (например, CalculatePrice), когда CRUD недостаточно.

Меры безопасности и конфиденциальности

  • OAuth2 (Azure AD), без API-ключей.
  • Минимальные привилегии: ограничивайте роли приложений конкретными таблицами и операциями; для фоновых заданий предпочитайте сервисные принципалы.
  • Атрибуция пользователя: используйте делегированные разрешения, когда бизнесу нужен аудит действий конкретного человека.
  • DLP: отнесите коннектор к категории Business и блокируйте потоки, выходящие за границы, в личные сервисы.
  • Минимизация данных: запрашивайте через $select только нужные столбцы; маскируйте ПДн на последующих этапах; при необходимости применяйте RLS на уровне окружения.

Производственные шаблоны (готовые к копированию)

Экспоненциальная задержка повторов для 429/5xx

  • Начальная задержка 2–5 с; удваивайте её до предела (например, 60 с); максимум 5–7 повторов; записывайте correlation ID в журнал.

Пагинация

  • Учитывайте @odata.nextLink; по возможности агрегируйте страницы на стороне сервера; задавайте размер страницы (например, $top=5000) в пределах допустимых лимитов.

Дельта-загрузки

  • Фильтруйте по modifiedon ge {lastRunUtc}; сохраняйте последнюю успешную отметку (watermark); учитывайте расхождение часов.

Идемпотентность

  • Используйте upsert (PATCH с If-Match или альтернативным ключом), чтобы избежать дубликатов; сохраняйте исходные ID.

Эволюция схемы

  • Отслеживайте отсутствующие и лишние поля; мягко обрабатывайте неизвестные значения; поддерживайте коннекторы v1/v2 на время миграции.

Примеры использования (и как пользовательский коннектор решает задачу)

  1. Синхронизация пользовательской таблицы (WarrantyClaims)
  • Действие: GET /new_warrantyclaims?$select=claimid,status,amount&$filter=modifiedon ge {ts}
  • Поток: Повторение → Получить заявки → For Each → Upsert в Dataverse/ERP.
  1. Расширенный фильтр для «VIP Accounts»
  • Действие: GET /accounts?$filter=new_vipstatus eq true and statuscode eq 1
  • Поток: Trigger по расписанию → обработка только VIP-клиентов с активным статусом → уведомление CSM.
  1. Вызов серверного действия (Recalculate)
  • Действие: POST /CalculateRevenue (unbound) с параметрами (диапазон дат, сегмент).
  • Поток: по запросу или по runbook → вызов действия → сохранение результата в отчетную таблицу.

Мониторинг и надежность

  • Дашборд: процент успешных вызовов, средняя задержка, количество повторов, основные коды ошибок, пропускная способность по каждому действию.
  • Оповещения: устойчивые 429, сбои аутентификации, задержка выше P95, несоответствия схемы.
  • Журналы: включайте в телеметрию ID запросов, ключи партиций и watermark для возможности повторной обработки.
  • Отказоустойчивость: при повторяющихся сбоях направляйте данные в резервный путь (например, таблицу Dataverse или Azure Queue).

Управление и жизненный цикл

  • Ответственный владелец (приложение и коннектор), задокументированное назначение, домены данных, потребители.
  • Процесс перевода в продуктивную среду: в PRD попадают только утвержденные артефакты; секреты для каждой среды подключаются через ссылки на подключения.
  • Периодичность проверок: ежеквартальная проверка доступа, ротация секретов и проверка устаревания API.
  • Вывод из эксплуатации: пометьте как устаревший, блокируйте новые подключения и отключите после миграции.

Быстрый старт за 10 шагов (план на неделю)

  1. Составьте список пробелов в стандартном коннекторе (таблицы, поля, фильтры, действия).
  2. Проверьте конечные точки Web API и запросы в Postman.
  3. Зарегистрируйте приложение Azure AD; решите, делегированное оно или только приложение.
  4. Создайте пользовательский коннектор (Dev); определите действия и схемы.
  5. Добавьте политики: повторы, пагинацию, заголовки, таймауты.
  6. Создайте ссылки на подключения для каждой среды.
  7. Запустите пилотный поток; проверьте объем, фильтры и идемпотентность.
  8. Добавьте мониторинг и оповещения; задокументируйте runbook.
  9. Переведите в Test/Prod; ограничьте доступ через DLP/RBAC.
  10. Опубликуйте документацию v1; спланируйте v2 (известные ограничения, дорожная карта).

Типичные ошибки (и how to fix)

  • Ограничение 429 → внедрите задержку повторов и пакетную обработку; распределяйте расписания.
  • Избыточные разрешения → используйте роли приложения с минимальными правами; разделяйте коннекторы по доменам.
  • Секреты в коде → используйте служебные принципалы и управляемые секреты; ротируйте ежеквартально.
  • Разрастание коннекторов → центральный каталог, владельцы, политика версионирования.
  • Поломки схемы → контрактные тесты в Dev; параллельная работа v1/v2 во время изменений API.

Часто задаваемые вопросы

Q: Можно ли обращаться к пользовательским/ISV-таблицам?
A: Да — используйте их логические имена через Web API и добавляйте действия в коннектор с корректными схемами.

Q: Делегированные разрешения или только приложение?
A: Только приложение — для фоновых и плановых задач; делегированные — когда нужен аудит и контроль на уровне пользователя.

Q: Как соблюдать DLP?
A: Относите к категории Business, блокируйте коннекторы, выходящие за границы, ограничивайте использование группой безопасности и журналируйте экспорт.

Q: Как обстоит дело с производительностью при масштабировании?
A: Пакетное чтение, дельта-запросы, задержка повторов при 429, аккуратный параллелизм; отслеживайте и настраивайте $top и фильтры.

Заключение

Освоение пользовательских коннекторов в Power Platform позволяет разработчикам и архитекторам обойти ограничения универсальных решений и напрямую использовать мощь Dynamics 365 Web API. Следуя структурированным шаблонам для обнаружения, безопасности, управления и операционной устойчивости, вы можете создавать конвейеры автоматизации, которые масштабируются без ущерба для стандартов безопасности организации. Помните, что переход от готовых блоков к пользовательским API требует тщательного планирования аутентификации, ограничения частоты запросов и управления жизненным циклом, но результат — полный контроль над бизнес-данными.

Чтобы глубже разобраться в реальных сценариях, послушать дискуссии экспертов и найти практические советы, которые сделают ваше следующее внедрение Power Platform по-настоящему успешным, обязательно послушайте наш связанный подкаст на тему Expose Dynamics 365 APIs with Power Platform Custom Connectors.

Entities in this article

Dynamics 365 Connector Custom connectors Power Platform Dataverse OData Microsoft Entra ID Throttling Telemetry Application registration

Related articles

RSS