Delen via


Integratie met productie-uitvoeringssystemen van derden

Bepaalde productieorganisaties die gebruikmaken van Microsoft Dynamics 365 Supply Chain Management, gebruiken de native functionaliteit in Dynamics 365 om hun productieactiviteiten voor machines, apparatuur en personeel te beheren. Andere productieorganisaties, met name organisaties met geavanceerde productievereisten, gebruiken echter een productie-uitvoeringssysteem (MES) van derden. Organisaties kunnen een MES-oplossing van derden bijvoorbeeld kiezen omdat deze specifiek is afgestemd op hun verticale branche.

In de geïntegreerde oplossing is gegevensuitwisseling volledig geautomatiseerd en vindt bijna realtime plaats. Daardoor worden gegevens in beide systemen actueel gehouden en is er geen handmatige gegevensinvoer nodig. Wanneer materiaalverbruik bijvoorbeeld in de MES-oplossing wordt geregistreerd, zorgt de integratie ervoor dat hetzelfde verbruik ook in Dynamics 365 wordt geregistreerd. Daardoor zijn actuele voorraadrecords beschikbaar voor andere belangrijke processen, zoals planning en verkoop.

De oplossing maakt het voor Supply Chain Management-gebruikers sneller, eenvoudiger en goedkoper om te integreren met MES-oplossingen van derden. De oplossing biedt de volgende functies:

  • Zakelijke gebeurtenissen en interfaces die belangrijke productie-uitvoeringsprocessen ondersteunen
  • Een gecentraliseerde dashboard waarin u de historie van gebeurtenisverwerking kunt bijhouden en problemen kunt oplossen en mislukte processen kunt herstellen

De onderstaande afbeelding toont een veelvoorkomende verzameling zakelijke gebeurtenissen, processen en berichten die in een geïntegreerde oplossing worden uitgewisseld.

Veelvoorkomend integratiescenario.

De MES-integratiefunctie inschakelen

Voordat u deze functie kunt gebruiken, moet een beheerder deze in het systeem inschakelen zoals beschreven in de volgende procedure.

  1. Ga naar Systeembeheer > Instellingen > Licentieconfiguratie.
  2. Controleer of de licentiesleutel Tijd en aanwezigheid is ingeschakeld (met een vinkje). Deze licentiesleutel is vereist omdat deze de functionaliteit en gegevens van het productie-uitvoeringssysteem beheert. Als deze niet is ingeschakeld, gaat u als volgt te werk:
    1. Plaats uw systeem in de onderhoudsmodus, zoals wordt beschreven in Onderhoudsmodus.
    2. Schakel op de pagina Licentieconfiguratie het selectievakje Tijd en aanwezigheid in.
    3. Schakel de onderhoudsmodus uit, zoals wordt beschreven in Onderhoudsmodus.
  3. Ga naar Systeembeheer > Werkruimten > Functiebeheer.
  4. Gebruik de werkruimte Functiebeheer om de functie Integratie van systeem voor productieuitvoering in te schakelen. (Vanaf Supply Chain Management-versie 10.0.29 is deze functie standaard ingeschakeld. Vanaf Supply Chain Management 10.0.32 is deze functie verplicht en kan deze niet worden uitgeschakeld.)

Processen die beschikbaar zijn voor MES-integratie

U kunt een of meer van de volgende processen voor integratie inschakelen.

Procesnaam Description
Zakelijke gebeurtenissen voor het wijzigen van productieorderstatus en vrijgave van productieorders Dit proces biedt een zakelijke gebeurtenis die het MES kan beluisteren om informatie op te halen over de productieorders die moeten worden geproduceerd. Verwijzingsgegevens met betrekking tot de productieorder worden naar verwachting gedeeld vanuit Supply Chain Management met het MES via Open Data Protocol (OData) of gegevensentiteiten.
Productieorder beginnen Dit proces voorziet Supply Chain Management van informatie over productieorders die worden gestart met behulp van het MES. Hierdoor krijgen beide systemen een actuele weergave van alle productieactiviteiten.
Geproduceerde of buiten gebruik gestelde hoeveelheid rapporteren Dit proces voorziet Supply Chain Management van informatie over de goede en foute hoeveelheden die met betrekking tot een productietaak worden gerapporteerd met behulp van het MES. Het zorgt ervoor dat werkvloersupervisors een actuele weergave hebben van de voortgang van het productieplan.
Materiaalverbruik rapporteren Dit proces voorziet Supply Chain Management van informatie uit het MES over de hoeveelheden materialen die worden verbruikt. Hierdoor zijn actuele voorraadrecords beschikbaar voor andere belangrijke processen, zoals planning en verkoop.
Verbruikte tijd voor de bewerking rapporteren Dit proces voorziet Supply Chain Management van informatie over de tijd die wordt gebruikt voor een specifieke bewerking.
Productieorder beëindigen Via dit proces wordt Supply Chain Management ervan op de hoogte gesteld dat het MES een productieorder heeft gewijzigd in de definitieve status Beëindigd. Deze status geeft aan dat er geen hoeveelheden meer worden geproduceerd voor de productieorder.

