Інтеграції / ERP / Epicor Kinetic
Посібник з інтеграції Epicor Kinetic для календарного планування виробництва у SkyPlanner APS
Цей посібник пояснює партнерам Epicor, ІТ-командам і фахівцям, які обирають технічні рішення, як використовувати SkyPlanner APS для планування виробництва разом з Epicor Kinetic, щоб розклад враховував реальні потужності обладнання та доступність персоналу. SkyPlanner обмінюється даними з Epicor Kinetic в обох напрямках через власні REST-сервіси Kinetic:
- До SkyPlanner надходять виробничі завдання, технологічні операції, виробничі ресурси та графіки поставок за замовленнями на закупівлю.
- Заплановані дати технологічних операцій передаються назад у виробничі завдання.
- Записи робочого часу операторів передаються назад як дані обліку праці в Kinetic.
- Вебхуки SkyPlanner передають зміни в графіку одразу після їх внесення.
Під час впровадження команда SkyPlanner налаштовує інтеграцію відповідно до вашої конфігурації Kinetic і підтримує її після запуску в експлуатацію. Цей посібник призначений для партнерів і розробників, які хочуть долучитися до роботи або самостійно створити рішення на основі документованого REST API SkyPlanner (довідник API).
Якщо ви ще не визначили, чи задовольняють ваші потреби власний інструмент Kinetic Scheduling and Resource Management або модуль APS, спершу прочитайте статтю «Чи підтримує Epicor Kinetic планування виробництва?».
Інтеграційні можливості Kinetic
Epicor зазначає: “All Kinetic services, including business objects, processes, reports, BAQs, and Epicor Functions, are accessible through REST endpoints.” (Усі сервіси Kinetic, зокрема бізнес-об’єкти, процеси, звіти, BAQ та Epicor Functions, доступні через кінцеві точки REST.) Інтеграція для календарного планування спирається на чотири технології Epicor:
- Kinetic REST API v2 (OData v4). Бізнес-об’єкти доступні як сервіси з іменами
Erp.BO.<Name>Svc. Типовий шлях —/api/v2/odata/{Company}/Erp.BO.{Svc}/{EntitySet}. REST v1 досі доступний, але вже застарілий, тому будуйте інтеграцію на v2. Уточніть набори сутностей і методи для своєї версії в REST Help за адресою/api/help/v2/. - Business Activity Queries (BAQ) через REST. BAQ доступний за адресою
/api/v2/odata/{Company}/BaqSvc/{BAQ}/Data. Це зручний спосіб отримувати дані для планування, об’єднуючиJobHead,JobOper,JobMtl,PartWhseіPORelза один виклик (приклад від спільноти). - Epicor Functions (EFx). Серверні функції, які можна викликати за адресою
/api/v2/efx/{Company}/{Library}/{Function}. Epicor зазначає, що вони “can be triggered from multiple entry points, including BPMs, REST services, schedules, and application events.” (можуть запускатися з різних точок входу, зокрема через BPM, REST-сервіси, за розкладом і за подіями застосунку). - Директиви BPM. Method Directives і Data Directives спрацьовують, коли змінюється виробниче завдання або технологічна операція, і можуть викликати функцію, яка надсилає дані назовні.
Для обміну файлами вхідний імпорт виконується через DMT, а вихідне вивантаження — через експорт BAQ. Epicor також пропонує Epicor Automation Studio, який описує як “a low-code app for integration-led automations” (low-code застосунок для автоматизації на основі інтеграцій). Не використовуйте прямий доступ до бази даних: REST, BAQ та функції працюють однаково в локальному розгортанні й у Kinetic Cloud.
Автентифікація та області доступу
Kinetic REST v2 керує доступом окремо для кожної інтеграції. Кожна інтеграція отримує ключ API, прив’язаний до області доступу з переліком сервісів і методів, які їй дозволено викликати. Epicor формулює це так: “API keys, access scopes, and standard authentication methods control which services and methods are available to each integration.” (Ключі API, області доступу та стандартні методи автентифікації визначають, які сервіси й методи доступні кожній інтеграції.)
Окрім ключа API, сторона, що викликає API, має автентифікуватися як користувач Kinetic. Створіть окремого користувача для інтеграції лише з потрібними їй правами. На боці SkyPlanner REST API використовує автентифікацію JWT і має документацію у Swagger/OpenAPI.
Для інтеграції зі SkyPlanner область доступу зазвичай охоплює:
Erp.BO.JobEntrySvc(JobEntries, JobOpers, GetDatasetForTree)Erp.BO.ResourceGroupSvcіErp.BO.ResourceSvcErp.BO.CapabilitySvcErp.BO.PartSvc(Parts, PartWhses)Erp.BO.EmpBasicSvcErp.BO.ScheduleEngineSvc(GetNewParamsForJob, MoveJobItem, ChangeResource)Erp.BO.LaborSvc(Labors, LaborDtls, StartActivity, EndActivityByEmp)- BAQ та бібліотеки EFx, які ви публікуєте для інтеграції
Якщо метод не входить до області доступу, помилка виникне під час виконання, а не налаштування. Додайте до переліку всі методи, які викликаєте, стежте за строком дії ключа API та налаштуйте сповіщення про помилки HTTP, а не лише про порожні результати.
Виявлення змін: директиви BPM, функції або опитування
Epicor не документує універсального API для вихідних вебхуків, тому зміни з Kinetic потрапляють до SkyPlanner одним із двох способів:
- За подіями. Директива BPM Data Directive для
JobHeadабоJobOperвикликає Epicor Function, яка надсилає змінене виробниче завдання до REST API SkyPlanner. - Опитування за розкладом. BAQ із фільтром за датою зміни запускається кожні кілька хвилин або щогодини. Такий варіант простіше підтримувати й відновлювати після збоїв.
У зворотному напрямку SkyPlanner надсилає зміни стану та розкладу через свої вебхуки. Ваше проміжне ПЗ або кінцева точка EFx приймає їх і записує дані в Kinetic.
Зіставлення даних
| Сутність / сервіс Kinetic | Об’єкт SkyPlanner | Напрямок | Періодичність |
|---|---|---|---|
Part, PartRev (Erp.BO.PartSvc/Parts) | Виріб | З Kinetic до SkyPlanner | Початкове завантаження, далі за розкладом |
PartMtl (технологія виготовлення), JobMtl (виробниче завдання) | Матеріали виробу та замовлення | З Kinetic до SkyPlanner | Разом із виробничим завданням |
PartOpr (технологія виготовлення), JobOper (виробниче завдання) | Технологічні операції | З Kinetic до SkyPlanner | Разом із виробничим завданням |
ResourceGroup, Resource (ResourceGroupSvc, ResourceSvc) | Групи робочих центрів, робочі центри | З Kinetic до SkyPlanner | Початкове завантаження, у разі змін |
Capability (CapabilitySvc) | Альтернативні робочі центри | З Kinetic до SkyPlanner | Початкове завантаження, у разі змін |
| Календарі виробничих ресурсів та їхніх груп | Зміни та винятки | З Kinetic до SkyPlanner | Початкове завантаження, далі щотижня або в разі змін |
EmpBasic (EmpBasicSvc) | Персонал | З Kinetic до SkyPlanner | Початкове завантаження, у разі змін |
JobHead (JobEntrySvc/JobEntries) | Замовлення | З Kinetic до SkyPlanner | У реальному часі через BPM + EFx або періодичне опитування BAQ |
PartWhse через BAQ | Складські залишки | З Kinetic до SkyPlanner | За розкладом |
Замовлення на закупівлю: POHeader, PODetail, PORel через BAQ | Замовлення на закупівлю / очікувані надходження матеріалів (очікувана дата поставки) | З Kinetic до SkyPlanner | За розкладом або в разі зміни замовлення на закупівлю через BPM + EFx |
| Плановий початок і завершення кожної операції | Дати JobOper через ScheduleEngineSvc (MoveJobItem, ChangeResource) у функції EFx | З SkyPlanner до Kinetic | У разі зміни розкладу, через вебхук |
| Записи обліку часу, кількості, перебіг виконання операцій, причини | Labors / LaborDtls через LaborSvc; коди причин через Erp.BO.ReasonSvc | З SkyPlanner до Kinetic | У реальному часі через вебхук |
В Epicor виробниче замовлення називається Job. Зіставте один JobHead з одним замовленням SkyPlanner, а кожен JobOper — з технологічною операцією. Як зовнішній ключ використовуйте номер виробничого завдання, порядковий номер складальної одиниці та порядковий номер операції.
Варіанти інтеграції
1. Початкове завантаження основних даних. Зчитайте номенклатуру, групи виробничих ресурсів, самі ресурси, їхні можливості, календарі та дані працівників. На основі ресурсів Kinetic створіть робочі центри SkyPlanner, а на основі груп ресурсів — групи робочих центрів. Великі обсяги даних зчитуйте посторінково за допомогою $top і $skip або завантажуйте масово через BAQ.
2. Синхронізація замовлень. Передавайте випущені та затверджені виробничі завдання разом з їхніми операціями й матеріалами. Отримуйте дерево завдання за допомогою GetDatasetForTree або BAQ, а не зчитуйте кожну сутність окремо. Незатверджені завдання MRP залишайте в Kinetic до їх затвердження. Одночасно зі зчитуванням складських залишків синхронізуйте відкриті графіки поставок за замовленнями на закупівлю та їхні терміни. SkyPlanner вважає замовлений матеріал доступним на дату поставки й оновлює залишки, коли замовлення на закупівлю отримує статус Delivered. Тому під час складання розкладу перевіряються як складські залишки, так і очікувані закупівлі.
3. Зворотний запис розкладу. Вебхук SkyPlanner надсилає плановий початок, завершення та робочий центр для кожної операції на кінцеву точку EFx (/api/v2/efx/{Company}/{Library}/{Function}). Функція записує дані через механізм календарного планування Kinetic — той самий бізнес-об’єкт, який забезпечує планування в Job Entry та на дошках планування (приклад від спільноти):
ScheduleEngine.GetNewParamsForJobформує набір даних виробничого завдання для механізму календарного планування.- Функція задає номер виробничого завдання, порядкові номери складальної одиниці та операції, а також планову дату й час початку, після чого викликає
ScheduleEngine.MoveJobItem. - Якщо SkyPlanner призначив операцію іншому виробничому ресурсу в групі,
ScheduleEngine.ChangeResourceпереносить її на цей ресурс. Сам по собіMoveJobItemзалишає ресурс групи, заданий за замовчуванням. - Функція блокує розклад виробничого завдання (
JobHead.SchedLocked, параметр Lock у Job Entry), завдяки чому Global Scheduling зберігає дати, визначені SkyPlanner.
Об’єднавши ці виклики в одну Epicor Function, ви забезпечите атомарний запис для кожного виробничого завдання й зможете додати власні перевірки. Якщо підприємство не хоче використовувати спеціально розроблену функцію, ту саму послідовність можна виконати прямими REST-викликами до Erp.BO.ScheduleEngineSvc. Ніколи не записуйте дані безпосередньо в ResourceTimeUsed або поля дат JobOper: це обхід механізму планування, через який розподіл ресурсів на дошках втрачає узгодженість.
4. Підтвердження виконання в цеху. Оператори реєструють роботу в SkyPlanner за допомогою Mobile Confirmations, Production Timer або Quick Log Mode. Кожен закритий запис обліку часу передається в Kinetic як запис трудовитрат через Erp.BO.LaborSvc: StartActivity і EndActivityByEmp — для роботи, що реєструється в реальному часі, або Labors з Update — для записів, внесених після виконання. Якщо на вашому підприємстві потрібне погодження, додайте submitForApproval до процесу обміну та області доступу.
5. Правила відповідальності за дані та розв’язання конфліктів. Зафіксуйте їх до запуску в експлуатацію:
| Дані | Відповідальна система |
|---|---|
| Номенклатура, методи виготовлення, виробничі ресурси, календарі, виробничі завдання, MRP, запаси, розрахунок собівартості | Kinetic |
| Кількості та статус виробничих завдань | Kinetic |
| Послідовність технологічних операцій, заплановані дати, виробничий ресурс у межах групи | SkyPlanner |
Для виробничих завдань, які планує SkyPlanner, увімкнено блокування розкладу, тому Global Scheduling не змінює їхні дати. Залиште планування в Kinetic для виробничих ресурсів, які не планує SkyPlanner.
Ключі, повторні спроби та звіряння
- Стабільні ключі. Кожен запис містить свій ключ Kinetic: для технологічних операцій — номер виробничого завдання, порядковий номер складальної одиниці та операції; для обліку праці — заголовок і деталізацію запису. Записування виконується за цим ключем як додавання або оновлення, тому повторне повідомлення оновлює запис, а не створює дублікат.
- Повторні спроби. Якщо записування в будь-яку із систем не вдалося, воно повторюється. Дані про працю проводяться лише один раз для кожного ID запису робочого часу SkyPlanner, тому повторна спроба не призведе до подвійного обліку годин.
- Звіряння. BAQ, що запускається за розкладом, порівнює відкриті виробничі завдання, статуси технологічних операцій і кількості з даними SkyPlanner та усуває розбіжності. Наприклад, коли виробниче завдання закрили в Kinetic, поки повідомлення ще передавалося.
- Зміни кількості та скасування. Зміна кількості в Kinetic оновлює замовлення та його технологічні операції у SkyPlanner. Часткове виконання скорочує час, що залишився на обробку. Виробниче завдання, закрите або видалене в Kinetic, вилучається з розкладу під час наступної синхронізації.
Що входить до проєкту
Зазвичай впровадження завершується за кілька тижнів після початку роботи. Проєкт інтеграції з Kinetic охоплює:
- 30-денне пробне використання на основі виробничих завдань, технологічних операцій і виробничих ресурсів, експортованих у CSV або Excel, ще до початку розробки.
- Ключ API, область доступу, окремого користувача для інтеграції та BAQ, з яких інтеграція зчитує дані.
- Зіставлення основних даних: виробничих можливостей, груп ресурсів, виробничих ресурсів, календарів і працівників із робочими центрами, групами, змінами та персоналом у SkyPlanner.
- Початкове завантаження номенклатури, методів виготовлення (BOM і технологічних операцій) та виробничих ресурсів.
- Синхронізація виробничих завдань і замовлень на закупівлю (терміни поставки з
PORel), а також складських залишків ізPartWhse. - Зворотний запис планових дат операцій через
ScheduleEngineSvc(MoveJobItem, ChangeResource) в Epicor Function із блокуванням розкладу виробничого завдання. - Підтвердження виконання робіт у цеху передаються як записи трудовитрат через
LaborSvc. - Тестування паралельно з поточним розкладом Kinetic, а потім запуск в експлуатацію.
На що звернути увагу в Kinetic
- Урахування обмежених потужностей налаштовується в кількох місцях. Прапорець Finite міститься в налаштуваннях виробничого ресурсу. Горизонт планування з урахуванням обмежених потужностей задається для ресурсу, групи ресурсів і на вкладці Planning у Site Maintenance. Кожен інструмент календарного планування також має власний прапорець урахування обмежених потужностей. Перш ніж імпортувати дати Kinetic як базові, перевірте, чи взагалі враховувалися обмеження потужностей під час їх розрахунку.
- Capability або Resource Group і Resource. Якщо для технологічної операції вказано виробничу можливість, поля групи ресурсів і ресурсу залишаються порожніми. В іншому разі вказується група ресурсів, іноді з конкретним ресурсом. Ваша інтеграція має зчитувати ці самі поля й самостійно визначати, які виробничі ресурси відповідають указаній можливості.
- Календарі зберігають сліди попередніх налаштувань. Календарі виробничих ресурсів і чисельність працівників часто коригують, щоб вбудований планувальник працював належним чином. Перенесіть у SkyPlanner реальні графіки змін і фактичний склад працівників та дайте йому змогу призначати кількох операторів на виробниче завдання, якщо потрібна бригада.
- Дати змінюють через механізм планування, а не CRUD. Звичайне оновлення дат операцій через
JobEntrySvcне переплановує завдання: в одному повідомленні на форумі описано, як викликJobSchedulingповертає 200 OK, але виробниче завдання залишається без змін. Використовуйте наведену вище послідовність викликівScheduleEngine. - Результат залежить від дисципліни ведення даних. Занижена тривалість технологічних операцій, відсутні дані про строки постачання закуповуваних матеріалів, незакриті виробничі завдання та невраховані в календарях простої погіршують будь-який розклад — як у вбудованому, так і в зовнішньому планувальнику (Bluesky ERP).
Хто налаштовує інтеграцію з Kinetic
Немає двох підприємств, які використовують Kinetic однаково. Технологічні маршрути на основі виробничих можливостей, календарі груп ресурсів, побудова BAQ, директиви BPM та методи зворотного запису для конкретних версій відрізняються на кожному майданчику. Від правильності їх налаштування залежить, чи довірятимуть планувальники розкладу, чи перероблятимуть його.
- Команда SkyPlanner налаштовує інтеграцію під час впровадження та підтримує її після запуску в експлуатацію. Команда зіставляє ваші виробничі ресурси, завдання та графіки поставок за замовленнями на закупівлю, налаштовує зчитування BAQ, тригери BPM і функцію зворотного запису. Вона з’єднує REST API та вебхуки SkyPlanner з Kinetic REST v2. Підтримка триває й тоді, коли змінюються ваші BAQ, BPM або версія Kinetic.
- Ваш партнер Epicor. Партнери, які вже розробляють BAQ, BPM та Epicor Functions, можуть працювати з тим самим документованим REST API SkyPlanner. Він дає змогу читати й записувати замовлення, продукцію, матеріали, технологічні операції та записи робочого часу.
- Ваші власні розробники. Внутрішні команди з досвідом роботи з Kinetic REST можуть створити інтеграцію безпосередньо або в Automation Studio, якщо ви його використовуєте. Для початку достатньо ключа API SkyPlanner (інструкція з інтеграції), а команда SkyPlanner допоможе за потреби. Документація продукту відкрита для всіх у розділі документації SkyPlanner.
Така сама схема з API та вебхуками вже працює в експлуатації з іншими ERP, наприклад у UTU. У Laboratory & Allied внутрішня ІТ-команда розробила інтеграцію із SAP Business One переважно власними силами за допомогою SkyPlanner.
Кожен варіант починається однаково: спершу скористайтеся 30-денним безкоштовним пробним періодом з імпортом CSV, перевірте розклад на практиці, а потім створюйте інтеграцію. Вартість — від 199 € на місяць за 5 робочих центрів, з щомісячною оплатою та можливістю скасування будь-коли. Вартість інтеграції розраховується заздалегідь з урахуванням ваших процесів і потреб та надається разом із вартістю тарифного плану, тож ви бачите повну суму ще до початку роботи.
Чому варто обрати це рішення замість ліцензії Kinetic APS
Для фахівця, який обирає технічне рішення, головне в порівнянні — обсяг робіт і те, як швидко рішення дасть результат. Обирайте SkyPlanner, якщо:
- Обсяг інтеграції має бути невеликим. Виробничі завдання, технологічні операції, виробничі ресурси й матеріали передаються назовні. Заплановані дати та дані обліку праці повертаються назад. Наведене вище зіставлення даних охоплює весь обсяг інтеграції.
- Розклад має реагувати на зміни між запусками планування. Arcturus за секунди формує план виробництва з урахуванням реальних потужностей обладнання та доступності персоналу, а Autopilot автоматично переплановує його, коли на виробництві відбуваються зміни. Вебхуки SkyPlanner надсилають кожну зміну, тому Kinetic отримує нові дати без запуску Global Scheduling.
- Цехова звітність має поповнювати облік трудовитрат у Kinetic. Оператори реєструють роботу з телефона або планшета за допомогою Mobile Confirmations, Production Timer і Quick Log Mode, а запис через
LaborSvcє частиною тієї самої інтеграції. - Виконання виробничих завдань залежить від закуплених матеріалів. Розклад враховує і складські запаси, і відкриті графіки поставок за замовленнями на закупівлю, тож технологічні операції починаються тоді, коли матеріал справді має надійти.
- Вам потрібно враховувати більше ніж два обмеження. Кілька операторів на одному виробничому завданні, інструменти, недоступні під час використання в іншому місці, альтернативні робочі центри та працівники — усе враховано в одному розкладі. Матриця часу переналагодження визначає послідовність переналагоджень, а інтеграція записує результат назад.
- Ви хочете перевірити результат до початку проєкту й швидко його реалізувати. Пробний період дає змогу побачити власний розклад на основі експорту BAQ, із підтримкою до 20 робочих центрів і без банківської картки. Зазвичай впровадження завершується за кілька тижнів після початку роботи.
Перегляньте можливості, відгуки клієнтів або запишіться на демонстрацію.
Відгуки виробників про SkyPlanner
2 годзаощаджено щотижня
«Завдяки SkyPlanner ми перейшли від планування виробництва в таблицях Excel до оптимізації виробництва в реальному часі».
Kalle Kalliomäki, фахівець із ланцюга постачання
UTU · Електричні щити та розподільні пристрої
Планування виробництва заощаджує 2 години робочого часу щотижня, а нова черга завдань надходить на лінію за лічені секунди.
+90%ефективності виробництва
«Ефективність виробництва зросла на 90%».
Abdul Rucyinga, керівник ІТ-відділу
Laboratory & Allied · Фармацевтичне виробництво
Ефективність виробництва зросла на 90%, а складання оптимізованого плану на три місяці для всіх робочих центрів займає менше ніж 30 хвилин.
1 000 і більшевиробничих замовлень плануються автоматично
«Тепер ми по-іншому контролюємо виробництво, а наше розуміння виробничих потужностей вийшло на зовсім інший рівень».
Hannu Ryynänen, генеральний директор
Mamec · Промислові змішувачі, насоси та високотехнологічне контрактне виробництво
Тисячі виробничих замовлень плануються автоматично, а вся компанія бачить стан виробництва в реальному часі.
99,2%надійність поставок
«Завдяки SkyPlanner ми чітко бачимо вузькі місця, а управління виробництвом стало зрозумілішим».
Toni Tuori, керівник виробництва
Piristeel · Системи безпеки для покрівель і водостічні системи
Цього року надійність поставок досягла 99,2%, а календарне планування заощаджує до чотирьох годин робочого часу на день.
Поширені запитання
Як SkyPlanner APS інтегрується з Epicor Kinetic?
Обмін даними двосторонній, через Kinetic REST v2, BAQs та Epicor Functions. До SkyPlanner надходять виробничі завдання, технологічні операції, виробничі ресурси та дані про поставки за замовленнями на закупівлю (PO releases). Заплановані дати операцій і дані про трудовитрати передаються назад, а вебхуки надсилають зміни графіка одразу після їх виникнення. Під час впровадження команда SkyPlanner налаштовує інтеграцію відповідно до вашої конфігурації Kinetic. Ваш партнер Epicor або розробники можуть використовувати той самий REST API.
Який API Kinetic слід використовувати для інтеграції з календарним плануванням?
REST v2. Використовуйте JobEntrySvc для виробничих завдань і операцій, ResourceGroupSvc, ResourceSvc та CapabilitySvc — для виробничих потужностей, BAQ — для масового зчитування, а LaborSvc — для зворотного запису виконаної роботи.
Чи підтримує Epicor Kinetic вебхуки?
Універсального API для вихідних вебхуків немає. Надсилання даних за подіями реалізується через директиви BPM, які викликають Epicor Functions. Інший варіант — опитувати BAQ за розкладом.
Чи може SkyPlanner записувати заплановані дати у виробничі завдання Kinetic?
Так. Epicor Function викликає ScheduleEngine.GetNewParamsForJob, потім MoveJobItem для кожної операції та ChangeResource, якщо виробничий ресурс змінився. Далі функція блокує розклад виробничого завдання, щоб Global Scheduling зберігав ці дати. Ті самі виклики можна виконувати безпосередньо через REST до Erp.BO.ScheduleEngineSvc.
Хто підтримує інтеграцію?
Команда SkyPlanner налаштовує інтеграцію під час впровадження та підтримує її після запуску, зокрема коли змінюються ваші BAQs, BPMs або версія Kinetic.
Чи працює інтеграція з локальною інсталяцією Epicor Kinetic?
Так. REST API, BAQs, BPMs та Epicor Functions працюють однаково в локальній інсталяції та хмарній версії Kinetic, тому одне інтеграційне рішення підходить для обох варіантів.
Скільки часу займає інтеграція SkyPlanner APS з Epicor Kinetic?
Зазвичай інтеграцію завершують протягом кількох тижнів після початку впровадження. До обсягу робіт входять описані вище зіставлення даних, початкове завантаження, синхронізація виробничих завдань і замовлень на закупівлю, зворотний запис графіка та реєстрація трудовитрат. Усе це тестують паралельно з вашим поточним графіком.