Integration mit Fertigungssteuerungssystemen von Drittanbietern

Einige Fertigungsunternehmen, die Microsoft Dynamics 365 Supply Chain Management verwenden, nutzen die nativen Funktionen in Dynamics 365, um ihre Fertigungsaktivitäten für Maschinen, Ausrüstung und Personal zu steuern. Andere Fertigungsunternehmen, insbesondere solche mit erweiterten Fertigungsanforderungen, verwenden jedoch stattdessen ein Drittanbieter-MES. Unternehmen entscheiden sich möglicherweise für eine MES-Lösung eines Drittanbieters, weil sie beispielsweise speziell auf ihre vertikale Branche zugeschnitten ist.

In der integrierten Lösung erfolgt der Datenaustausch vollautomatisiert und nahezu in Echtzeit. Daher werden die Daten in beiden Systemen aktuell gehalten, und es ist keine manuelle Dateneingabe erforderlich. Wenn beispielsweise der Materialverbrauch im MES erfasst wird, sorgt die Integration dafür, dass derselbe Verbrauch auch in Dynamics 365 erfasst wird. Somit stehen aktuelle Bestandsaufzeichnungen anderen wichtigen Prozessen wie Planung und Verkauf zur Verfügung.

Die Lösung macht es für Supply Chain Management-Benutzer schneller, einfacher und kostengünstiger, sich in MESs von Drittanbietern zu integrieren. Es bietet die folgenden Funktionen:

  • Geschäftsereignisse und Schnittstellen, die Schlüsselprozesse der Fertigungssteuerung unterstützen
  • Ein zentralisiertes Dashboard, in dem Sie den Verlauf der Ereignisverarbeitung verfolgen und fehlgeschlagene Prozesse behandeln und beheben können

Die folgende Abbildung zeigt eine typische Sammlung von Geschäftsereignissen, Prozessen und Nachrichten, die in einer integrierten Lösung ausgetauscht werden.

Typisches Integrationsszenario.

Voraussetzungen

Um in ein Drittanbieter-Produktionsausführungssystem integriert zu werden, muss der Zeit- und Anwesenheitslizenzschlüssel in Supply Chain Management aktiviert sein. Befolgen Sie diese Schritte, um zu prüfen, ob es aktiviert ist, und um es bei Bedarf zu aktivieren:

  1. Gehen Sie zu Systemadministration > Einrichten > Lizenzkonfiguration.
  2. Stellen Sie sicher, dass der Zeit und Anwesenheit-Lizenzschlüssel aktiviert ist (Häkchen). Dieser Lizenzschlüssel ist erforderlich, da er die Funktionalität und Daten des Fertigungssteuerungssystems steuert. Wenn es nicht aktiviert ist, führen Sie die folgenden Schritte aus:
    1. Legen Sie Ihr System in den Wartungsmodus ein, wie in Wartungsmodus beschrieben.
    2. Auf der Seite Lizenzkonfiguration wählen Sie das Zeit und Anwesenheit-Kontrollkästchen aus.
    3. Schalten Sie den Wartungsmodus aus, wie in Wartungsmodus beschrieben.

Verfügbare Prozesse für die MES-Integration

Sie können einen oder alle der folgenden Prozesse für die Integration aktivieren.

Prozessname Description
Produktionsaufträge und Geschäftsereignisse zur Änderung des Produktionsauftragsstatus freigeben Dieser Prozess stellt ein Geschäftsereignis bereit, das das MES abhören kann, um Informationen über die zu produzierenden Produktionsaufträge zu erhalten. Es wird erwartet, dass Referenzdaten, die sich auf den Produktionsauftrag beziehen, von Supply Chain Management über Open Data Protocol (OData) oder Datenentitäten an das MES weitergegeben werden.
Produktionsauftrag starten Dieser Prozess liefert Supply Chain Management Informationen über Produktionsaufträge, die über das MES gestartet werden. Er stellt sicher, dass beide Systeme einen aktuellen Überblick über alle Fertigungsaktivitäten haben.
Produzierte oder verschrottete Menge melden Dieser Prozess liefert Supply Chain Management Informationen über die Gut- und Ausschussmengen, die zu einem Produktionsauftrag mithilfe von MES gemeldet werden. Er stellt sicher, dass die Fertigungsleiter einen aktuellen Überblick über den Fortschritt des Produktionsplans haben.
Materialverbrauch melden Dieser Prozess liefert Supply Chain Management Informationen aus dem MES über die verbrauchten Materialmengen. Er stellt aktuelle Bestandsaufzeichnungen anderen wichtigen Prozessen wie Planung und Verkauf zur Verfügung.
Zeitaufwand für den Vorgang melden Dieser Prozess liefert Supply Chain Management Informationen über die Zeit, die für einen bestimmten Vorgang verwendet wird.
Produktionsauftrag beenden Dieser Prozess informiert Supply Chain Management darüber, dass das MES einen Produktionsauftrag auf den Endstatus Beendet aktualisiert hat. Dieser Status zeigt an, dass auf dem Produktionsauftrag keine Mengen mehr produziert werden.