Binnenkomende berichten controleren

Als u de inkomende MES-berichten naar het systeem wilt controleren, gaat u naar Productiebeheer > Instellingen > Productieregistratie > Integratie met productie-uitvoeringssystemen.

Alle berichten voor een specifieke productieorder worden verwerkt in de volgorde waarin ze zijn ontvangen. Berichten voor verschillende productieorders kunnen echter niet in de ontvangen volgorde worden verwerkt, omdat batchtaken parallel worden verwerkt. In geval van een fout, wordt geprobeerd elk bericht drie keer te verwerken voordat de status ervan wordt ingesteld op Mislukt.

De pagina Integratie met productie-uitvoeringssystemen werkt op dezelfde manier als de pagina Berichten van berichtenverwerker en vertegenwoordigt zeer vergelijkbare functionaliteit. (Er worden zelfs MES-berichten weergegeven naast andere typen berichten.) Zie De pagina Berichten van berichtenverwerker voor informatie over het gebruik van deze pagina's om berichten te bekijken en mislukte berichten te zoeken en te herstellen.

De API aanroepen

Als u de API van MES-integratie wilt aanroepen, verzendt u een POST-aanvraag naar de volgende eindpunt-URL:

/api/services/SysMessageServices/SysMessageService/SendMessage

De tekst van de aanvraag die u verzendt, moet op het volgende voorbeeld lijken. Vervang indien nodig de waarden voor _companyId, _messageType en _messageContent. Zie het volgende gedeelte voor informatie over de verschillende berichttypen die door de API worden ondersteund, en over het ontwerpen van de inhoud ervan.

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

API-berichttypen en -inhoud

In dit gedeelte wordt elk type bericht beschreven dat kan worden uitgewisseld via de API voor MES-integratie.

Een productieorderbericht starten

Voor het bericht productieorder starten is de waarde van _messageType ProdProductionOrderStart. In de volgende tabel worden de velden weergegeven die door dit bericht worden ondersteund.

Veldnaam Status Type
ProductionOrderNumber Verplicht Tekenreeks
StartedQuantity Optioneel Real-modus
StartedDate Optioneel Datum
AutomaticBOMConsumptionRule Optioneel Enum (FlushingPrincip | Always | Never)

Bericht voor gereedmelden

Voor het bericht gereedmelden is de waarde van _messageType ProdProductionOrderReportFinished. In de volgende tabel worden de velden weergegeven die door dit bericht worden ondersteund.

Veldnaam Status Type
ProductionOrderNumber Verplicht Tekenreeks
ReportFinishedLines Verplicht Een lijst met regels (ten minste één) die elk de nettolading bevatten die wordt beschreven in de volgende tabel

In de volgende tabel worden de velden weergegeven die door elke regel in de sectie ReportFinishedLines van het bericht worden ProdProductionOrderReportFinished ondersteund.

