MES Integration – Integrate D365FO with Third Party integration system

I am currently working on MES integration and there are many challenges everyday to block one or other issue.

The integration seems to be simple where the data exchange is automated and near real-time. So the data is available in both the systems up to date ,with minimal manual intervention.

The following diagram is an extract from Microsoft Documentation illustrating the message exchanges and the approach.

How the data exchange is facilitated?

Business events – For instance , when the Production order is released .

OData and Data Entities – Third party can consume the data using Odata or FO can trigget the export using data entities.

API – Inbound to FO from the third party system happens via standard API calls .

Business event when the Production order is released

Standard business event can be leveraged to send the data to the 3rd Party when the production order is released.

Go to System Adminstration -> Set up -> Business event -> Business event catalog

The payload with this business event is defined on the right side of the form which is displayed upon selecting the business event

It is possible to extend the business event to add custom fields or create a new custom business event . I would recommend for extension of standard event.

How to send the data in business event?

Data can be exchanged via business events in various approaches.

When you create an endpoint, there are various option to display

It is possible to create

  • Event Grid and the Subscriptions to send the data
  • Azure Service Bus to send message to the Queue or Topic
  • To a Azure blob storage

Consuming data via Odata Entities

Using a GET request to retrieve all the production orders which are having the status as ‘Released’

https://fourl/data/ProductionOrderHeaders?$filter=ProductionOrderStatus eq Microsoft.Dynamics.DataEntities.ProdStatus'Released'

Get the details of a particular production order

https://fourl/data/ProductionOrderHeaders?cross-company=true&$filter=dataAreaId eq 'usrt'&$ProductionOrderNumber eq PC-USMF01-0000002'

Get the details of Routes

Data entity exposed as Odata here is ProdProductionOrderRouteOperationEntity

https://fourl/data/ProductionOrderRouteOperations?$filter= ProductionOrderNumber eq 'PC-USMF01-0000002'

Get the Route Operations

Data entity exposed as Odata here is RouteRouteOperation

https://fourl/data/RouteOperations?$filter= RouteId eq 'PC-RN-USMF-0001154'

Get the properties of Route operations

Data entity exposed as Odata here is RouteOperationPropertiesV2Entity

https://fourl/data/RouteOperationsProperties?$filter= RouteId eq 'PC-RN-USMF-0001154'

Get the details of Route Version

Data entity exposed here is RouteVersionODataV2Entity

https://fourl/data/RouteVersionsV2?$filter= RouteId eq 'PC-RN-USMF-0001154'

Get the details of Route job

Data entity exposed as Odata here is ProdProductionOrderRouteJobEntity

https://fourl/data/ProductionOrderRouteJobs?$filter= ProductionOrderNumber eq 'PC-USMF01-0000002'

To get the BOM details

Data entity exposed as Odata here is BOM

https://fourl/data/ProductionOrderBillOfMaterialLines?$filter= ProductionOrderNumber eq 'PC-USMF01-0000002'

To get the Resource requirements details

Data entity exposed as Odata here is RouteOperationPropertiesResourceRequirementEntity

https://fourl/data/RouteOperationPropertiesResourceRequirements?$filter= RouteId eq 'PC-RN-USMF-0005854'

The above APIs are available in my Githib Handle – MES Integration

In my next post, I will cover about Inbound APIs for MES-FO

Original Post https://anithasantosh.wordpress.com/2025/10/26/mes-integration-integrate-d365fo-with-third-party-integration-system/

0 Votes: 0 Upvotes, 0 Downvotes (0 Points)

Leave a reply

Follow
Search
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...