Eingehende Nachrichten überwachen

Um die eingehenden MES-Nachrichten an das System zu überwachen, gehen Sie zu Produktionssteuerung > Einstellungen > Fertigungssteuerung > Integration des Fertigungssteuerungssystems.

Alle Nachrichten für einen bestimmten Produktionsauftrag werden in der Reihenfolge verarbeitet, in der sie empfangen werden. Allerdings werden Nachrichten für verschiedene Produktionsaufträge möglicherweise nicht in der empfangenen Reihenfolge verarbeitet, da Batch-Jobs parallel bearbeitet werden. Im Falle eines Fehlschlags versucht der Batchauftrag, jede Nachricht dreimal zu verarbeiten, bevor er den Status Fehlgeschlagen festlegt.

Sie Seite Integration des Fertigungssteuerungssystems funktioniert genauso wie die Seite Nachrichtenverarbeitungsmeldungen und stellt eine sehr ähnliche Funktionalität dar. (Es zeigt sogar MES-Nachrichten zusätzlich zu anderen Nachrichtentypen an.) Informationen darüber, wie man eine der beiden Seiten zur Überprüfung von Nachrichten, zum Finden und Beheben von fehlgeschlagenen Nachrichten und mehr nutzt, siehe Nachrichten überwachen und steuern.

Aufrufen der API

Um die MES-Integrations-API aufzurufen, senden Sie eine POST-Anfrage an die folgende Endpunkt-URL:

/api/services/SysMessageServices/SysMessageService/SendMessage

Der Text der Anforderung, die Sie senden, sollte dem folgenden Beispiel ähneln. Ersetzen Sie die Werte für _companyId, _messageType und _messageContent nach Bedarf. Informationen zu den verschiedenen Nachrichtentypen, die die API unterstützt, und zum Entwerfen ihres Inhalts finden Sie im nächsten Abschnitt.

{
    "_companyId": "USMF",
    "_messageQueue": "JmgMES3P",
    "_messageType": "ProdProductionOrderReportFinished",
    "_messageContent":
    "{\"ProductionOrderNumber\": \"P000123\", \"ReportFinishedLines\": [{\"ItemNumber\": \"A0001\", \"ReportedGoodQuantity\": 10, \"ReportAsFinishedDate\": \"2021-01-01\"}]}"
}

API-Nachrichtentypen und -inhalt

In diesem Abschnitt werden alle Nachrichtentypen beschrieben, die über die MES-Integrations-API ausgetauscht werden können.

Nachricht zum Start eines Produktionsauftrags

Für die Nachricht Produktionsauftrag starten ist der _messageType-Wert ProdProductionOrderStart. Die folgende Tabelle zeigt die Felder, die von dieser Nachricht unterstützt werden.

Feldname Status Typ
ProductionOrderNumber Obligatorisch. String
StartedQuantity Fakultativ Real
StartedDate Fakultativ Date
AutomaticBOMConsumptionRule Fakultativ Enumeration (FlushingPrincip | Always | Never)
AutomaticRouteConsumptionRule Fakultativ Enumeration (RouteDependent | Always | Never)

Nachricht zur Fertigmeldung

Für die Nachricht zur Fertigmeldung ist der _messageType-Wert ProdProductionOrderReportFinished. Die folgende Tabelle zeigt die Felder, die von dieser Nachricht unterstützt werden.

Feldname Status Typ
ProductionOrderNumber Obligatorisch. String
ReportFinishedLines Obligatorisch. Eine Liste von Zeilen (mindestens eine), von denen jede die Nutzlast enthält, die in der nächsten Tabelle beschrieben sind
PrintLabel Optional (Benötigt Supply Chain Management Version 10.0.45 oder neuer) Enumeration (Yes | No)

Die folgende Tabelle zeigt die Felder, die jede Zeile im ReportFinishedLines-Abschnitt der ProdProductionOrderReportFinished-Nachricht unterstützt.