Veldnaam Status Type
LineNumber Optioneel Real-modus
ItemNumber Optioneel Tekenreeks
ProductionType Optioneel Enum (MainItem | Formula | BOM | Co_Product | By_Product | None), extensible
ReportedErrorQuantity Optioneel Real-modus
ReportedGoodQuantity Optioneel Real-modus
ReportedErrorCatchWeightQuantity Optioneel Real-modus
ReportedGoodCatchWeightQuantity Optioneel Real-modus
AcceptError Optioneel Enum (Ja | Nee)
ErrorCause Optioneel Enum (None | Material | Machine | OperatingStaff), extensible
ExecutedDateTime Optioneel Datum/tijd
ReportAsFinishedDate Optioneel Datum
AutomaticBOMConsumptionRule Optioneel Enum (FlushingPrincip | Always | Never)
AutomaticRouteConsumptionRule Optioneel Enum (RouteDependent | Always | Never)
RespectFlushingPrincipleDuringOverproduction Optioneel Enum (Ja | Nee)
JournalNameId Optioneel Tekenreeks
PickingListJournalNameId Optioneel Tekenreeks
RouteCardJournalNameId Optioneel Tekenreeks
FromOperationNumber Optioneel Geheel getal
ToOperationNumber Optioneel Geheel getal
InventoryLotId Optioneel Tekenreeks
BaseValue Optioneel Tekenreeks
EndJob Optioneel Enum (Ja | Nee)
EndPickingList Optioneel Enum (Ja | Nee)
EndRouteCard Optioneel Enum (Ja | Nee)
PostNow Optioneel Enum (Ja | Nee)
AutoUpdate Optioneel Enum (Ja | Nee)
ProductColorId Optioneel Tekenreeks
ProductConfigurationId Optioneel Tekenreeks
ProductSizeId Optioneel Tekenreeks
ProductStyleId Optioneel Tekenreeks
ProductVersionId Optioneel Tekenreeks
ItemBatchNumber Optioneel Tekenreeks
ProductSerialNumber Optioneel Tekenreeks
LicensePlateNumber Optioneel Tekenreeks
InventoryStatusId Optioneel Tekenreeks
ProductionWarehouseId Optioneel Tekenreeks
ProductionSiteId Optioneel Tekenreeks
ProductionWarehouseLocationId Optioneel Tekenreeks
InventoryDimension1 tot en met InventoryDimension12 Optioneel Tekenreeks

De 12 uitbreidbare dimensies (InventoryDimension1 tot en met InventoryDimension12) moeten worden aangepast en worden niet altijd gebruikt. Zie Nieuwe voorraaddimensies toevoegen via extensie voor meer informatie over deze dimensies.

Bericht materiaalverbruik (orderverzamellijst)

Voor het bericht materiaalverbruik (orderverzamellijst) is de waarde van _messageType ProdProductionOrderPickingList. In de volgende tabel worden de velden weergegeven die door dit bericht worden ondersteund.

Veldnaam Status Type
ProductionOrderNumber Verplicht Tekenreeks
JournalNameId Optioneel Tekenreeks
PickingListLines Verplicht Een lijst met regels (ten minste één) die elk de nettolading bevatten die wordt beschreven in de volgende tabel

In de volgende tabel worden de velden weergegeven die door elke regel in de sectie PickingListLines van het bericht worden ProdProductionOrderPickingList ondersteund.

Veldnaam Status Type
ItemNumber Verplicht Tekenreeks
ConsumptionBOMQuantity Optioneel Real-modus
ProposalBOMQuantity Optioneel Real-modus
ScrapBOMQuantity Optioneel Real-modus
BOMUnitSymbol Optioneel Tekenreeks
ConsumptionInventoryQuantity Optioneel Real-modus
ProposalInventoryQuantity Optioneel Real-modus
ConsumptionCatchWeightQuantity Optioneel Real-modus
ProposalCatchWeightQuantity Optioneel Real-modus
ConsumptionDate Optioneel Datum
OperationNumber Optioneel Geheel getal
LineNumber Optioneel Real-modus
PositionNumber Optioneel Tekenreeks
IsConsumptionEnded Optioneel Enum (Ja | Nee)
ErrorCause Optioneel Enum (None | Material | Machine | OperatingStaff), extensible
InventoryLotId Optioneel Tekenreeks

Bericht tijd gebruikt voor bewerking (routekaart)

Voor het bericht tijd gebruikt voor bewerking (routekaart) is de waarde van _messageType ProdProductionOrderRouteCard. In de volgende tabel worden de velden weergegeven die door dit bericht worden ondersteund.

Veldnaam Status Type
ProductionOrderNumber Verplicht Tekenreeks
JournalNameId Optioneel Tekenreeks
RouteCardLines Verplicht Een lijst met regels (ten minste één) die elk de nettolading bevatten die wordt beschreven in de volgende tabel

