Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Alcune organizzazioni manifatturiere che utilizzano Microsoft Dynamics 365 Sales impiegano la funzionalità nativa in Dynamics 365 per controllare le loro attività produttive di macchine, attrezzature e personale. Tuttavia, altre organizzazioni di produzione, in particolare quelle che hanno requisiti di produzione avanzati, utilizzano invece un sistema di esecuzione della produzione (MES) di terze parti. Le organizzazioni potrebbero scegliere una soluzione MES di terze parti perché, ad esempio, è specificamente adattata al loro settore verticale.
Nella soluzione integrata, lo scambio di dati è completamente automatizzato e avviene quasi in tempo reale. Pertanto, i dati vengono mantenuti aggiornati in entrambi i sistemi e non è richiesta alcuna immissione manuale dei dati. Ad esempio, quando il consumo di materiale viene registrato nel MES, l'integrazione garantisce che lo stesso consumo sia registrato anche in Dynamics 365. Pertanto, i record di inventario aggiornati sono disponibili per altri processi importanti, come la pianificazione e le vendite.
La soluzione rende più veloce, più facile ed economico per gli utenti di Gestione Supply Chain l'integrazione con MES di terze parti. Offre le funzionalità seguenti:
- Eventi aziendali e interfacce che supportano processi chiave di esecuzione della produzione
- Una dashboard centralizzata in cui è possibile tenere traccia della cronologia di elaborazione degli eventi e risolvere i problemi e correggere i processi che non riescono
La seguente illustrazione mostra una tipica raccolta di eventi aziendali, processi e messaggi scambiati in una soluzione integrata.
Prerequisiti
Per integrarsi con un sistema di esecuzione della produzione di terze parti, deve essere abilitato il codice di licenza Tempo e presenze in Gestione Supply Chain. Segui questi passaggi per verificare se è abilitato e per abilitarlo se necessario:
- Accedi a Amministrazione sistema > Imposta > Configurazione licenza.
- Assicurati che la chiave di licenza Orario e presenze sia abilitata (mostra un segno di spunta). Questa chiave di licenza è necessaria perché controlla la funzionalità e i dati del sistema di esecuzione della produzione. Se non è abilitata, procedi nel seguente modo:
- Mettere il sistema in modalità di manutenzione come descritto in Modalità di manutenzione.
- Nella pagina Configurazione della licenza seleziona la casella di controllo Orario e presenze.
- Disattiva la modalità di manutenzione come descritto in Modalità di manutenzione
Processi disponibili per l'integrazione MES
È possibile abilitare uno o tutti i seguenti processi per l'integrazione.
| Nome del processo | Description |
|---|---|
| Rilasciare gli ordini di produzione e gli eventi aziendali di modifica dello stato dell'ordine di produzione | Questo processo fornisce un evento aziendale che il MES può ascoltare, per ottenere informazioni sugli ordini di produzione che dovrebbero essere prodotti. I dati di riferimento relativi all'ordine di produzione dovrebbero essere condivisi da Gestione Supply Chain al MES tramite Open Data Protocol (OData) o entità di dati. |
| Avvia ordine di produzione | Questo processo fornisce a Gestione Supply Chain le informazioni sugli ordini di produzione che vengono avviati utilizzando il MES. Assicura che entrambi i sistemi abbiano una visione aggiornata di tutte le attività di produzione. |
| Report quantità prodotta o scartata | Questo processo fornisce a Gestione Supply Chain le informazioni sulle quantità di errore e i prodotti finiti segnalati su un processo di produzione utilizzando il MES. Garantisce che i supervisori dell'officina abbiano una visione aggiornata dell'avanzamento del piano di produzione. |
| Segnalare il consumo di materiali | Questo processo fornisce a Gestione Supply Chain le informazioni dal MES sulle quantità di materiali che vengono consumate. Pertanto, i record di inventario aggiornati sono disponibili per altri processi importanti, come la pianificazione e le vendite. |
| Segnalare il tempo impiegato per l'operazione | Questo processo fornisce a Gestione Supply Chain informazioni sul tempo utilizzato per un'operazione specifica. |
| Ordine di produzione finale | Questo processo informa Gestione Supply Chain che il MES ha aggiornato un ordine di produzione al suo stato finale di Terminato. Questo stato indica che non verranno più prodotte quantità nell'ordine di produzione. |
Monitorare i messaggi in arrivo
Per monitorare i messaggi MES in arrivo nel sistema, vai a Controllo della produzione > Impostazione > Esecuzione produzione > Integrazione di sistemi esecuzione produzione.
Tutti i messaggi per un ordine di produzione specifico vengono elaborati nella sequenza in cui vengono ricevuti. Tuttavia, i messaggi per ordini di produzione diversi potrebbero non essere elaborati nella sequenza ricevuta perché i lavori batch vengono elaborati in parallelo. In caso di errore, il processo batch tenterà di elaborare ciascun messaggio tre volte prima di impostarlo sullo stato Non riuscito.
La pagina Integrazione di sistemi esecuzione produzione funziona allo stesso modo della pagina Messaggi dell'elaboratore di messaggi e rappresenta funzionalità molto simili. (Mostra persino i messaggi MES oltre ad altri tipi di messaggi.) Per informazioni su come utilizzare entrambe le pagine per esaminare messaggi, trovare e correggere messaggi falliti e altro ancora, consulta Monitorare e controllare i messaggi processore.
Chiamare l'API
Per chiamare l'API di integrazione MES, inviare una richiesta POST al seguente URL dell'endpoint:
/api/services/SysMessageServices/SysMessageService/SendMessage
Il corpo della richiesta inviata dovrebbe essere simile all'esempio seguente. Sostituisci i valori per _companyId, _messageType e _messageContent come richiesto. Per informazioni sui vari tipi di messaggi supportati dall'API e su come progettare il loro contenuto, vedere la sezione successiva.
{
"_companyId": "USMF",
"_messageQueue": "JmgMES3P",
"_messageType": "ProdProductionOrderReportFinished",
"_messageContent":
"{\"ProductionOrderNumber\": \"P000123\", \"ReportFinishedLines\": [{\"ItemNumber\": \"A0001\", \"ReportedGoodQuantity\": 10, \"ReportAsFinishedDate\": \"2021-01-01\"}]}"
}
Tipi e contenuto dei messaggi API
Questa sezione descrive ogni tipo di messaggio che può essere scambiato tramite l'API di integrazione MES.
Messaggio Avvia ordine di produzione
Per il messaggio Avvia ordine di produzione, il valore _messageType è ProdProductionOrderStart. La tabella seguente mostra i campi supportati da questo messaggio.
| Nome del campo | Condizione | TIPO |
|---|---|---|
ProductionOrderNumber |
Obbligatorio | Stringa |
StartedQuantity |
Opzionale | Reale |
StartedDate |
Opzionale | Date |
AutomaticBOMConsumptionRule |
Opzionale | Enum (FlushingPrincip | Sempre | Mai) |
AutomaticRouteConsumptionRule |
Opzionale | Enum (RouteDependent | Sempre | Mai) |
Messaggio dichiarazione di finito
Per il messaggio dichiara come finito, il valore _messageType è ProdProductionOrderReportFinished. La tabella seguente mostra i campi supportati da questo messaggio.
| Nome del campo | Condizione | TIPO |
|---|---|---|
ProductionOrderNumber |
Obbligatorio | Stringa |
ReportFinishedLines |
Obbligatorio | Un elenco di righe (almeno una), ognuna delle quali contiene il payload descritto nella tabella successiva |
PrintLabel |
Opzionale (Richiede Gestione Supply Chain versione 10.0.45 o successiva) | Enum (Sì | No) |
La tabella seguente mostra i campi che ogni riga nella sezione ReportFinishedLines del messaggio ProdProductionOrderReportFinished supporta.
| Nome del campo | Condizione | TIPO |
|---|---|---|
LineNumber |
Opzionale | Reale |
ItemNumber |
Opzionale | Stringa |
ProductionType |
Opzionale | Enum (MainItem | Formula | BOM | Co_Product | By_Product | None), extensible |
ReportedErrorQuantity |
Opzionale | Reale |
ReportedGoodQuantity |
Opzionale | Reale |
ReportedErrorCatchWeightQuantity |
Opzionale | Reale |
ReportedGoodCatchWeightQuantity |
Opzionale | Reale |
AcceptError |
Opzionale | Enum (Sì | No) |
ErrorCause |
Opzionale | Enum (None | Material | Machine | OperatingStaff), estendibile |
ExecutedDateTime |
Opzionale | Data e ora |
ReportAsFinishedDate |
Opzionale | Date |
AutomaticBOMConsumptionRule |
Opzionale | Enum (FlushingPrincip | Sempre | Mai) |
AutomaticRouteConsumptionRule |
Opzionale | Enum (RouteDependent | Sempre | Mai) |
RespectFlushingPrincipleDuringOverproduction |
Opzionale | Enum (Sì | No) |
JournalNameId |
Opzionale | Stringa |
PickingListJournalNameId |
Opzionale | Stringa |
RouteCardJournalNameId |
Opzionale | Stringa |
FromOperationNumber |
Opzionale | Intero |
ToOperationNumber |
Opzionale | Intero |
InventoryLotId |
Opzionale | Stringa |
BaseValue |
Opzionale | Stringa |
EndJob |
Opzionale | Enum (Sì | No) |
EndPickingList |
Opzionale | Enum (Sì | No) |
EndRouteCard |
Opzionale | Enum (Sì | No) |
PostNow |
Opzionale | Enum (Sì | No) |
AutoUpdate |
Opzionale | Enum (Sì | No) |
ProductColorId |
Opzionale | Stringa |
ProductConfigurationId |
Opzionale | Stringa |
ProductSizeId |
Opzionale | Stringa |
ProductStyleId |
Opzionale | Stringa |
ProductVersionId |
Opzionale | Stringa |
ItemBatchNumber |
Opzionale | Stringa |
ProductSerialNumber |
Opzionale | Stringa |
GenerateLicensePlate |
Opzionale (Richiede Gestione Supply Chain versione 10.0.45 o successiva) | Enum (Sì | No) |
LicensePlateNumber |
Opzionale | Stringa |
InventoryStatusId |
Opzionale | Stringa |
ProductionWarehouseId |
Opzionale | Stringa |
ProductionSiteId |
Opzionale | Stringa |
ProductionWarehouseLocationId |
Opzionale | Stringa |
InventoryDimension1 a InventoryDimension12 |
Opzionale | Stringa |
Le 12 dimensioni estensibili (InventoryDimension1 attraverso InventoryDimension12) richiedono la personalizzazione e non vengono sempre utilizzati. Per ulteriori informazioni, vedere Aggiungere nuove dimensioni di inventario tramite estensione.
Messaggio sul consumo di materiale (distinta di prelievo)
Per il messaggio sul consumo di materiale (distinta di prelievo), il valore _messageType è ProdProductionOrderPickingList. La tabella seguente mostra i campi supportati da questo messaggio.
| Nome del campo | Condizione | TIPO |
|---|---|---|
ProductionOrderNumber |
Obbligatorio | Stringa |
JournalNameId |
Opzionale | Stringa |
PickingListLines |
Obbligatorio | Un elenco di righe (almeno una), ognuna delle quali contiene il payload descritto nella tabella successiva |
La tabella seguente mostra i campi che ogni riga nella sezione PickingListLines del messaggio ProdProductionOrderPickingList supporta.
| Nome del campo | Condizione | TIPO |
|---|---|---|
ItemNumber |
Obbligatorio | Stringa |
ConsumptionBOMQuantity |
Opzionale | Reale |
ProposalBOMQuantity |
Opzionale | Reale |
ScrapBOMQuantity |
Opzionale | Reale |
BOMUnitSymbol |
Opzionale | Stringa |
ConsumptionInventoryQuantity |
Opzionale | Reale |
ProposalInventoryQuantity |
Opzionale | Reale |
ConsumptionCatchWeightQuantity |
Opzionale | Reale |
ProposalCatchWeightQuantity |
Opzionale | Reale |
ConsumptionDate |
Opzionale | Date |
OperationNumber |
Opzionale | Intero |
LineNumber |
Opzionale | Reale |
PositionNumber |
Opzionale | Stringa |
IsConsumptionEnded |
Opzionale | Enum (Sì | No) |
ErrorCause |
Opzionale | Enum (None | Material | Machine | OperatingStaff), estendibile |
InventoryLotId |
Opzionale | Stringa |
ProductColorId |
Opzionale | Stringa |
ProductConfigurationId |
Opzionale | Stringa |
ProductSizeId |
Opzionale | Stringa |
ProductStyleId |
Opzionale | Stringa |
ProductVersionId |
Opzionale | Stringa |
ItemBatchNumber |
Opzionale | Stringa |
ProductSerialNumber |
Opzionale | Stringa |
LicensePlateNumber |
Opzionale | Stringa |
InventoryStatusId |
Opzionale | Stringa |
ProductionWarehouseId |
Opzionale | Stringa |
ProductionSiteId |
Opzionale | Stringa |
ProductionWarehouseLocationId |
Opzionale | Stringa |
InventoryDimension1 a InventoryDimension12 |
Opzionale | Stringa |
Messaggio di tempo impiegato per l'operazione (scheda di percorso)
Per il messaggio sul tempo impiegato per l'operazione (scheda di percorso), il valore _messageType è ProdProductionOrderRouteCard. La tabella seguente mostra i campi supportati da questo messaggio.
| Nome del campo | Condizione | TIPO |
|---|---|---|
ProductionOrderNumber |
Obbligatorio | Stringa |
JournalNameId |
Opzionale | Stringa |
RouteCardLines |
Obbligatorio | Un elenco di righe (almeno una), ognuna delle quali contiene il payload descritto nella tabella successiva |
La tabella seguente mostra i campi che ogni riga nella sezione RouteCardLines del messaggio ProdProductionOrderRouteCard supporta.
| Nome del campo | Condizione | TIPO |
|---|---|---|
OperationNumber |
Obbligatorio | Intero |
OperationPriority |
Opzionale | Enum (Primaria | Secondario1 | Secondario2 | ... | Secondary20) |
OperationId |
Opzionale | Stringa |
OperationsResourceId |
Opzionale | Stringa |
Worker |
Opzionale | Stringa |
HoursRouteCostCategoryId |
Opzionale | Stringa |
QuantityRouteCostCategoryId |
Opzionale | Stringa |
HourlyRate |
Opzionale | Reale |
Hours |
Opzionale | Reale |
GoodQuantity |
Opzionale | Reale |
ErrorQuantity |
Opzionale | Reale |
CatchWeightGoodQuantity |
Opzionale | Reale |
CatchWeightErrorQuantity |
Opzionale | Reale |
QuantityPrice |
Opzionale | Reale |
ProcessingPercentage |
Opzionale | Reale |
ConsumptionDate |
Opzionale | Date |
TaskType |
Opzionale | Enum (QueueBefore | Setup | Process | Overlap | Transport | QueueAfter | Burden) |
ErrorCause |
Opzionale | Enum (None | Material | Machine | OperatingStaff), estendibile |
OperationCompleted |
Opzionale | Enum (Sì | No) |
BOMConsumption |
Opzionale | Enum (Sì | No) |
ReportAsFinished |
Opzionale | Enum (Sì | No) |
Messaggio Termina ordine di produzione
Per il messaggio Termina ordine di produzione, il valore _messageType è ProdProductionOrderEnd. La tabella seguente mostra i campi supportati da questo messaggio.
| Nome del campo | Condizione | TIPO |
|---|---|---|
ProductionOrderNumber |
Obbligatorio | Stringa |
ExecutedDateTime |
Opzionale | Data e ora |
EndedDate |
Opzionale | Date |
UseTimeAndAttendanceCost |
Opzionale | Enum (Sì | No) |
AutoReportAsFinished |
Opzionale | Enum (Sì | No) |
AutoUpdate |
Opzionale | Enum (Sì | No) |
Altre informazioni sulla produzione
I messaggi supportano azioni o eventi che si verificano nell'area di produzione. Vengono elaborati utilizzando il framework di integrazione MES descritto in questo articolo. Il progetto presuppone che altre informazioni di riferimento da condividere con il MES, come le informazioni relative al prodotto, o la distinta base o il percorso (con i suoi tempi di impostazione e configurazione specifici) utilizzate in uno specifico ordine di produzione vengano recuperate dal sistema usando le entità di dati tramite trasferimento file oppure OData.
Ricevere il feedback sullo stato di un messaggio
Dopo che il MES ha inviato un messaggio a Gestione Supply Chain, potrebbe essere importante per Gestione Supply Chain restituire un feedback sullo stato del messaggio. Di seguito sono riportati alcuni esempi di casi in cui tale comportamento può risultare utile:
- Nessuno è responsabile di supervisionare costantemente l'integrazione del MES.
- La persona responsabile della supervisione dell'integrazione MES desidera essere informata via e-mail quando un messaggio non riesce, in modo che sappia che deve agire.
- Il MES deve mostrare un messaggio di errore per informare l'operatore dell'officina o qualcuno del reparto IT che devono agire.
- Il MES deve ricalcolare la pianificazione dell'ordine dopo aver ricevuto un messaggio di errore (ad esempio, perché un ordine di produzione non è stato avviato).
In questi casi, puoi sfruttare la funzionalità di avviso standard in Gestione Supply Chain. Per informazioni sul funzionamento degli avvisi standard, vedere le seguenti risorse:
- Articolo della guida: Panoramica degli avvisi
- Video: Opzioni per le regole di avviso nelle app per la finanza e le operazioni
Ad esempio, potresti impostare i seguenti avvisi per fornire un feedback sullo stato di un messaggio:
- Crea un evento aziendale ("Invia esternamente") che viene utilizzato quando un messaggio è Non riuscito.
- Invia una notifica e un messaggio e-mail all'amministratore IT o al responsabile del piano di produzione.
Pulire i messaggi elaborati e annullati del processore messaggi
Col tempo, i messaggi elaborati e cancellati relativi ai sistemi MES di terze parti possono accumularsi nel sistema, influenzando potenzialmente le prestazioni e la gestione dei dati. Pertanto, dovresti ripulire periodicamente questi messaggi per mantenere l'efficienza del sistema. Scopri di più in Pulizia dei messaggi processati e cancellati del processore dei messaggi.