Integracje / ERP / Microsoft Dynamics 365 Supply Chain Management
Przewodnik po integracji Dynamics 365 Supply Chain Management ze SkyPlanner APS do harmonogramowania produkcji
Ten przewodnik po integracji Dynamics 365 Supply Chain Management pokazuje partnerom i zespołom IT, jak połączyć Microsoft Dynamics 365 Supply Chain Management ze SkyPlanner APS. Integracja SkyPlanner z Dynamics 365 Supply Chain Management działa dwukierunkowo i korzysta ze standardowych jednostek danych tego systemu:
- Do SkyPlanner trafiają zlecenia produkcyjne, operacje i zadania marszruty, wiersze BOM, zasoby produkcyjne, kalendarze, zwolnione produkty, dostępne zapasy oraz wiersze zamówień zakupu.
- Zaplanowane terminy rozpoczęcia i zakończenia oraz wybrany zasób produkcyjny są zapisywane z powrotem w zleceniu produkcyjnym i jego operacjach marszruty.
- Godziny pracy operatorów i ilości wracają przez arkusz karty marszruty.
- Webhooki SkyPlanner przesyłają zmiany w harmonogramie na bieżąco.
Podczas wdrożenia zespół SkyPlanner dostosowuje integrację do konfiguracji Supply Chain Management i zapewnia jej wsparcie po uruchomieniu produkcyjnym. Ten przewodnik jest przeznaczony dla partnerów i programistów, którzy chcą uczestniczyć w pracach lub samodzielnie tworzyć rozwiązania na podstawie udokumentowanego REST API SkyPlanner (dokumentacja API).
Możliwości integracji z Dynamics 365 SCM
Supply Chain Management udostępnia dane przez jednostki danych. W harmonogramowaniu znaczenie mają cztery możliwości:
- Punkt końcowy REST OData v4.
[Your organization's root URL]/dataudostępnia każdą jednostkę danych oznaczoną jako IsPublic, zapewniając pełną obsługę tworzenia, odczytu, aktualizacji i usuwania rekordów. Obsługuje$filter,$count,$orderby,$skip,$top,$selectoraz$expandna pierwszym poziomie. Stronicowaniem steruje serwer, a limit wynosi 10 000 rekordów. Żądania wsadowe mogą grupować zapisy w zestawy zmian. OData działa synchronicznie. (źródło) - API do wsadowego przesyłania danych. Data management package REST API i integracje cykliczne przesyłają duże ilości danych asynchronicznie. Microsoft: „If the volume is more than a few hundred thousand records, use the batch data API.” (Jeśli liczba rekordów przekracza kilkaset tysięcy, użyj API do wsadowego przesyłania danych). Ten interfejs API jest również obsługiwany w środowiskach lokalnych. (źródło)
- Zdarzenia biznesowe. Aplikacje finansowe i operacyjne publikują zdarzenia biznesowe w Azure Service Bus, Event Grid, punktach końcowych HTTPS lub Power Automate. (źródło)
- Usługi niestandardowe i akcje OData. Usługi niestandardowe X++ i powiązane akcje OData uruchamiają logikę biznesową na żądanie.
Integracja SkyPlanner korzysta z punktu końcowego OData do bieżącej wymiany danych, a przy dużym początkowym imporcie używa API do wsadowego przesyłania danych. W Supply Chain Management niczego nie trzeba instalować.
Uwierzytelnianie
Zarejestruj aplikację w Microsoft Entra ID (service principal). W Supply Chain Management powiąż ją z użytkownikiem mającym role zabezpieczeń wymagane przez integrację. Integracja odczytuje dane produkcji, zasobów produkcyjnych i zapasów, a zapisuje dane harmonogramowania zleceń produkcyjnych oraz arkusze. Tokeny są pobierane z Entra ID przy użyciu poświadczeń klienta.
O tym, jakie dane są widoczne dla integracji, decydują dwie zasady:
- Firmy. OData zwraca dane domyślnej firmy, chyba że do żądania dodano
?cross-company=true. W zakładach wielooddziałowych dane filtruje się wedługdataAreaId. - Nazwy publiczne. Podane poniżej nazwy jednostek to nazwy używane w zarządzaniu danymi. Publiczne nazwy kolekcji OData mogą być inne, dlatego odczytaj je z
/data/$metadataw swoim środowisku.
Po stronie SkyPlanner REST API korzysta z uwierzytelniania tokenem API (SkyPlanner Settings > API) i ma dokumentację w formacie Swagger/OpenAPI. Samouczek integracji prowadzi przez pierwsze wywołania.
Mapowanie danych
| Jednostka D365 SCM | Obiekt SkyPlanner | Kierunek | Częstotliwość |
|---|---|---|---|
| Zwolnione produkty (ItemNumber) | Produkty i materiały | SCM → SkyPlanner | Import początkowy, potem przyrostowo |
| Wiersze produkcyjnego BOM (ProdProductionOrderBillOfMaterialsLineEntity), wiersze BOM | Struktura produktu, materiały dla każdego zlecenia | SCM → SkyPlanner | Przy każdej synchronizacji zleceń |
| Marszruta, wersje marszruty, operacje marszruty, właściwości operacji (RouteOperationPropertiesV2Entity) | Etapy procesu z czasami przezbrojenia i wykonania | SCM → SkyPlanner | Import początkowy, potem przy zmianach |
| Zasoby produkcyjne (OpResOperationsResourceEntity), grupy zasobów produkcyjnych, możliwości | Stanowiska robocze, grupy stanowisk roboczych, wskaźniki wydajności | SCM → SkyPlanner | Import początkowy, później sporadycznie |
| Kalendarze czasu pracy, dni kalendarza i przedziały czasowe, przypisania kalendarzy | Zmiany robocze | SCM → SkyPlanner | Codziennie lub prowadzenie zmian roboczych w SkyPlanner |
| Nagłówki zleceń produkcyjnych (ProdProductionOrderHeaderEntity) | Zlecenia z terminami realizacji i statusem | SCM → SkyPlanner | Co kilka minut lub po zdarzeniu biznesowym |
| Operacje marszruty (ProdProductionOrderRouteOperationEntity), zadania marszruty (ProdProductionOrderRouteJobEntity) | Operacje z czasem trwania i wymaganiami dotyczącymi zasobów produkcyjnych | SCM → SkyPlanner | Przy każdej synchronizacji zleceń |
| Dostępne zapasy | Stany magazynowe | SCM → SkyPlanner | Co godzinę lub przy uruchomieniu harmonogramowania |
| Wiersze zamówień zakupu z datą dostawy | Oczekiwane materiały; aktualizacja zapasów po nadaniu zamówieniu zakupu statusu Delivered | SCM → SkyPlanner | Co godzinę lub przy uruchomieniu harmonogramowania |
| Zaplanowane daty i godziny rozpoczęcia i zakończenia oraz zasób produkcyjny dla każdej operacji marszruty | Planowany początek, koniec i stanowisko robocze każdej operacji | SkyPlanner → SCM | Po zmianie harmonogramu, przez webhook SkyPlanner |
| Arkusz karty marszruty (ProdRouteCardProductionJournalEntryEntity: RegisteredHours, ReportedGoodInventoryQuantity) | Wpisy czasu pracy i ilości | SkyPlanner → SCM | Przy każdym potwierdzeniu lub raz na zmianę roboczą, jeśli wybrano tę opcję |
| Konfiguracja ograniczeń w SkyPlanner | Macierz czasów przezbrojeń, narzędzia jako zasoby o ograniczonej dostępności, liczba operatorów, alternatywne zasoby produkcyjne | Dane utrzymywane w SkyPlanner | Konfiguracja podczas wdrożenia |
Schematy integracji
1. Początkowy import danych podstawowych. Zaimportuj zasoby produkcyjne, ich grupy, kalendarze, zwolnione produkty, marszruty i BOM. Przy setkach tysięcy rekordów użyj API do wsadowego przesyłania danych, a przy mniejszych ilościach — stronicowania OData. Każdemu zasobowi produkcyjnemu SCM przypisz stanowisko robocze w SkyPlanner. Nie mapuj wyłącznie grup zasobów: harmonogramowanie operacji rezerwuje grupy, ale na hali praca odbywa się na konkretnych zasobach produkcyjnych.
2. Synchronizacja zleceń. Odczytaj zatwierdzone zlecenia produkcyjne o statusach, za które odpowiada SkyPlanner — zazwyczaj Scheduled i Released — wraz z ich operacjami marszruty, zadaniami marszruty i wierszami BOM. Odczytaj również otwarte wiersze zamówień zakupu. SkyPlanner uznaje zamówiony materiał za dostępny w dniu dostawy podanym w zamówieniu zakupu i aktualizuje zapasy po nadaniu mu statusu Delivered.
Pomiń planowane zlecenia produkcyjne, chyba że zostały wyraźnie objęte zakresem integracji. Planning Optimization generuje je na nowo przy każdym uruchomieniu.
3. Zapis zwrotny harmonogramu. Dla każdej operacji, którą silnik umieścił lub przesunął w harmonogramie, SkyPlanner zapisuje w operacji marszruty zaplanowane daty i godziny rozpoczęcia i zakończenia oraz zasób produkcyjny. Używa przy tym nazw pól z /data/$metadata w danym środowisku. Zmiany są przesyłane w zestawach zmian żądań wsadowych OData, dzięki czemu wynik jednego uruchomienia harmonogramowania jest zapisywany jako jedna spójna aktualizacja.
4. Potwierdzenia z hali produkcyjnej. Operatorzy rejestrują pracę za pomocą SkyPlanner Mobile Confirmations lub Production Timer, a wpisy czasu pracy zapewniają aktualność harmonogramu. Godziny i ilości wyrobów dobrych mogą wracać jako wiersze arkusza karty marszruty. Funkcja Report as finished pozostaje tam, gdzie jest używana obecnie — w SCM lub Production floor execution.
Wybierz jeden kanał dla każdego rodzaju księgowania. Rejestrowanie tych samych godzin ze SkyPlanner i Production floor execution powoduje ich podwójne naliczenie.
5. Odpowiedzialność za dane i zasady rozstrzygania konfliktów. Spisz je przed uruchomieniem produkcyjnym:
| Dane | System odpowiedzialny |
|---|---|
| Produkty, BOM, marszruty, ilości, status zlecenia, kalkulacja kosztów | Supply Chain Management |
| Planowane zlecenia produkcyjne | Planning Optimization |
| Kolejność operacji, zaplanowany początek i koniec, przypisanie zasobów produkcyjnych | SkyPlanner |
| Macierz czasów przezbrojeń, narzędzia, liczba operatorów, alternatywne zasoby produkcyjne | SkyPlanner |
| Zmiany robocze i nieobecności | Jeden system, wybrany podczas określenia zakresu |
| Księgowanie godzin i wielkości produkcji | Supply Chain Management, na podstawie wpisów czasu pracy ze SkyPlanner, jeśli wybrano tę opcję |
Głównym źródłem konfliktów jest harmonogramowanie zadań w samym SCM. Jeśli planista zmieni harmonogram zlecenia w SCM, nadpisze terminy ustalone przez SkyPlanner. W nagłówkach zleceń, za których harmonogram odpowiada SkyPlanner, użyj IsProductionOrderSchedulingLocked. Każde zlecenie zmienione w SCM traktuj jako nową wersję i zsynchronizuj je ponownie. Autopilot automatycznie przelicza harmonogram, gdy zmienia się sytuacja na produkcji.
Co obejmuje projekt
Wdrożenie zwykle kończy się w ciągu kilku tygodni od rozpoczęcia prac wdrożeniowych. Wcześniej możesz skorzystać z 30-dniowego bezpłatnego okresu próbnego na własnych danych. Wyeksportuj zasoby produkcyjne, marszruty i otwarte zlecenia produkcyjne za pomocą projektu eksportu w module zarządzania danymi lub dodatku do programu Excel. Następnie zaimportuj je w formacie CSV lub Excel i sprawdź poprawność harmonogramu.
- Określenie zakresu. Ustal tabelę mapowania, statusy, przy których za harmonogram odpowiada SkyPlanner, częstotliwość synchronizacji i kanał księgowania.
- Dostęp. Zarejestruj aplikację Entra ID, powiąż ją z użytkownikiem SCM z rolami o minimalnych niezbędnych uprawnieniach i potwierdź publiczne nazwy jednostek danych w
/data/$metadata. Najpierw zrób to w środowisku testowym, potem w produkcyjnym. - Początkowe załadowanie danych. Zasoby produkcyjne, kalendarze, zwolnione produkty, marszruty i BOM.
- Synchronizacja zleceń i zamówień zakupu. Cyklicznie pobieraj zmienione rekordy z użyciem
$filteri korzystaj ze zdarzeń biznesowych, jeśli są dostępne w katalogu. - Konfiguracja ograniczeń w SkyPlanner. Macierz czasów przezbrojeń, narzędzia, liczba operatorów oraz alternatywne maszyny lub pracownicy.
- Zapis harmonogramu do SCM. Wsadowe aktualizacje operacji marszruty i blokada harmonogramowania zleceń, za które odpowiada SkyPlanner.
- Testy równoległe. Uruchom SkyPlanner równolegle z bieżącym planem, porównaj terminy i popraw dane podstawowe.
- Uruchomienie produkcyjne. Włącz zapis do SCM, gdy dane będą zgodne.
Co uwzględnić przy integracji z Dynamics 365 SCM
- Podwójne uwzględnienie wydajności. SCM oblicza czas według wzoru „Scheduling time = Time x 100 / Efficiency percentage.” (Wzór na czas harmonogramowania z uwzględnieniem procentu wydajności). Zmapuj wydajność na wydajność stanowiska roboczego w SkyPlanner tylko raz — nie stosuj jej ponownie do już skorygowanych czasów.
- Kalendarze są przypisane do grup zasobów. Odczytuj przypisania kalendarzy zarówno dla grup, jak i poszczególnych zasobów produkcyjnych. Inaczej zdolności produkcyjne nie będą się zgadzać.
- Planowanie operacji a planowanie zadań. Zlecenia zaplanowane na poziomie operacji nie mają godzin rozpoczęcia i zakończenia ani przypisanego konkretnego zasobu produkcyjnego. Synchronizuj operacje marszruty i wymagania dotyczące zasobów produkcyjnych, a nie tylko daty.
- Ustawienia ograniczonej zdolności produkcyjnej. Zasoby produkcyjne z polem Finite capacity ustawionym na No mogą zostać przeciążone w SCM. W SkyPlanner odwzoruj każde rzeczywiste ograniczenie jako ograniczoną dostępność.
- 32 zasoby produkcyjne na operację. W SCM planowanie zadań obsługuje maksymalnie 32 zasoby produkcyjne na operację. W SkyPlanner alternatywy definiuje się za pomocą grup stanowisk roboczych i alternatywnych stanowisk roboczych.
- Stronicowanie i ilość danych. OData zwraca strony po 10 000 rekordów i rozwija relacje o jeden poziom. Do początkowego ładowania dużych ilości danych używaj interfejsu API do wsadowego przesyłania danych.
- Osoby prawne. Bez
cross-company=truei filtrówdataAreaIdw zakładzie działającym w ramach wielu firm synchronizowana będzie tylko firma domyślna.
Kto konfiguruje integrację
Prace obejmują mapowanie zgodne z marszrutami, zasobami produkcyjnymi i konfiguracją SCM oraz konfigurację ograniczeń w SkyPlanner: macierzy czasów przezbrojeń, narzędzi, liczby operatorów i alternatywnych zasobów produkcyjnych.
- Zespół SkyPlanner konfiguruje integrację podczas wdrożenia i zapewnia wsparcie po uruchomieniu produkcyjnym — po stronie SkyPlanner oraz w zakresie uzgodnionych jednostek danych SCM. Każdy zakład korzysta z D365 SCM inaczej i właśnie tutaj przydaje się znajomość tych różnic.
- Twój partner Dynamics może wziąć udział w projekcie. Zna Twoją konfigurację, rozszerzenia i role zabezpieczeń. Może skonfigurować aplikację Entra ID oraz dostęp do jednostek danych. SkyPlanner udostępnia REST API, dokumentację Swagger/OpenAPI i webhooki.
- Twoi programiści mogą rozwijać integrację, korzystając z tego samego udokumentowanego REST API i tokena API. Do rozpoczęcia prac wystarczy token API, a zespół SkyPlanner pomaga w razie potrzeby.
Po połączeniu systemów silnik Arcturus tworzy harmonogram na podstawie aktualnych zleceń produkcyjnych z SCM, a zaplanowane terminy są zapisywane w operacjach marszruty. Cena SkyPlanner zaczyna się od 199 € miesięcznie i obejmuje 5 stanowisk roboczych, z rozliczeniem co miesiąc. Integrację wyceniamy z góry, zgodnie z Twoim procesem i potrzebami, razem z wybranym planem. Dzięki temu znasz pełny koszt przed rozpoczęciem prac.
Sprawdź, jak wypadają w porównaniu funkcje planowania samego SCM, w artykule Harmonogramowanie produkcji w Dynamics 365 SCM z uwzględnieniem ograniczeń zdolności produkcyjnych. Ogólne informacje znajdziesz na stronie Dynamics 365 SCM, a pozostałe systemy ERP — w centrum integracji z ERP.
Rozpocznij bezpłatny okres próbny Porozmawiaj z działem sprzedaży
Opinie producentów o SkyPlanner
2 hoszczędności co tydzień
„Dzięki SkyPlanner przeszliśmy od planowania produkcji w arkuszach Excel do optymalizacji produkcji w czasie rzeczywistym.”
Kalle Kalliomäki, specjalista ds. łańcucha dostaw
UTU · Rozdzielnice i aparatura rozdzielcza
Planowanie produkcji zajmuje o 2 godziny mniej tygodniowo, a nowa kolejka zadań trafia na linię w kilka sekund.
+90%wydajności produkcji
„Wydajność produkcji wzrosła o 90%.”
Abdul Rucyinga, szef działu IT
Laboratory & Allied · Produkcja farmaceutyczna
Wydajność produkcji wzrosła o 90%, a przygotowanie zoptymalizowanego planu na trzy miesiące dla wszystkich stanowisk roboczych zajmuje mniej niż 30 minut.
100%terminowości dostaw od 2021 roku
„SkyPlanner daje nam wgląd w zdolności produkcyjne i sprawia, że planowanie staje się przewidywalne.”
Dan Berglund, COO/CFO
Opes Corporation · Produkcja chemiczna i spożywcza
Terminowość dostaw wynosi 100% przez cały okres korzystania ze SkyPlanner, od 2021 roku.
1 000+zleceń produkcyjnych harmonogramowanych automatycznie
„Mamy zupełnie inną kontrolę nad produkcją, a nasza wiedza o zdolnościach produkcyjnych jest na całkowicie innym poziomie.”
Hannu Ryynänen, prezes
Mamec · Mieszadła przemysłowe, pompy i zaawansowana technologicznie produkcja kontraktowa
Tysiące zleceń produkcyjnych są harmonogramowane automatycznie, a cała organizacja ma wgląd w produkcję w czasie rzeczywistym.
Najczęściej zadawane pytania
Z którego API D365 SCM korzysta integracja?
Z punktu końcowego REST OData v4 pod adresem /data, który udostępnia wszystkie publiczne jednostki danych z pełną obsługą tworzenia, odczytu, aktualizacji i usuwania. Do początkowego ładowania dużych ilości danych służy interfejs API do wsadowego przesyłania danych. Zdarzenia biznesowe umożliwiają wyzwalanie działań niemal w czasie rzeczywistym, jeśli są dostępne w katalogu.
Czy trzeba coś instalować w Supply Chain Management?
Nie. Integracja korzysta ze standardowych jednostek danych przez OData. Administrator rejestruje aplikację Microsoft Entra ID i wiąże ją z użytkownikiem SCM mającym wymagane role.
Jak zaplanowane terminy są zapisywane z powrotem w Supply Chain Management?
SkyPlanner zapisuje zaplanowane daty i godziny rozpoczęcia oraz zakończenia, a także zasób produkcyjny operacji, w operacjach marszruty zlecenia produkcyjnego, korzystając z wsadowych zestawów zmian OData. Zlecenia, za których harmonogram odpowiada SkyPlanner, są chronione za pomocą IsProductionOrderSchedulingLocked.
Dlaczego warto połączyć SCM ze SkyPlanner zamiast dostrajać planowanie zadań w SCM?
Planning Optimization uwzględnia ograniczenia zdolności produkcyjnych tylko w określonym horyzoncie czasowym, a poza nim zakłada nieograniczone zdolności produkcyjne (źródło). Planowanie zadań w SCM umieszcza w harmonogramie po jednym zleceniu produkcyjnym, uwzględniając już zarezerwowane zdolności produkcyjne i traktując przezbrojenie jako czas operacji (źródło). Microsoft odradza przy tym planowanie główne z ograniczonymi zdolnościami produkcyjnymi, gdy zmiany robocze wpływają na ich wielkość (źródło). SkyPlanner harmonogramuje wszystkie zatwierdzone zlecenia razem, korzystając z macierzy czasów przezbrojeń, a Autopilot automatycznie przelicza harmonogram po każdej istotnej zmianie. Zespół SkyPlanner konfiguruje i wspiera dwukierunkową integrację, a Twój partner Dynamics może odpowiadać za stronę SCM.
Czy SkyPlanner powinien harmonogramować planowane zlecenia produkcyjne?
Zwykle nie. Planning Optimization generuje planowane zlecenia produkcyjne od nowa przy każdym uruchomieniu. SkyPlanner harmonogramuje zatwierdzone zlecenia produkcyjne o statusach uzgodnionych podczas określenia zakresu.
Czy integracja działa z lokalną instalacją Supply Chain Management?
W instalacjach lokalnych integracja korzysta z interfejsu API do wsadowego przesyłania danych, który Microsoft obsługuje w tym środowisku. Po stronie SkyPlanner w obu przypadkach działa to samo REST API, a sposób integracji potwierdzamy podczas określenia zakresu.
Czy możemy przetestować SkyPlanner przed zbudowaniem integracji?
Tak. W ramach 30-dniowego bezpłatnego okresu próbnego możesz korzystać z maksymalnie 20 stanowisk roboczych i importować dane z Supply Chain Management w formacie CSV lub Excel. Karta kredytowa nie jest wymagana. Rozpocznij okres próbny lub porozmawiaj z działem sprzedaży, aby określić zakres integracji.