Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Algumas organizações de fabrico que utilizam Microsoft Dynamics 365 Supply Chain Management utilizam a funcionalidade nativa da Dynamics 365 para controlar as suas atividades de fabrico de máquinas, equipamentos e pessoal. No entanto, outras organizações de fabrico, sobretudo as que têm requisitos de fabrico avançados, optam por utilizar um sistemas de execução de fabrico de terceiros (MES). As organizações podem escolher uma solução MES de terceiros porque, por exemplo, está especificamente adaptada à respetiva indústria vertical.
Na solução integrada, a troca de dados está totalmente automatizada e ocorre em tempo quase real. Portanto, os dados são mantidos atuais em ambos os sistemas e não é necessária nenhuma entrada de dados manual. Por exemplo, quando o consumo de material é registado no MES, a integração garante que o mesmo consumo também é registado no Dynamics 365. Por conseguinte, os registos de inventário atualizados estão disponíveis para outros processos importantes, como o planeamento e as vendas.
A solução torna mais rápido, mais fácil e mais barato para os utilizadores do Supply Chain Management para integração com MESs de terceiros. Oferece as seguintes funcionalidades:
- Eventos empresariais e interfaces que suportam processos de execução de fabrico chave
- Um dashboard centralizado poderá monitorizar o histórico de processamento do evento, bem como os processos de resolução de problemas e correção que falham
A ilustração que se segue mostra uma coleção típica de eventos empresariais, processos e mensagens que são trocados numa solução integrada.
Pré-requisitos
Para se integrar com um sistema de execução da produção de terceiros, a chave de licença Hora e assiduidade tem de ser ativada na Gestão da Cadeia de Abastecimento. Siga estes passos para verificar se está ativado e para o ativar, se necessário:
- Vá para Administração do sistema > Configurar > Configuração de licença.
- Certifique-se de que a chave de licença Tempo e participação está ativada (mostra uma marca de verificação). Esta chave de licença é necessária porque controla a funcionalidade e os dados do sistema de execução de fabrico. Se não estiver ativada, faça os seguintes passos:
- Coloque o seu sistema em modo de manutenção, conforme descrito na secção Modo de manutenção.
- Na página Configuração de licença, selecione a caixa de verificação Tempo e participação.
- Desative o modo de manutenção, conforme descrito na secção Modo de manutenção
Processos disponíveis para a integração com o MES
Pode ativar qualquer um ou todos os seguintes processos para a integração.
| Nome do processo | Description |
|---|---|
| Lançar ordens de produção e eventos empresariais de alteração de estado de ordens de produção | Este processo fornece um evento empresarial que o MES pode ouvir para obter informações sobre as ordens de produção que devem ser produzidas. Espera-se que os dados de referência relacionados com a ordem de produção sejam partilhados do Supply Chain Management para o MES através do protocolo OData (Open Data Protocol) ou entidades de dados. |
| Iniciar ordem de produção | Este processo fornece ao Supply Chain Management informações sobre as ordens de produção que estão a ser iniciadas ao utilizar o MES. Garante que ambos os sistemas têm uma vista atualizada de todas as atividades de fabrico. |
| Reportar quantidade produzida ou descartada | Este processo fornece ao Supply Chain Management informações sobre as quantidades corretas e com erro que são reportadas num trabalho de produção ao utilizar o MES. Garante que os supervisores do local de produção têm uma vista atualizada do progresso do plano de produção. |
| Reportar consumo de material | Este processo fornece ao Supply Chain Management informações do MES sobre as quantidades de materiais que são consumidas. Disponibiliza os registos de inventário atualizados para outros processos importantes, como o planeamento e as vendas. |
| Reportar o tempo consumido para a operação | Este processo fornece ao Supply Chain Management informações sobre o tempo empregue para uma operação específica. |
| Terminar ordem de produção | Este processo informa o Supply Chain Management que o MES atualizou uma ordem de produção para o seu estado final de Terminado. Este estado indica que não serão produzidas mais quantidades na ordem de produção. |
Monitorizar mensagens a receber
Para monitorizar as mensagens MES recebidas pelo sistema, vá a Controlo de produção > Configuração > Execução do fabrico > Integração de sistemas de execução do fabrico.
Todas as mensagens de uma ordem de produção específica são processadas na sequência em que são recebidas. No entanto, mensagens para diferentes ordens de produção podem não ser processadas na sequência recebida porque os trabalhos em lote são processados em paralelo. Em caso de falha, o batch job tentará processar cada mensagem três vezes antes de a definir para o estado Falhado .
A página de integração de sistemas de execução de fabrico funciona da mesma forma que a página de mensagens do processador de mensagens e representa uma funcionalidade muito semelhante. (Até mostra mensagens MES além de outros tipos de mensagens.) Para informações sobre como usar qualquer uma das páginas para rever mensagens, encontrar e corrigir mensagens falhadas, entre outros, consulte Monitorizar e controlar mensagens do processador de mensagens.
Invoque a API
Para chamar a API de integração com o MES, envie um pedido POST para o seguinte URL de ponto final:
/api/services/SysMessageServices/SysMessageService/SendMessage
O corpo do pedido que enviar deve assemelhar-se ao seguinte exemplo. Substitua os valores para _companyId, _messageType e _messageContent, conforme for necessário. Para obter informações sobre os vários tipos de mensagens que a API suporta e como conceber o seu conteúdo, consulte a secção seguinte.
{
"_companyId": "USMF",
"_messageQueue": "JmgMES3P",
"_messageType": "ProdProductionOrderReportFinished",
"_messageContent":
"{\"ProductionOrderNumber\": \"P000123\", \"ReportFinishedLines\": [{\"ItemNumber\": \"A0001\", \"ReportedGoodQuantity\": 10, \"ReportAsFinishedDate\": \"2021-01-01\"}]}"
}
Tipos e conteúdos de mensagens da API
Esta secção descreve cada tipo de mensagem que pode ser trocada através da API de integração com o MES.
Mensagem Iniciar ordem de produção
Para a mensagem iniciar ordem de produção, o valor de _messageType é ProdProductionOrderStart. A seguinte tabela mostra os campos que esta mensagem suporta.
| Nome do campo | Situação | Tipo |
|---|---|---|
ProductionOrderNumber |
Mandatory | Cordão |
StartedQuantity |
Opcional | real |
StartedDate |
Opcional | Date |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Sempre | Nunca) |
AutomaticRouteConsumptionRule |
Opcional | Enum (RouteDependent | Always | Never) |
Reportar como mensagem concluída
Para a mensagem reportar como concluído, o valor de _messageType é ProdProductionOrderReportFinished. A seguinte tabela mostra os campos que esta mensagem suporta.
| Nome do campo | Situação | Tipo |
|---|---|---|
ProductionOrderNumber |
Mandatory | Cordão |
ReportFinishedLines |
Mandatory | Uma lista de linhas (pelo menos uma), em que cada uma contém o payload descrito na tabela seguinte |
PrintLabel |
Opcional (Exige Supply Chain Management versão 10.0.45 ou posterior) | Enum (Sim | Não) |
A tabela seguinte mostra os campos que cada linha na secção ReportFinishedLines da mensagem ProdProductionOrderReportFinished suporta.
| Nome do campo | Situação | Tipo |
|---|---|---|
LineNumber |
Opcional | real |
ItemNumber |
Opcional | Cordão |
ProductionType |
Opcional | Enum (MainItem | Formula | BOM | Co_Product | By_Product | None), extensible |
ReportedErrorQuantity |
Opcional | real |
ReportedGoodQuantity |
Opcional | real |
ReportedErrorCatchWeightQuantity |
Opcional | real |
ReportedGoodCatchWeightQuantity |
Opcional | real |
AcceptError |
Opcional | Enum (Sim | Não) |
ErrorCause |
Opcional | Enum (None | Material | Machine | OperatingStaff), extensible |
ExecutedDateTime |
Opcional | Data e hora |
ReportAsFinishedDate |
Opcional | Date |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Sempre | Nunca) |
AutomaticRouteConsumptionRule |
Opcional | Enum (Dependente da Rota | Sempre | Nunca) |
RespectFlushingPrincipleDuringOverproduction |
Opcional | Enum (Sim | Não) |
JournalNameId |
Opcional | Cordão |
PickingListJournalNameId |
Opcional | Cordão |
RouteCardJournalNameId |
Opcional | Cordão |
FromOperationNumber |
Opcional | Integer |
ToOperationNumber |
Opcional | Integer |
InventoryLotId |
Opcional | Cordão |
BaseValue |
Opcional | Cordão |
EndJob |
Opcional | Enum (Sim | Não) |
EndPickingList |
Opcional | Enum (Sim | Não) |
EndRouteCard |
Opcional | Enum (Sim | Não) |
PostNow |
Opcional | Enum (Sim | Não) |
AutoUpdate |
Opcional | Enum (Sim | Não) |
ProductColorId |
Opcional | Cordão |
ProductConfigurationId |
Opcional | Cordão |
ProductSizeId |
Opcional | Cordão |
ProductStyleId |
Opcional | Cordão |
ProductVersionId |
Opcional | Cordão |
ItemBatchNumber |
Opcional | Cordão |
ProductSerialNumber |
Opcional | Cordão |
GenerateLicensePlate |
Opcional (Exige Supply Chain Management versão 10.0.45 ou posterior) | Enum (Sim | Não) |
LicensePlateNumber |
Opcional | Cordão |
InventoryStatusId |
Opcional | Cordão |
ProductionWarehouseId |
Opcional | Cordão |
ProductionSiteId |
Opcional | Cordão |
ProductionWarehouseLocationId |
Opcional | Cordão |
InventoryDimension1 a InventoryDimension12 |
Opcional | Cordão |
As 12 dimensões extensíveis (de InventoryDimension1 a InventoryDimension12) requerem personalização e nem sempre são utilizadas. Para obter mais informações sobre elas, consulte Adicionar novas dimensões de inventário através da extensão.
Mensagem de consumo de material (lista de recolha)
Para a mensagem consumo de material (lista de recolha), o valor de _messageType é ProdProductionOrderPickingList. A seguinte tabela mostra os campos que esta mensagem suporta.
| Nome do campo | Situação | Tipo |
|---|---|---|
ProductionOrderNumber |
Mandatory | Cordão |
JournalNameId |
Opcional | Cordão |
PickingListLines |
Mandatory | Uma lista de linhas (pelo menos uma), em que cada uma contém o payload descrito na tabela seguinte |
A tabela seguinte mostra os campos que cada linha na secção PickingListLines da mensagem ProdProductionOrderPickingList suporta.
| Nome do campo | Situação | Tipo |
|---|---|---|
ItemNumber |
Mandatory | Cordão |
ConsumptionBOMQuantity |
Opcional | real |
ProposalBOMQuantity |
Opcional | real |
ScrapBOMQuantity |
Opcional | real |
BOMUnitSymbol |
Opcional | Cordão |
ConsumptionInventoryQuantity |
Opcional | real |
ProposalInventoryQuantity |
Opcional | real |
ConsumptionCatchWeightQuantity |
Opcional | real |
ProposalCatchWeightQuantity |
Opcional | real |
ConsumptionDate |
Opcional | Date |
OperationNumber |
Opcional | Integer |
LineNumber |
Opcional | real |
PositionNumber |
Opcional | Cordão |
IsConsumptionEnded |
Opcional | Enum (Sim | Não) |
ErrorCause |
Opcional | Enum (None | Material | Machine | OperatingStaff), extensible |
InventoryLotId |
Opcional | Cordão |
ProductColorId |
Opcional | Cordão |
ProductConfigurationId |
Opcional | Cordão |
ProductSizeId |
Opcional | Cordão |
ProductStyleId |
Opcional | Cordão |
ProductVersionId |
Opcional | Cordão |
ItemBatchNumber |
Opcional | Cordão |
ProductSerialNumber |
Opcional | Cordão |
LicensePlateNumber |
Opcional | Cordão |
InventoryStatusId |
Opcional | Cordão |
ProductionWarehouseId |
Opcional | Cordão |
ProductionSiteId |
Opcional | Cordão |
ProductionWarehouseLocationId |
Opcional | Cordão |
InventoryDimension1 a InventoryDimension12 |
Opcional | Cordão |
Mensagem Tempo utilizado para a operação (cartão de rota)
Para a mensagem Tempo utilizado para a operação (cartão de rota), o valor de _messageType é ProdProductionOrderRouteCard. A seguinte tabela mostra os campos que esta mensagem suporta.
| Nome do campo | Situação | Tipo |
|---|---|---|
ProductionOrderNumber |
Mandatory | Cordão |
JournalNameId |
Opcional | Cordão |
RouteCardLines |
Mandatory | Uma lista de linhas (pelo menos uma), em que cada uma contém o payload descrito na tabela seguinte |
A tabela seguinte mostra os campos que cada linha na secção RouteCardLines da mensagem ProdProductionOrderRouteCard suporta.
| Nome do campo | Situação | Tipo |
|---|---|---|
OperationNumber |
Mandatory | Integer |
OperationPriority |
Opcional | Enum (Primário | Secundário1 | Secundário2 | ... | Secundário20) |
OperationId |
Opcional | Cordão |
OperationsResourceId |
Opcional | Cordão |
Worker |
Opcional | Cordão |
HoursRouteCostCategoryId |
Opcional | Cordão |
QuantityRouteCostCategoryId |
Opcional | Cordão |
HourlyRate |
Opcional | real |
Hours |
Opcional | real |
GoodQuantity |
Opcional | real |
ErrorQuantity |
Opcional | real |
CatchWeightGoodQuantity |
Opcional | real |
CatchWeightErrorQuantity |
Opcional | real |
QuantityPrice |
Opcional | real |
ProcessingPercentage |
Opcional | real |
ConsumptionDate |
Opcional | Date |
TaskType |
Opcional | Enum (QueueBefore | Setup | Process | Overlap | Transport | QueueAfter | Burden) |
ErrorCause |
Opcional | Enum (None | Material | Machine | OperatingStaff), extensible |
OperationCompleted |
Opcional | Enum (Sim | Não) |
BOMConsumption |
Opcional | Enum (Sim | Não) |
ReportAsFinished |
Opcional | Enum (Sim | Não) |
Mensagem Terminar ordem de produção
Para a mensagem terminar ordem de produção, o valor de _messageType é ProdProductionOrderEnd. A seguinte tabela mostra os campos que esta mensagem suporta.
| Nome do campo | Situação | Tipo |
|---|---|---|
ProductionOrderNumber |
Mandatory | Cordão |
ExecutedDateTime |
Opcional | Data e hora |
EndedDate |
Opcional | Date |
UseTimeAndAttendanceCost |
Opcional | Enum (Sim | Não) |
AutoReportAsFinished |
Opcional | Enum (Sim | Não) |
AutoUpdate |
Opcional | Enum (Sim | Não) |
Outras informações de produção
As mensagens apoiam ações ou eventos que acontecem no chão da loja. São processados usando o framework de integração MES descrito neste artigo. O design assume que outras informações de referência a serem partilhadas com o MES (como informações relacionadas com o produto, ou a lista de materiais ou rota (com os seus tempos específicos de configuração e configuração) usados numa ordem de produção específica) serão recuperadas do sistema usando entidades de dados via transferência de ficheiros ou OData.
Receber comentários sobre o estado de uma mensagem
Depois de o MES enviar uma mensagem para o Supply Chain Management, poderá ser relevante para o Supply Chain Management devolver comentários sobre o estado da mensagem. Seguem-se alguns exemplos de casos onde este comportamento pode ser relevante:
- Ninguém é responsável por supervisionar constantemente a integração do MES.
- A pessoa responsável pela supervisão da integração com o MES pretende ser notificada por e-mail quando uma mensagem falha, para que saiba que tem de agir.
- O MES tem de mostrar uma mensagem de erro para informar o operador do local de produção ou alguém do departamento de TI que tem de agir.
- O MES tem de recalcular a agenda de encomendas depois de receber uma mensagem de falha (por exemplo, porque uma ordem de produção não foi iniciada).
Nestes casos, pode tirar partido da funcionalidade de alerta padrão no Supply Chain Management. Para obter informações sobre como funcionam os alertas padrão, consulte os seguintes recursos:
- Artigo de ajuda: Resumo dos alertas
- Vídeo: Opções de regras de alerta em finanças e operações
Por exemplo, pode configurar os seguintes alertas para fornecer comentários sobre o estado de uma mensagem:
- Crie um evento empresarial ("Enviar externamente") que seja utilizado quando uma mensagem é Com falhas.
- Envie uma notificação e um e-mail para o administrador de TI ou gestor do local de produção.
Limpar mensagens processadas e canceladas do processador de mensagens
Com o tempo, mensagens processadas e canceladas relacionadas com sistemas MES de terceiros podem acumular-se no sistema, afetando potencialmente o desempenho e a gestão de dados. Por isso, deve limpar periodicamente estas mensagens para manter a eficiência do sistema. Saiba mais em Limpar mensagens processadas e canceladas do processador de mensagens.