Інтеграції / ERP / Microsoft Dynamics 365 Supply Chain Management
Посібник з інтеграції Dynamics 365 Supply Chain Management зі SkyPlanner APS для календарного планування виробництва
Цей посібник з інтеграції Dynamics 365 Supply Chain Management пояснює партнерам та ІТ-командам, як підключити Microsoft Dynamics 365 Supply Chain Management до SkyPlanner APS. SkyPlanner обмінюється даними з Dynamics 365 Supply Chain Management в обох напрямках через стандартні сутності даних цієї системи:
- До SkyPlanner надходять виробничі замовлення, технологічні операції та завдання маршруту, рядки BOM, виробничі ресурси, календарі, випущені продукти, наявні запаси та рядки замовлень на закупівлю.
- Запланований час початку й завершення та вибраний виробничий ресурс записуються назад у виробниче замовлення та його технологічні операції маршруту.
- Відпрацьовані операторами години та кількість продукції передаються назад через журнал маршрутних карток.
- Вебхуки SkyPlanner передають зміни графіка одразу, щойно вони відбуваються.
Під час впровадження команда SkyPlanner налаштовує інтеграцію відповідно до вашої конфігурації Supply Chain Management, а після запуску підтримує її. Цей посібник призначений для партнерів і розробників, які хочуть долучитися до роботи або самостійно створювати рішення на основі документованого REST API SkyPlanner (довідник API).
Варіанти інтеграції з Dynamics 365 SCM
Supply Chain Management надає доступ до своїх даних через сутності даних. Для календарного планування важливі чотири варіанти:
- OData v4 REST endpoint.
[Your organization's root URL]/dataнадає доступ до кожної сутності даних із позначкою IsPublic та повну підтримку створення, читання, оновлення й видалення. Підтримуються$filter,$count,$orderby,$skip,$top,$selectі$expandпершого рівня. Розбиттям на сторінки керує сервер; максимальний розмір сторінки — 10 000 записів. Пакетні запити дають змогу об’єднувати операції запису в набори змін. OData працює синхронно. (джерело) - API для пакетного обміну даними. Data management package REST API та періодичні інтеграції передають великі обсяги даних асинхронно. Microsoft: “If the volume is more than a few hundred thousand records, use the batch data API.” (Якщо обсяг перевищує кілька сотень тисяч записів, використовуйте API для пакетного обміну даними.) Цей API також підтримується в локальних розгортаннях. (джерело)
- Бізнес-події. Програми Finance and operations публікують бізнес-події в Azure Service Bus, Event Grid, кінцевих точках HTTPS або Power Automate. (джерело)
- Користувацькі служби та дії OData. Користувацькі служби X++ і прив’язані дії OData виконують бізнес-логіку на вимогу.
Для щоденного обміну даними інтеграція SkyPlanner використовує кінцеву точку OData, а для початкового завантаження великого обсягу — API пакетного обміну даними. У Supply Chain Management нічого встановлювати не потрібно.
Автентифікація
Зареєструйте застосунок у Microsoft Entra ID (service principal). У Supply Chain Management зіставте цей застосунок із користувачем, якому призначено потрібні для інтеграції ролі безпеки. Інтеграція читає дані про виробництво, виробничі ресурси й запаси та записує дані календарного планування виробничих замовлень і журнали. Токени запитуються в Entra ID за допомогою облікових даних клієнта.
Доступні інтеграції дані визначають два правила:
- Юридичні особи. OData повертає дані компанії за замовчуванням, якщо до запиту не додано
?cross-company=true. Підприємства з кількома виробничими майданчиками фільтрують дані заdataAreaId. - Публічні назви. Нижче наведено назви сутностей із модуля Data management. Публічні назви колекцій OData можуть відрізнятися, тому отримуйте їх із
/data/$metadataвашого середовища.
На боці SkyPlanner автентифікація в REST API відбувається за токеном API (SkyPlanner Settings > API). Документація доступна у Swagger/OpenAPI. Навчальний посібник з інтеграції покроково пояснює перші виклики.
Зіставлення даних
| Сутність D365 SCM | Об’єкт SkyPlanner | Напрямок | Періодичність |
|---|---|---|---|
| Випущені продукти (ItemNumber) | Продукти й матеріали | SCM → SkyPlanner | Початкове завантаження, далі — лише зміни |
| Рядки виробничої BOM (ProdProductionOrderBillOfMaterialsLineEntity), рядки BOM | Структура продукту, матеріали для кожного замовлення | SCM → SkyPlanner | Під час кожної синхронізації замовлень |
| Маршрут, версії маршруту, технологічні операції маршруту, властивості технологічних операцій (RouteOperationPropertiesV2Entity) | Етапи процесу з часом налагодження та виконання | SCM → SkyPlanner | Початкове завантаження, далі — у разі змін |
| Виробничі ресурси (OpResOperationsResourceEntity), групи виробничих ресурсів, можливості | Робочі центри, групи робочих центрів, коефіцієнти ефективності | SCM → SkyPlanner | Початкове завантаження, надалі — зрідка |
| Календарі робочого часу, календарні дні й часові інтервали, призначення календарів | Зміни | SCM → SkyPlanner | Щодня; інший варіант — вести зміни у SkyPlanner |
| Заголовки виробничих замовлень (ProdProductionOrderHeaderEntity) | Замовлення з термінами виконання та статусами | SCM → SkyPlanner | Кожні кілька хвилин або за бізнес-подією |
| Технологічні операції маршруту (ProdProductionOrderRouteOperationEntity), завдання маршруту (ProdProductionOrderRouteJobEntity) | Виробничі завдання з тривалістю та вимогами до виробничих ресурсів | SCM → SkyPlanner | Під час кожної синхронізації замовлень |
| Наявні запаси | Складські залишки | SCM → SkyPlanner | Щогодини або під час розрахунку розкладу |
| Рядки замовлень на закупівлю з датою поставки | Очікувані надходження матеріалів; запаси оновлюються, коли замовленню на закупівлю присвоєно статус Delivered | SCM → SkyPlanner | Щогодини або під час розрахунку розкладу |
| Заплановані дата й час початку та завершення і виробничий ресурс кожної технологічної операції маршруту | Заплановані початок, завершення та робочий центр для кожної технологічної операції | SkyPlanner → SCM | У разі зміни розкладу, через вебхук SkyPlanner |
| Журнал маршрутних карток (ProdRouteCardProductionJournalEntryEntity: RegisteredHours, ReportedGoodInventoryQuantity) | Записи обліку часу та кількість продукції | SkyPlanner → SCM | За кожним підтвердженням або за кожну зміну, якщо вибрано цей варіант |
| Налаштування обмежень у SkyPlanner | Матриця часу переналагодження, інструменти як обмежені виробничі ресурси, кількість операторів, альтернативні виробничі ресурси | Ведеться у SkyPlanner | Налаштовується під час впровадження |
Схеми інтеграції
1. Початкове завантаження основних даних. Завантажте виробничі ресурси, їхні групи, календарі, випущені продукти, маршрути та BOM. Для обсягів у сотні тисяч записів використовуйте API пакетного обміну даними, а для менших — посторінкове завантаження через OData. Зіставте кожен виробничий ресурс SCM із робочим центром SkyPlanner. Не обмежуйтеся зіставленням груп: календарне планування технологічних операцій резервує групи, але в цеху роботу виконують конкретні виробничі ресурси.
2. Синхронізація замовлень. Зчитуйте затверджені виробничі замовлення зі статусами, за які відповідає SkyPlanner, зазвичай Scheduled і Released, разом із технологічними операціями та завданнями маршруту й рядками BOM. Також зчитуйте відкриті рядки замовлень на закупівлю. SkyPlanner вважає замовлений матеріал доступним на дату поставки із замовлення на закупівлю та оновлює запаси, коли цьому замовленню присвоєно статус Delivered.
Не включайте планові виробничі замовлення, якщо їх явно не передбачено обсягом інтеграції. Planning Optimization створює їх заново під час кожного запуску.
3. Зворотний запис розкладу. Для кожної технологічної операції, яку рушій розмістив або переніс, SkyPlanner записує заплановані дату й час початку та завершення і виробничий ресурс у технологічну операцію маршруту. Для цього використовуються назви полів із /data/$metadata вашого середовища. Зміни передаються пакетними наборами змін OData, тож результат одного розрахунку розкладу записується як одне узгоджене оновлення.
4. Підтвердження з цеху. Оператори реєструють роботу через SkyPlanner Mobile Confirmations або Production Timer, а записи обліку часу підтримують актуальність розкладу. Години й кількість придатної продукції можуть передаватися назад як рядки журналу маршрутних карток. Функцію Report as finished і далі використовуйте там, де й зараз: у SCM або Production floor execution.
Для кожного проведення виберіть один канал. Якщо реєструвати ті самі години і зі SkyPlanner, і з Production floor execution, вони дублюватимуться.
5. Відповідальність за дані та правила розв’язання конфліктів. Зафіксуйте їх до запуску:
| Дані | Відповідальна система |
|---|---|
| Продукти, BOM, маршрути, кількість, статус замовлення, розрахунок собівартості | Supply Chain Management |
| Планові виробничі замовлення | Planning Optimization |
| Послідовність технологічних операцій, заплановані початок і завершення, призначення виробничих ресурсів | SkyPlanner |
| Матриця часу переналагодження, інструменти, кількість операторів, альтернативні виробничі ресурси | SkyPlanner |
| Зміни та відсутність працівників | Одна система, вибрана під час визначення обсягу |
| Проведення відпрацьованих годин і випуску продукції | Supply Chain Management; за вибраного варіанта — на основі записів обліку часу SkyPlanner |
Основне джерело конфліктів — власний механізм планування виробничих завдань у SCM. Якщо планувальник змінює графік замовлення в SCM, дати SkyPlanner перезаписуються. Для замовлень, якими керує SkyPlanner, використовуйте IsProductionOrderSchedulingLocked у заголовку виробничого замовлення. Будь-яке замовлення, змінене в SCM, вважайте новою версією та синхронізуйте повторно. Коли у виробництві відбуваються зміни, Autopilot автоматично перебудовує графік.
Що входить до проєкту
Впровадження зазвичай завершується протягом кількох тижнів від початку підключення. Перед цим ви можете працювати з власними даними протягом 30-денного безкоштовного пробного періоду. Експортуйте виробничі ресурси, технологічні маршрути й відкриті виробничі замовлення через проєкт експорту в модулі Data management або надбудову Excel, імпортуйте їх у форматі CSV чи Excel та перевірте графік.
- Визначення обсягу. Узгодьте таблицю зіставлення, статуси, якими керує SkyPlanner, частоту синхронізації та канал проведення даних.
- Доступ. Зареєструйте застосунок Entra ID, зіставте його з користувачем SCM із ролями, що надають мінімально необхідні права, та перевірте імена публічних сутностей у
/data/$metadata. Спочатку зробіть це в тестовому середовищі, потім — у робочому. - Початкове завантаження. Виробничі ресурси, календарі, випущені продукти, технологічні маршрути, специфікації BOM.
- Синхронізація замовлень і замовлень на закупівлю. Періодичні запити змінених записів із
$filter, а також бізнес-події, якщо вони є у вашому каталозі. - Налаштування обмежень у SkyPlanner. Матриця часу переналагодження, інструменти, кількість операторів та альтернативні верстати чи працівники.
- Зворотний запис графіка. Пакетне оновлення технологічних операцій маршруту та блокування планування для замовлень, якими керує SkyPlanner.
- Паралельне тестування. Використовуйте SkyPlanner паралельно з поточним планом, порівнюйте дати й виправляйте основні дані.
- Запуск у роботу. Увімкніть зворотний запис, коли дані узгоджуватимуться.
Що врахувати під час інтеграції з Dynamics 365 SCM
- Подвійне врахування ефективності. SCM розраховує час за формулою “Scheduling time = Time x 100 / Efficiency percentage.” (Формула коригує час планування відповідно до відсотка ефективності.) Зіставте ефективність з ефективністю робочого центру SkyPlanner лише один раз. Не застосовуйте її повторно до вже скоригованого часу.
- Календарі прив’язані до груп виробничих ресурсів. Зчитуйте призначення календарів як для групи, так і для кожного виробничого ресурсу, інакше дані про потужність розходитимуться.
- Планування технологічних операцій і виробничих завдань. Замовлення, сплановані на рівні технологічних операцій, не мають часу початку й завершення та конкретного виробничого ресурсу. Синхронізуйте технологічні операції маршруту й вимоги до виробничих ресурсів, а не лише дати.
- Параметри обмеження потужності. Виробничі ресурси, для яких Finite capacity має значення No, можуть бути перевантажені в SCM. У SkyPlanner моделюйте кожне реальне обмеження як обов’язкову межу потужності.
- 32 виробничі ресурси на технологічну операцію. У SCM під час планування виробничих завдань діє обмеження: 32 виробничі ресурси на технологічну операцію. У SkyPlanner альтернативи задаються через групи робочих центрів та альтернативні робочі центри.
- Сторінкова видача й обсяг даних. OData повертає до 10 000 записів на сторінку й розгортає пов’язані дані на один рівень углиб. Для початкового завантаження великих обсягів використовуйте API пакетного обміну даними.
- Юридичні особи. Без
cross-company=trueі фільтрівdataAreaIdна підприємстві з кількома компаніями синхронізуватимуться дані лише компанії за замовчуванням.
Хто налаштовує інтеграцію
Роботи охоплюють зіставлення даних з урахуванням ваших технологічних маршрутів, виробничих ресурсів і налаштувань SCM, а також налаштування обмежень у SkyPlanner: матриці часу переналагодження, інструментів, кількості операторів та альтернативних виробничих ресурсів.
- Команда SkyPlanner налаштовує інтеграцію під час підключення та підтримує її після запуску — як на стороні SkyPlanner, так і для узгоджених сутностей даних SCM. Кожне підприємство використовує D365 SCM по-своєму, і саме тут потрібне розуміння цих особливостей.
- Ваш партнер Dynamics може долучитися. Він знає вашу конфігурацію, розширення та ролі безпеки й може налаштувати застосунок Entra ID та доступ до сутностей. SkyPlanner надає REST API, документацію Swagger/OpenAPI та вебхуки.
- Ваші розробники можуть створювати власні рішення на основі того самого задокументованого REST API, використовуючи токен API. Для початку достатньо токена API, а команда SkyPlanner допоможе за потреби.
Після підключення рушій Arcturus будує графік за актуальними виробничими замовленнями SCM, а заплановані дати записуються в технологічні операції маршруту. Вартість SkyPlanner починається від 199 € на місяць і включає 5 робочих центрів. Оплата — щомісячна. Вартість інтеграції для ваших процесів і потреб розраховується заздалегідь разом із тарифним планом, тож ви бачите повну вартість ще до початку роботи.
Порівняння з власними засобами планування SCM читайте в матеріалі «Планування виробництва в Dynamics 365 SCM з урахуванням реальних потужностей верстатів і персоналу». Загальний огляд доступний на сторінці Dynamics 365 SCM, а інші ERP — у розділі інтеграцій з ERP.
Відгуки виробників про SkyPlanner
2 годекономії щотижня
«Завдяки SkyPlanner ми перейшли від планування виробництва в таблицях Excel до оптимізації виробництва в реальному часі».
Kalle Kalliomäki, фахівець із ланцюгів постачання
UTU · Електрощити та розподільне обладнання
Планування виробництва заощаджує 2 години робочого часу щотижня, а нова черга завдань надходить на лінію за лічені секунди.
+90%до ефективності виробництва
«Ефективність виробництва зросла на 90%».
Abdul Rucyinga, керівник ІТ-відділу
Laboratory & Allied · Фармацевтичне виробництво
Ефективність виробництва зросла на 90%, а створення оптимізованого плану на три місяці для всіх робочих центрів займає менш ніж 30 хвилин.
100%надійності поставок із 2021 року
«SkyPlanner дає нам чітке уявлення про потужності й робить планування передбачуваним».
Dan Berglund, COO/CFO
Opes Corporation · Хімічне та харчове виробництво
Надійність поставок становить 100% протягом усього часу використання SkyPlanner — із 2021 року.
1 000+виробничих замовлень плануються автоматично
«Ми зовсім по-іншому контролюємо виробництво, а наше розуміння потужностей вийшло на цілком інший рівень».
Hannu Ryynänen, генеральний директор
Mamec · Промислові змішувачі, насоси та високотехнологічне контрактне виробництво
Тисячі виробничих замовлень плануються автоматично, а вся організація бачить стан виробництва в реальному часі.
Поширені запитання
Який API D365 SCM використовує інтеграція?
Кінцеву точку REST OData v4 за адресою /data, яка надає доступ до всіх публічних сутностей даних із повною підтримкою створення, читання, оновлення та видалення. Для початкового завантаження великих обсягів використовується API пакетного обміну даними. Бізнес-події забезпечують спрацювання тригерів майже в реальному часі, якщо такі події є у вашому каталозі.
Чи потрібно щось установлювати в Supply Chain Management?
Ні. Інтеграція використовує стандартні сутності даних через OData. Ваш адміністратор реєструє застосунок Microsoft Entra ID та зіставляє його з користувачем SCM, якому призначено потрібні ролі.
Як заплановані дати передаються зі SkyPlanner у Supply Chain Management?
SkyPlanner записує заплановані дату й час початку та завершення, а також виробничий ресурс операції в технологічні операції маршруту виробничого замовлення через пакетні набори змін OData. Замовлення, якими керує SkyPlanner, захищено за допомогою IsProductionOrderSchedulingLocked.
Навіщо підключати SkyPlanner замість налаштування планування виробничих завдань у SCM?
Planning Optimization враховує обмеження потужності лише в межах заданого часового горизонту, а поза ним планує так, ніби потужність необмежена (джерело). Механізм планування виробничих завдань SCM розміщує виробничі замовлення по одному з урахуванням уже зарезервованої потужності, а час переналагодження задається на рівні технологічної операції (джерело). Microsoft також не радить застосовувати зведене планування з обмеженням потужності, коли робочі зміни впливають на доступну потужність (джерело). SkyPlanner планує всі підтверджені замовлення разом, використовуючи матрицю часу переналагодження, а Autopilot автоматично перебудовує графік за кожної суттєвої зміни. Команда SkyPlanner налаштовує та підтримує двосторонню інтеграцію, а ваш партнер Dynamics може відповідати за сторону SCM.
Чи має SkyPlanner складати графік для планових виробничих замовлень?
Зазвичай ні. Planning Optimization щоразу заново створює планові виробничі замовлення. SkyPlanner складає графік для підтверджених виробничих замовлень зі статусами, узгодженими під час визначення обсягу робіт.
Чи працює інтеграція з локально розгорнутою Supply Chain Management?
У локальних розгортаннях інтеграція працює через API пакетного обміну даними, який Microsoft підтримує для такого середовища. На стороні SkyPlanner в обох випадках використовується той самий REST API. Спосіб підключення узгоджується під час визначення обсягу робіт.
Чи можна протестувати SkyPlanner до створення інтеграції?
Так. Протягом 30-денного безкоштовного пробного періоду можна використовувати до 20 робочих центрів та імпортувати дані з Supply Chain Management у форматі CSV чи Excel. Банківська картка не потрібна. Почніть пробний період або зв’яжіться з відділом продажів, щоб визначити обсяг інтеграції.