Integracja z systemami wykonywania produkcji innych firm
Niektóre organizacje produkcyjne korzystające z Microsoft Dynamics 365 Supply Chain Management używają natywnej funkcji Dynamics 365 do kontrolowania swoich działań produkcyjnych dotyczących maszyn, sprzętu i personelu. Jednak inne organizacje produkcyjne, zwłaszcza te, które mają zaawansowane wymagania produkcyjne, używają zamiast tego systemu realizacji produkcji innej firmy (MES). Organizacje mogą wybrać rozwiązanie MES innej firmy, ponieważ na przykład jest ono specjalnie dostosowane do ich branży.
W zintegrowanym rozwiązaniu wymiana danych jest w pełni automatyczna i odbywa się w najbliższym czasie rzeczywistym. Dlatego dane są przechowywane w obu systemach i nie jest wymagane ręczne wprowadzanie danych. Na przykład podczas rejestrowania zużycia materiałów w systemie MES integracja zapewnia, że to samo zużycie jest także rejestrowane w systemie Dynamics 365. Z tego względu aktualne rekordy zapasów są dostępne dla innych ważnych procesów, takich jak planowanie i sprzedaż.
Dzięki temu łatwiejsze i tańsze rozwiązanie ułatwia użytkownikom Supply Chain Management integrację z usługami MES innych firm. Oferuje następujące funkcje:
- Zdarzenia biznesowe i interfejsy obsługi kluczowych procesów wytwarzania
- Scentralizowany pulpit nawigacyjny, w którym można śledzić historię przetwarzania zdarzeń oraz rozwiązywać problemy i naprawiać procesy, które nie powiodły się
Na poniższej ilustracji przedstawiono typowy zbiór zdarzeń biznesowych, procesów i komunikatów wymienianych w zintegrowanym rozwiązaniu.
Włącz funkcję integracji MES
Zanim będziesz mógł korzystać z tej funkcji, administrator musi ją włączyć w twoim systemie w sposób opisany w poniższej procedurze.
- Wybierz kolejno opcje Administrowanie systemem > Ustawienia > Konfiguracja licencji.
- Upewnij się, że klucz licencyjny Czas i obecność jest włączony (ma zaznaczoną opcję). Ten klucz licencyjny jest wymagany, ponieważ kontroluje on funkcjonalność i dane systemu wykonawczego produkcji. Jeśli nie jest ona włączona, wykonaj następujące kroki:
- Ustaw system w trybie konserwacji, jak to opisano w sekcji Tryb konserwacji.
- Na stronie Konfiguracja licencji zaznacz pole wyboru Czas i obecność.
- Wyłącz tryb konserwacji, jak to opisano w sekcji Tryb konserwacji
- Wybierz kolejno opcje Administrator systemu > Obszary robocze > Zarządzanie funkcjami.
- Obszar roboczy Zarządzanie funkcjami umożliwia włączenie funkcji integracji systemu Wykonania produkcji. (Od wersji Supply Chain Management 10.0.29 ta funkcja jest domyślnie włączona. Od 10.0.32 Supply Chain Management jest obowiązkowa i nie może być wyłączona).
Procesy dostępne dla integracji MES
Można włączyć dowolny z następujących procesów integracji.
Nazwa procesu | Opis |
---|---|
Zwalnianie zdarzeń biznesowych dla zleceń produkcyjnych i stanu zlecenia produkcyjnego | Ten proces jest zdarzeniem biznesowym, na które może nasłuchiwać program MES, w celu uzyskania informacji o zleceniach produkcyjnych, które powinny zostać wyprodukowane. Dane referencyjne powiązane ze zleceniem produkcyjnym powinny zostać udostępnione z Supply Chain Management do systemu MES za pośrednictwem protokołu Open Data Protocol (OData) lub jednostek danych. |
Rozpocznij zlecenie produkcyjne | Ten proces dostarcza działowi Supply Chain Management informacji o zleceniach produkcyjnych, które są uruchamiane przy użyciu systemu MES. Zapewnia to, że oba systemy mają aktualny widok wszystkich działań produkcyjnych. |
Zgłoś ilość wyprodukowaną lub odpadki | Ten proces dostarcza działowi Supply Chain Management informacji o ilościach towarów i błędów zgłoszonych w zadaniu produkcyjnym za pomocą systemu MES. Zapewnia to, że kierownicy hali produkcyjnej mają aktualny wgląd w postęp planu produkcji. |
Zgłoś zużycie materiałów | Proces ten dostarcza działowi Supply Chain Management informacji z systemu MES o ilości zużywanych materiałów. Udostępnia aktualne ewidencje zapasów dla innych ważnych procesów, takich jak planowanie i sprzedaż. |
Zgłoś czas zużyty na operację | Ten proces dostarcza działowi Supply Chain Management informacji o czasie używanym do wykonania określonej operacji. |
Kończenie zlecenia produkcyjnego | Ten proces informuje Supply Chain Management, że system MES zaktualizował zlecenie produkcyjne do ostatecznego statusu Zakończone. Ten stan wskazuje, że dla tego zlecenia produkcyjnego nie zostanie wyprodukowana więcej ilości. |
Monitorowanie komunikatów przychodzących
Aby monitorować przychodzące komunikaty MES do systemu, przejdź Kontrola produkcji > Ustawienia > Realizacja produkcji > Integracja systemów realizacji produkcji.
Wszystkie komunikaty dotyczące określonego zlecenia produkcyjnego są przetwarzane w kolejności ich odejmowania. Jednak wiadomości dla różnych zleceń produkcyjnych mogą nie być przetwarzane w sekwencji odebranych, ponieważ zadania wsadowe są przetwarzane równolegle. W przypadku awarii zadanie wsadowe będzie próbowało przetworzyć każdy komunikat trzy razy przed ustawieniem stanu Niepowodzenie.
Strona Integracja systemów realizacji produkcji działa w taki sam sposób, jak strona Komunikaty procesora komunikatów i reprezentuje bardzo podobne funkcje. (Obok innych typów wiadomości są w nim także wyświetlane komunikaty MES). Aby uzyskać więcej informacji na temat używania każdej strony do przeglądania komunikatów, wyszukiwania i poprawiania komunikatów oraz innych informacji, zobacz stronę Komunikaty procesora komunikatów
Wywołaj interfejs API
Aby wywołać interfejs API integracji MES, wyślij żądanie POST
do następującego adresu URL punktu końcowego:
/api/services/SysMessageServices/SysMessageService/SendMessage
Treść wysyłanych żądań powinna przypominać poniższy przykład. Zamień wartości dla _companyId
, _messageType
i _messageContent
w razie potrzeby. Aby uzyskać informacje dotyczące różnych typów wiadomości, które obsługuje interfejs API, oraz sposobu projektowania ich zawartości, zobacz następną sekcję.
{
"_companyId": "USMF",
"_messageQueue": "JmgMES3P",
"_messageType": "ProdProductionOrderReportFinished",
"_messageContent":
"{\"ProductionOrderNumber\": \"P000123\", \"ReportFinishedLines\": [{\"ItemNumber\": \"A0001\", \"ReportedGoodQuantity\": 10, \"ReportAsFinishedDate\": \"2021-01-01\"}]}"
}
Typy i zawartość komunikatów API
W tej sekcji opisano każdy typ wiadomości, który można wymieniać za pośrednictwem interfejsu API integracji MES.
Komunikat o uruchomieniu zlecenia produkcyjnego
W komunikacie o rozpoczęciu zlecenia produkcyjnego wartość _messageType
to ProdProductionOrderStart
. W poniższej tabeli przedstawiono pola, które obsługuje ta wiadomość.
Nazwa pola | Stan | Typ |
---|---|---|
ProductionOrderNumber |
Wymagana | Ciąg |
StartedQuantity |
Opcjonalnie | Rzeczywisty |
StartedDate |
Opcjonalnie | Data |
AutomaticBOMConsumptionRule |
Opcjonalnie | Enum (FlushingPrincip | Always | Never) |
Zgłoś jako gotową wiadomość
W przypadku komunikatu gotowego wartość _messageType
to ProdProductionOrderReportFinished
. W poniższej tabeli przedstawiono pola, które obsługuje ta wiadomość.
Nazwa pola | Stan | Typ |
---|---|---|
ProductionOrderNumber |
Wymagana | Ciąg |
ReportFinishedLines |
Wymagana | Lista wierszy (przynajmniej jedna), z których każda zawiera ładunek opisany w następnej tabeli |
W poniższej tabeli przedstawiono pola, które obsługuje każdy wiersz w sekcji ReportFinishedLines
komunikatu ProdProductionOrderReportFinished
.
Nazwa pola | Stan | Typ |
---|---|---|
LineNumber |
Opcjonalnie | Rzeczywisty |
ItemNumber |
Opcjonalnie | Ciąg |
ProductionType |
Opcjonalnie | Enum (MainItem | Formula | BOM | Co_Product | By_Product | None), extensible |
ReportedErrorQuantity |
Opcjonalnie | Rzeczywisty |
ReportedGoodQuantity |
Opcjonalnie | Rzeczywisty |
ReportedErrorCatchWeightQuantity |
Opcjonalnie | Rzeczywisty |
ReportedGoodCatchWeightQuantity |
Opcjonalnie | Rzeczywisty |
AcceptError |
Opcjonalnie | Wyliczenie (Tak | Nie) |
ErrorCause |
Opcjonalnie | Enum (None | Material | Machine | OperatingStaff), extensible |
ExecutedDateTime |
Opcjonalnie | Data/godzina |
ReportAsFinishedDate |
Opcjonalnie | Data |
AutomaticBOMConsumptionRule |
Opcjonalnie | Enum (FlushingPrincip | Always | Never) |
AutomaticRouteConsumptionRule |
Opcjonalnie | Enum (RouteDependent | Always | Never) |
RespectFlushingPrincipleDuringOverproduction |
Opcjonalnie | Wyliczenie (Tak | Nie) |
JournalNameId |
Opcjonalnie | Ciąg |
PickingListJournalNameId |
Opcjonalnie | Ciąg |
RouteCardJournalNameId |
Opcjonalnie | Ciąg |
FromOperationNumber |
Opcjonalnie | Wartość całkowita |
ToOperationNumber |
Opcjonalnie | Wartość całkowita |
InventoryLotId |
Opcjonalnie | Ciąg |
BaseValue |
Opcjonalnie | Ciąg |
EndJob |
Opcjonalnie | Wyliczenie (Tak | Nie) |
EndPickingList |
Opcjonalnie | Wyliczenie (Tak | Nie) |
EndRouteCard |
Opcjonalnie | Wyliczenie (Tak | Nie) |
PostNow |
Opcjonalnie | Wyliczenie (Tak | Nie) |
AutoUpdate |
Opcjonalnie | Wyliczenie (Tak | Nie) |
ProductColorId |
Opcjonalnie | Ciąg |
ProductConfigurationId |
Opcjonalnie | Ciąg |
ProductSizeId |
Opcjonalnie | Ciąg |
ProductStyleId |
Opcjonalnie | Ciąg |
ProductVersionId |
Opcjonalnie | Ciąg |
ItemBatchNumber |
Opcjonalnie | Ciąg |
ProductSerialNumber |
Opcjonalnie | Ciąg |
LicensePlateNumber |
Opcjonalnie | Ciąg |
InventoryStatusId |
Opcjonalnie | Ciąg |
ProductionWarehouseId |
Opcjonalnie | Ciąg |
ProductionSiteId |
Opcjonalnie | Ciąg |
ProductionWarehouseLocationId |
Opcjonalnie | Ciąg |
InventoryDimension1 do InventoryDimension12 |
Opcjonalnie | Ciąg |
12 rozszerzalnych wymiarów (od InventoryDimension1
do InventoryDimension12
) wymaga dostosowania i nie zawsze są używane. Aby uzyskać więcej informacji o tych wymiarach, zobacz temat Dodawanie nowych wymiarów magazynowych za pomocą rozszerzenia.
Komunikat zużycia materiału (lista pobrania)
W przypadku komunikatu o zużyciu materiału (lista pobrania) wartość _messageType
wynosi ProdProductionOrderPickingList
. W poniższej tabeli przedstawiono pola, które obsługuje ta wiadomość.
Nazwa pola | Stan | Typ |
---|---|---|
ProductionOrderNumber |
Wymagana | Ciąg |
JournalNameId |
Opcjonalnie | Ciąg |
PickingListLines |
Wymagana | Lista wierszy (przynajmniej jedna), z których każda zawiera ładunek opisany w następnej tabeli |
W poniższej tabeli przedstawiono pola, które obsługuje każdy wiersz w sekcji PickingListLines
komunikatu ProdProductionOrderPickingList
.
Nazwa pola | Stan | Typ |
---|---|---|
ItemNumber |
Wymagana | Ciąg |
ConsumptionBOMQuantity |
Opcjonalnie | Rzeczywisty |
ProposalBOMQuantity |
Opcjonalnie | Rzeczywisty |
ScrapBOMQuantity |
Opcjonalnie | Rzeczywisty |
BOMUnitSymbol |
Opcjonalnie | Ciąg |
ConsumptionInventoryQuantity |
Opcjonalnie | Rzeczywisty |
ProposalInventoryQuantity |
Opcjonalnie | Rzeczywisty |
ConsumptionCatchWeightQuantity |
Opcjonalnie | Rzeczywisty |
ProposalCatchWeightQuantity |
Opcjonalnie | Rzeczywisty |
ConsumptionDate |
Opcjonalnie | Data |
OperationNumber |
Opcjonalnie | Wartość całkowita |
LineNumber |
Opcjonalnie | Rzeczywisty |
PositionNumber |
Opcjonalnie | Ciąg |
IsConsumptionEnded |
Opcjonalnie | Wyliczenie (Tak | Nie) |
ErrorCause |
Opcjonalnie | Enum (None | Material | Machine | OperatingStaff), extensible |
InventoryLotId |
Opcjonalnie | Ciąg |
Czas używany dla komunikatu operacji (karta marszruty)
Dla czasu używanego dla komunikatu operacji (karta marszruty) wartość _messageType
wynosi ProdProductionOrderRouteCard
. W poniższej tabeli przedstawiono pola, które obsługuje ta wiadomość.
Nazwa pola | Stan | Typ |
---|---|---|
ProductionOrderNumber |
Wymagana | Ciąg |
JournalNameId |
Opcjonalnie | Ciąg |
RouteCardLines |
Wymagana | Lista wierszy (przynajmniej jedna), z których każda zawiera ładunek opisany w następnej tabeli |
W poniższej tabeli przedstawiono pola, które obsługuje każdy wiersz w sekcji RouteCardLines
komunikatu ProdProductionOrderRouteCard
.
Nazwa pola | Stan | Typ |
---|---|---|
OperationNumber |
Wymagana | Wartość całkowita |
OperationPriority |
Opcjonalnie | Enum (Primary | Secondary1 | Secondary2 | ... | Secondary20) |
OperationId |
Opcjonalnie | Ciąg |
OperationsResourceId |
Opcjonalnie | Ciąg |
Worker |
Opcjonalnie | Ciąg |
HoursRouteCostCategoryId |
Opcjonalnie | Ciąg |
QuantityRouteCostCategoryId |
Opcjonalnie | Ciąg |
HourlyRate |
Opcjonalnie | Rzeczywisty |
Hours |
Opcjonalnie | Rzeczywisty |
GoodQuantity |
Opcjonalnie | Rzeczywisty |
ErrorQuantity |
Opcjonalnie | Rzeczywisty |
CatchWeightGoodQuantity |
Opcjonalnie | Rzeczywisty |
CatchWeightErrorQuantity |
Opcjonalnie | Rzeczywisty |
QuantityPrice |
Opcjonalnie | Rzeczywisty |
ProcessingPercentage |
Opcjonalnie | Rzeczywisty |
ConsumptionDate |
Opcjonalnie | Data |
TaskType |
Opcjonalnie | Enum (QueueBefore | Setup | Process | Overlap | Transport | QueueAfter | Burden) |
ErrorCause |
Opcjonalnie | Enum (None | Material | Machine | OperatingStaff), extensible |
OperationCompleted |
Opcjonalnie | Wyliczenie (Tak | Nie) |
BOMConsumption |
Opcjonalnie | Wyliczenie (Tak | Nie) |
ReportAsFinished |
Opcjonalnie | Wyliczenie (Tak | Nie) |
Komunikat o zakończeniu zlecenia produkcyjnego
W zakończ zlecenie produkcyjne wartość _messageType
to ProdProductionOrderEnd
. W poniższej tabeli przedstawiono pola, które obsługuje ta wiadomość.
Nazwa pola | Stan | Typ |
---|---|---|
ProductionOrderNumber |
Wymagana | Ciąg |
ExecutedDateTime |
Opcjonalnie | Data/godzina |
EndedDate |
Opcjonalnie | Data |
UseTimeAndAttendanceCost |
Opcjonalnie | Wyliczenie (Tak | Nie) |
AutoReportAsFinished |
Opcjonalnie | Wyliczenie (Tak | Nie) |
AutoUpdate |
Opcjonalnie | Wyliczenie (Tak | Nie) |
Inne informacje o produkcji
Komunikaty obsługują akcje lub zdarzenia, które mają miejsce w sklepie. Są one przetwarzane przy użyciu struktury integracji MES opisanej w tym artykule. Projekt zakłada, że inne informacje referencyjne, które będą udostępniane MES (takie jak informacje związane z produktem, zestawienie materiałów lub trasa (wraz z konkretnymi czasami ustawienia i konfiguracji) użyte w określonym zleceniu produkcyjnym) zostaną pobrane z systemu przy użyciu encji danych przez transfer plików lub OData.
Otrzymywanie informacji zwrotnych o stanie wiadomości
Po wysłaniu przez system MES wiadomości do Supply Chain Management może być istotne, aby dział zarządzania łańcuchem dostaw zwrócił informację zwrotną o stanie wiadomości. Oto kilka przykładów przypadków, w których to zachowanie może mieć znaczenie:
- Nie ma osoby, która byłaby odpowiedzialna za stały nadzór nad integracją MES.
- Osoba odpowiedzialna za nadzór nad integracją MES chce być powiadamiana e-mailem o niepowodzeniu wiadomości, aby wiedziała, że musi podjąć działania.
- W programie MES musi zostać wyświetlony komunikat o błędzie, aby poinformować operatora wydziału lub dział IT o tym, że muszą podjąć akcję.
- MES musi ponownie obliczyć harmonogram zamówień po otrzymaniu komunikatu o niepowodzeniu (na przykład z powodu niepowodzenia uruchomienia zlecenia produkcyjnego).
W takich przypadkach można skorzystać ze standardowej funkcji alertu w Supply Chain Management. Aby uzyskać informacje na temat działania standardowych alertów, zobacz następujące zasoby:
- Artykuł pomocy: Omówienie alertów
- Film: reguły powiadomień w aplikacjach finansowych i operacyjnych
Na przykład można skonfigurować następujące alerty w celu podania informacji zwrotnych o stanie wiadomości:
- Utwórz zdarzenie biznesowe („Wyślij z zewnątrz”) używane w przypadku komunikatu Niepowodzenie.
- Wyślij powiadomienie i wiadomość e-mail do administratora IT lub kierownika ds. produkcji.