Feldname Status Typ
LineNumber Fakultativ Real
ItemNumber Fakultativ String
ProductionType Fakultativ Enumeration (MainItem | Formula | BOM | Co_Product | By_Product | None), erweiterbar
ReportedErrorQuantity Fakultativ Real
ReportedGoodQuantity Fakultativ Real
ReportedErrorCatchWeightQuantity Fakultativ Real
ReportedGoodCatchWeightQuantity Fakultativ Real
AcceptError Fakultativ Enumeration (Yes | No)
ErrorCause Fakultativ Enumeration (None | Material | Machine | OperatingStaff), erweiterbar
ExecutedDateTime Fakultativ DateTime
ReportAsFinishedDate Fakultativ Date
AutomaticBOMConsumptionRule Fakultativ Enumeration (FlushingPrincip | Always | Never)
AutomaticRouteConsumptionRule Fakultativ Enumeration (RouteDependent | Always | Never)
RespectFlushingPrincipleDuringOverproduction Fakultativ Enumeration (Yes | No)
JournalNameId Fakultativ String
PickingListJournalNameId Fakultativ String
RouteCardJournalNameId Fakultativ String
FromOperationNumber Fakultativ Integer
ToOperationNumber Fakultativ Integer
InventoryLotId Fakultativ String
BaseValue Fakultativ String
EndJob Fakultativ Enumeration (Yes | No)
EndPickingList Fakultativ Enumeration (Yes | No)
EndRouteCard Fakultativ Enumeration (Yes | No)
PostNow Fakultativ Enumeration (Yes | No)
AutoUpdate Fakultativ Enumeration (Yes | No)
ProductColorId Fakultativ String
ProductConfigurationId Fakultativ String
ProductSizeId Fakultativ String
ProductStyleId Fakultativ String
ProductVersionId Fakultativ String
ItemBatchNumber Fakultativ String
ProductSerialNumber Fakultativ String
GenerateLicensePlate Optional (Benötigt Supply Chain Management Version 10.0.45 oder neuer) Enumeration (Yes | No)
LicensePlateNumber Fakultativ String
InventoryStatusId Fakultativ String
ProductionWarehouseId Fakultativ String
ProductionSiteId Fakultativ String
ProductionWarehouseLocationId Fakultativ String
InventoryDimension1 bis InventoryDimension12 Fakultativ String

Die 12 erweiterbaren Dimensionen (InventoryDimension1 bis InventoryDimension12) erfordern eine Anpassung und werden nicht immer verwendet. Weitere Informationen zu ihnen finden Sie unter Neue Inventardimensionen durch Erweiterung hinzufügen.

Meldung zum Materialverbrauch (Kommissionierliste)

Für die Nachricht zum Materialverbrauch (Kommissionierliste) ist der _messageType-Wert ProdProductionOrderPickingList. Die folgende Tabelle zeigt die Felder, die von dieser Nachricht unterstützt werden.

Feldname Status Typ
ProductionOrderNumber Obligatorisch. String
JournalNameId Fakultativ String
PickingListLines Obligatorisch. Eine Liste von Zeilen (mindestens eine), von denen jede die Nutzlast enthält, die in der nächsten Tabelle beschrieben sind

Die folgende Tabelle zeigt die Felder, die jede Zeile im PickingListLines-Abschnitt der ProdProductionOrderPickingList-Nachricht unterstützt.

Feldname Status Typ
ItemNumber Obligatorisch. String
ConsumptionBOMQuantity Fakultativ Real
ProposalBOMQuantity Fakultativ Real
ScrapBOMQuantity Fakultativ Real
BOMUnitSymbol Fakultativ String
ConsumptionInventoryQuantity Fakultativ Real
ProposalInventoryQuantity Fakultativ Real
ConsumptionCatchWeightQuantity Fakultativ Real
ProposalCatchWeightQuantity Fakultativ Real
ConsumptionDate Fakultativ Date
OperationNumber Fakultativ Integer
LineNumber Fakultativ Real
PositionNumber Fakultativ String
IsConsumptionEnded Fakultativ Enumeration (Yes | No)
ErrorCause Fakultativ Enumeration (None | Material | Machine | OperatingStaff), erweiterbar
InventoryLotId Fakultativ String
ProductColorId Fakultativ String
ProductConfigurationId Fakultativ String
ProductSizeId Fakultativ String
ProductStyleId Fakultativ String
ProductVersionId Fakultativ String
ItemBatchNumber Fakultativ String
ProductSerialNumber Fakultativ String
LicensePlateNumber Fakultativ String
InventoryStatusId Fakultativ String
ProductionWarehouseId Fakultativ String
ProductionSiteId Fakultativ String
ProductionWarehouseLocationId Fakultativ String
InventoryDimension1 bis InventoryDimension12 Fakultativ String

Nachricht zur für den Vorgang verwendeten Zeit (Arbeitsplanliste)

Für die Für den Vorgang verwendete Zeit (Arbeitsplanliste)-Nachricht ist der _messageType-Wert ProdProductionOrderRouteCard. Die folgende Tabelle zeigt die Felder, die von dieser Nachricht unterstützt werden.

Feldname Status Typ
ProductionOrderNumber Obligatorisch. String
JournalNameId Fakultativ String
RouteCardLines Obligatorisch. Eine Liste von Zeilen (mindestens eine), von denen jede die Nutzlast enthält, die in der nächsten Tabelle beschrieben sind

