M365Con 2027 – безкоштовна онлайн-конференція · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Чисті імпорти даних: сила альтернативних ключів у Dataverse

By ·

Раді вітати вас знову в подкасті та в нашому супутньому блозі! Якщо ви колись дивилися на середовище Power Platform, захаращене тисячами дубльованих записів, відсутніми батьківськими посиланнями та дратівливими помилками пошуку одразу після планової міграції даних, то ви точно не самотні. Багато корпоративних впроваджень починаються з простого підходу «як у таблиці» — ставлення до Microsoft Datave

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

▶ BLOGClean Data Imports: ThePower of Alternate Keys…M365.FM
Titelbild: Clean Data Imports: The Power of Alternate Keys in Dataverse

Раді вітати вас знову в подкасті та в нашому супутньому блозі! Якщо ви колись дивилися на середовище Power Platform, захаращене тисячами дубльованих записів, відсутніми батьківськими посиланнями та дратівливими помилками пошуку одразу після планової міграції даних, то ви точно не самотні. Багато корпоративних впроваджень починаються з простого підходу «як у таблиці» — ставлення до Microsoft Dataverse як до вдосконаленої таблиці бази даних, де можна все — і лише потім бачать, як уся архітектура тріщить по швах, щойно продуктивні дані починають зростати.

У цій публікації ми розвиваємо все, про що говорили, щоб провести вас від крихкого прототипу «у мене на формі працює» до надійної архітектури корпоративного рівня, яка стабільно працює навіть при 100 тисячах записів і більше. Розберімо детально, як використовувати унікальні альтернативні ключі, продумані стратегії upsert і бізнес-логіку на рівні платформи, щоб ваше середовище Dataverse залишалося бездоганним.

Чому прості рішення ламаються

Коли ви починаєте нову бізнес-програму, спокуса завжди одна — рухатися швидко й ламати речі. На жаль, «ламати речі» часто означає порушувати цілісність даних. Підхід «як у таблиці» веде прямо до ad-hoc полів, неконтрольованих формул у канвас-застосунках і розрізнених потоків Power Automate, які створюють приховані зв'язки в усій системі. Коли бізнес-логіка живе поза основною моделлю даних, неминуче виникають суперечливі тригери та заплутані крайні випадки, де дії користувачів повністю обходять правила перевірки.

Крім того, без належного відстеження походження даних ваші панелі звітності рано чи пізно почнуть розходитися з реальністю. Метрики втрачають довіру, бо ніхто не знає, яка система або автоматизований потік востаннє змінив цей критичний показник. Найгірше те, що імпорти даних, які покладаються лише на системно згенеровані GUID, а не на змістовні бізнес-ідентифікатори, — це бомби із затримкою дії. Без природних ключів кожне завантаження даних ризикує створити дублікати, «осиротілі» записи та зламані посилання, які потребують виснажливого ручного очищення.

Архітектура з висоти пташиного польоту

Створення масштабованих рішень потребує дисциплінованого підходу. Уявіть свою архітектуру як конвеєр із п'яти окремих шарів:

  1. Модель: нормалізуйте основні сутності та чітко спроєктуйте таблиці зв'язків 1:N, N:N і ієрархій ще до того, як напишете хоча б один рядок коду.
  2. Логіка: віддавайте перевагу виконанню на стороні сервера — наприклад, бізнес-правилам, синхронним плагінам і робочим процесам у реальному часі — для інваріантних правил, які ніколи не повинні обходитися. Хмарні потоки залиште для оркестрації та сповіщень.
  3. Автоматизація: використовуйте обчислювані поля та поля зведення там, де зв'язки міцні, і ніколи без потреби не дублюйте справжнє джерело істини.
  4. Інтеграція: завжди використовуйте альтернативні ключі (змістовні бізнес-ідентифікатори), щоб безпечно виконувати upsert і забезпечувати сувору унікальність на межах зовнішніх систем.
  5. Спостережуваність: журналюйте спрацьовування правил, рішення потоків і оновлення зведень. Створюйте окремі панелі використання та SLA, щоб проактивно стежити за станом системи.

Шаблони проєктування зв'язків (готові до використання)

Правильна модель даних починається з вибору правильних шаблонів зв'язків з першого дня. Ось перевірені часом шаблони, які варто впровадити:

Запобіжники: завжди уникайте циклічних залежностей у ваших обчисленнях зведень. Тримайте пошукові зв'язки однозначними, щоб вони завжди відображали один чіткий бізнес-зміст, і забезпечуйте обов'язкові зв'язки щоразу, коли бізнес-правила диктують, що дочірній запис не може існувати без батьківського.

Бізнес-логіка на рівні платформи (там, де їй місце)

Місце, де ви розміщуєте бізнес-логіку, визначає загальну підтримуваність вашого застосунку. Якщо потрібно не допустити потрапляння поганих даних до системи, покладайтеся на синхронну серверну логіку, наприклад власні плагіни або робочі процеси в реальному часі. Якщо процес може безпечно виконатися після події збереження, перенесіть його в асинхронну серверну логіку. Power Automate залиште виключно для обміну повідомленнями між застосунками, сповіщень користувачів і складних зовнішніх інтеграцій.