In de volgende tabel worden de velden weergegeven die door elke regel in de sectie RouteCardLines van het bericht worden ProdProductionOrderRouteCard ondersteund.

Veldnaam Status Type
OperationNumber Verplicht Geheel getal
OperationPriority Optioneel Enum (Primary | Secondary1 | Secondary2 | ... | Secondary20)
OperationId Optioneel Tekenreeks
OperationsResourceId Optioneel Tekenreeks
Worker Optioneel Tekenreeks
HoursRouteCostCategoryId Optioneel Tekenreeks
QuantityRouteCostCategoryId Optioneel Tekenreeks
HourlyRate Optioneel Real-modus
Hours Optioneel Real-modus
GoodQuantity Optioneel Real-modus
ErrorQuantity Optioneel Real-modus
CatchWeightGoodQuantity Optioneel Real-modus
CatchWeightErrorQuantity Optioneel Real-modus
QuantityPrice Optioneel Real-modus
ProcessingPercentage Optioneel Real-modus
ConsumptionDate Optioneel Datum
TaskType Optioneel Enum (QueueBefore | Setup | Process | Overlap | Transport | QueueAfter | Burden)
ErrorCause Optioneel Enum (None | Material | Machine | OperatingStaff), extensible
OperationCompleted Optioneel Enum (Ja | Nee)
BOMConsumption Optioneel Enum (Ja | Nee)
ReportAsFinished Optioneel Enum (Ja | Nee)

Bericht productieorderbericht beëindigen

Voor het bericht productieorder beëindigen is de waarde van _messageType ProdProductionOrderEnd. In de volgende tabel worden de velden weergegeven die door dit bericht worden ondersteund.

Veldnaam Status Type
ProductionOrderNumber Verplicht Tekenreeks
ExecutedDateTime Optioneel Datum/tijd
EndedDate Optioneel Datum
UseTimeAndAttendanceCost Optioneel Enum (Ja | Nee)
AutoReportAsFinished Optioneel Enum (Ja | Nee)
AutoUpdate Optioneel Enum (Ja | Nee)

Overige productiegegevens

De berichten ondersteunen acties of gebeurtenissen die op de werkvloer plaatsvinden. Deze worden verwerkt met behulp van het MES-integratieraamwerk dat in dit artikel is beschreven. In het ontwerp wordt ervan uitgegaan dat andere verwijzingsinformatie die met het MES moet worden gedeeld (zoals productgerelateerde informatie, of de stuklijst of route (met de specifieke instellings- en configuratietijden) die in een bepaalde productieorder wordt gebruikt), vanuit het systeem wordt opgehaald met behulp van gegevensentiteiten via bestandsoverdracht of OData.

Feedback ontvangen over de status van een bericht

Nadat het MES een bericht naar Supply Chain Management heeft verzonden, kan het voor Supply Chain Management relevant zijn om feedback terug te sturen over de status van het bericht. Hier volgen enkele voorbeelden van gevallen waarin dit bedrag nuttig kan zijn:

  • Er is geen persoon die verantwoordelijk is voor het voortdurend controleren van de MES-integratie.
  • De persoon die verantwoordelijk is voor het toezicht op de MES-integratie, wil per e-mail op de hoogte worden gebracht wanneer een bericht mislukt, zodat hij of zij weet dat er actie moet worden ondernomen.
  • Het MES moet een foutbericht weergeven om de werkvloeroperator of iemand van de IT-afdeling te laten weten dat er actie moet worden ondernomen.
  • Het MES moet de orderplanning opnieuw berekenen nadat er een foutbericht is ontvangen (bijvoorbeeld omdat een productieorder niet kan worden gestart).

In deze gevallen kunt u gebruikmaken van de standaardwaarschuwingsfunctie in Supply Chain Management. Zie de volgende bronnen voor informatie over de manier waarop standaardwaarschuwingen werken:

U kunt bijvoorbeeld de volgende waarschuwingen instellen om feedback te geven over de status van een bericht:

  • Een zakelijke gebeurtenis maken ("Extern verzenden") die wordt gebruikt wanneer een bericht Mislukt is.
  • Een melding per e-mail verzenden naar de IT-beheerder of productievloermanager.