Die folgende Tabelle zeigt die Felder, die jede Zeile im RouteCardLines-Abschnitt der ProdProductionOrderRouteCard-Nachricht unterstützt.

Feldname Status Typ
OperationNumber Obligatorisch. Integer
OperationPriority Fakultativ Enumeration (Primary | Secondary1 | Secondary2 | ... | Secondary20)
OperationId Fakultativ String
OperationsResourceId Fakultativ String
Worker Fakultativ String
HoursRouteCostCategoryId Fakultativ String
QuantityRouteCostCategoryId Fakultativ String
HourlyRate Fakultativ Real
Hours Fakultativ Real
GoodQuantity Fakultativ Real
ErrorQuantity Fakultativ Real
CatchWeightGoodQuantity Fakultativ Real
CatchWeightErrorQuantity Fakultativ Real
QuantityPrice Fakultativ Real
ProcessingPercentage Fakultativ Real
ConsumptionDate Fakultativ Date
TaskType Fakultativ Enumeration (QueueBefore | Setup | Process | Overlap | Transport | QueueAfter | Burden)
ErrorCause Fakultativ Enumeration (None | Material | Machine | OperatingStaff), erweiterbar
OperationCompleted Fakultativ Enumeration (Yes | No)
BOMConsumption Fakultativ Enumeration (Yes | No)
ReportAsFinished Fakultativ Enumeration (Yes | No)

Nachricht zum Ende eines Produktionsauftrags

Für die Nachricht Produktionsauftrag beenden ist der _messageType-Wert ProdProductionOrderEnd. Die folgende Tabelle zeigt die Felder, die von dieser Nachricht unterstützt werden.

Feldname Status Typ
ProductionOrderNumber Obligatorisch. String
ExecutedDateTime Fakultativ DateTime
EndedDate Fakultativ Date
UseTimeAndAttendanceCost Fakultativ Enumeration (Yes | No)
AutoReportAsFinished Fakultativ Enumeration (Yes | No)
AutoUpdate Fakultativ Enumeration (Yes | No)

Andere Produktionsinformationen

Die Nachrichten unterstützen Aktionen oder Ereignisse, die in der Werkstatt stattfinden. Sie werden mit dem in diesem Artikel beschriebenen MES-Integrationsrahmen verarbeitet. Der Entwurf geht davon aus, dass andere Referenzinformationen, die mit dem MES ausgetauscht werden sollen (wie z.B. produktbezogene Informationen oder die Stückliste oder Route (mit ihren spezifischen Einrichtungs- und Konfigurationszeiten), die in einem bestimmten Produktionsauftrag verwendet werden), mit Hilfe von Daten Entitäten über Filetransfer oder OData vom System abgerufen werden.

Feedback zum Status einer Nachricht erhalten

Nachdem das MES eine Nachricht an Supply Chain Management gesendet hat, kann es für Supply Chain Management relevant sein, Feedback zum Status der Nachricht zurückzugeben. Hier sind einige Beispiele für Fälle, in denen dieses Verhalten relevant sein könnte:

  • Niemand ist für die ständige Überwachung der MES-Integration verantwortlich.
  • Die für die Überwachung der MES-Integration verantwortliche Person möchte per E-Mail benachrichtigt werden, wenn eine Nachricht fehlschlägt, damit sie weiß, dass sie handeln muss.
  • Das MES muss eine Fehlermeldung anzeigen, um den Bediener im Fertigungsbereich oder jemanden aus der IT-Abteilung zu informieren, dass er handeln muss.
  • Das MES muss den Auftragsplan nach Erhalt einer Fehlermeldung (z. B. weil ein Produktionsauftrag nicht gestartet wurde) neu berechnen.

In diesen Fällen können Sie die Standardwarnungsfunktion in Supply Chain Management nutzen. Informationen zur Funktionsweise von Standardwarnungen finden Sie in den folgenden Ressourcen:

Sie können beispielsweise die folgenden Benachrichtigungen einrichten, um Feedback zum Status einer Nachricht zu geben:

  • Erstellen Sie ein Geschäftsereignis („Extern senden“), das verwendet wird, wenn eine Nachricht Fehlgeschlagen ist.
  • Senden Sie eine Benachrichtigung und eine E-Mail an den IT-Administrator oder den Produktionsleiter.

Verarbeitete und abgebrochene Nachrichtenverarbeitungsmeldungen bereinigen

Im Laufe der Zeit können sich verarbeitete und abgebrochene Nachrichten im Zusammenhang mit MES-Systemen von Drittanbietern im System ansammeln, was die Leistung und das Datenmanagement potenziell beeinträchtigen kann. Daher sollten Sie diese Nachrichten regelmäßig bereinigen, um die Systemeffizienz zu gewährleisten. Weitere Informationen finden Sie unter Bereinigung verarbeiteter und abgebrochener Nachrichten.