Уникайте поширеного антипатерну, коли одне й те саме правило перевірки дублюється у чотирьох різних канвас-застосунках і трьох хмарних потоках. Натомість ведіть централізований каталог правил, у якому задокументовано кожну таблицю, умову спрацювання, дію та бізнес-власника.

Обчислювані та агреговані поля, яким можна довіряти

Обчислювані та агреговані поля є потужними інструментами для підтримки чистої моделі даних, але вимагають уважного поводження. Завжди прив’язуйте формули до стабільних зв’язків, а не до необов’язкових посилань, які можуть залишитися порожніми. Для підсумовування дочірніх записів віддавайте перевагу вбудованим агрегованим полям перед власними потоками, а якщо йдеться про великі обсяги, плануйте завдання перерахунку на години з низьким навантаженням.

Щоб користувачі й адміністратори довіряли цим значенням, завжди додавайте поля «Last Recalculated On» і «Rollup Status» до основних записів. Це просте доповнення усуває неоднозначність і дає вашій службі підтримки миттєву видимість актуальності даних.

Альтернативні ключі: імпорт без сміття

Це основа надійної інтеграції даних. Під час імпорту даних із застарілих систем, ERP або зовнішніх API потрібні надійні бізнес-ідентифікатори, наприклад VendorCode, EmployeeID, SKU, ExternalCaseId або Email, а не внутрішні GUID, які змінюються між середовищами.

Створивши унікальні альтернативні ключі для цих стовпців і попередньо перевіривши якість даних, ви розкриєте справжню потужність Dataverse API: операцію Upsert. Upsert перевіряє альтернативний ключ: якщо запис існує, він оновлює його; якщо ні, створює новий. Це повністю усуває дублікати записів під час імпорту. Для складених сценаріїв, наприклад зіставлення працівника між дочірніми компаніями, можна визначити складені ключі з кількох стовпців, як-от CompanyCode плюс EmployeeNumber. Завжди зберігайте ці ключі незмінними, а якщо бізнес-потреби вимагають змін, введіть стабільний сурогатний ключ разом із діапазонами дат ValidFrom і ValidTo.

Контрольний список продуктивності (швидкі перемоги)

Коли користувачів стає більше, продуктивність стає вашим головним показником успіху. Підтримуйте швидкодію середовища, дотримуючись таких швидких перемог:

Управління та стійкість

Корпоративний застосунок настільки хороший, наскільки хороша його модель управління. Дотримуйтеся суворого конвеєра розгортання від Development до Test і Production з використанням керованих рішень. Зберігайте артефакти рішень у системі керування версіями через Power Platform CLI (PAC CLI) і вимагайте peer review для всіх власних плагінів і хмарних потоків.

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

План впровадження з 12 кроків (пілот за 1–2 дні)

Якщо ви готові втілити ці принципи на практиці, дотримуйтеся цього швидкого плану впровадження з 12 кроків для свого наступного пілотного проєкту:

  1. Накресліть на дошці діаграму сутність-зв’язок (ERD), що охоплює сутності, ключі, зв’язки та моделі володіння.
  2. Визначте ключові бізнес-ідентифікатори та створіть необхідні альтернативні ключі.
  3. Створіть основні таблиці та встановіть обов’язкові зв’язки, заповнивши початкові довідкові дані.
  4. Додайте обчислювані та агреговані поля для ваших головних ключових показників ефективності.
  5. Реалізуйте серверні перевірки для критичних бізнес-правил, які не можна порушувати.
  6. Створіть представлення на основі моделей із делегованими фільтрами та проіндексуйте часті умови.
  7. Використовуйте Power Automate лише для оркестрації та завдань сповіщень.
  8. Імпортуйте контрольований фрагмент даних, використовуючи операції upsert через альтернативні ключі.
  9. Налаштуйте таблицю журналювання телеметрії та створіть просту сторінку моніторингу стану.
  10. Проведіть тест масштабування з навантаженням у 5–10 разів більшим за очікуваний обсяг, відповідно налаштувавши індекси та періодичність агрегацій.
  11. Упакуйте свою роботу в кероване рішення та перенесіть його до середовища Test.
  12. Складіть детальний посібник з експлуатації, що охоплює процедури імпорту, політики ротації ключів і кроки аварійного відновлення.

Типові помилки (і як їх виправити)

Навіть за найкращих планів команди інколи стикаються з проблемами. Ось як виправити найпоширеніші з них:

Створення складних бізнес-застосунків у Dataverse не мусить бути важкою боротьбою з брудними даними та зламаними зв'язками. Побудувавши міцну модель даних, використовуючи альтернативні ключі для чистого імпорту та централізуючи бізнес-логіку, ви зможете створювати масштабовані рішення, які витримають випробування часом.

Щоб почути ще більше експертних порад, архітектурних розборів і глибоких занурень у створення надійних рішень у Microsoft Cloud, обов'язково послухайте пов'язаний епізод подкасту: Customize Dataverse for Complex Business Apps. До зустрічі в наступному епізоді!

Dataverse Power Platform Canvas app Power Automate

Related articles

RSS