Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Algumas organizações de manufatura que utilizam Microsoft Dynamics 365 Supply Chain Management utilizam a funcionalidade nativa da Dynamics 365 para controlar suas atividades de fabricação de máquinas, equipamentos e pessoal. No entanto, outras organizações de fabricação, especialmente com requisitos avançados de fabricação, usam um MES (sistema de execução de fabricação de terceiros). As organizações podem escolher uma solução MES de terceiros porque, por exemplo, ela é especificamente ajustada ao setor vertical.
Na solução integrada, a troca de dados é totalmente automatizada e ocorre em tempo quase real. Portanto, os dados são mantidos atuais nos dois sistemas e não é necessária a entrada de dados manual. Por exemplo, quando o consumo de material é registrado no MES, a integração garante que o mesmo consumo também esteja registrado no Dynamics 365. Portanto, os registros de estoque atualizados estão disponíveis para outros processos importantes, como planejamento e vendas.
A solução torna a integração de usuários do Gerenciamento da Cadeia de Suprimentos com MESs terceirizados mais rápida, fácil e barata. Ele oferece os seguintes recursos:
- Eventos e interfaces de negócios compatíveis com os principais processos de execução de fabricação
- Um painel centralizado em que é possível rastrear o histórico de processamento de eventos e solucionar e corrigir processos com falha
A ilustração a seguir mostra uma coleção típica de eventos de negócios, processos e mensagens trocadas em uma solução integrada.
Pré-requisitos
Para integrar-se a um sistema de execução da manufatura de terceiros, a chave de licença Tempo e presença deve ser habilitada no Gerenciamento da Cadeia de Suprimentos. Siga estes passos para verificar se está ativado e para ativar, se necessário:
- Vá para Administração do sistema > Configuração > Configuração da licença.
- Verifique se a chave de licença Horário e presença está habilitada (exibe uma marca de seleção). Essa chave de licença é necessária porque ela controla a funcionalidade e os dados do sistema de execução de fabricação. Se ela não estiver habilitada, siga estas etapas:
- Coloque seu sistema em modo de manutenção, conforme descrito em Modo de manutenção.
- Na página Configuração de licença, marque a caixa de seleção Horário e presença.
- Desative o modo de manutenção, conforme descrito no Modo de manutenção
Processos disponíveis para integração MES
Você pode habilitar qualquer ou todos os processos a seguir para integração.
| Nome do processo | Description |
|---|---|
| Liberar ordens de produção e status de ordem de produção para alterar eventos de negócios | Esse processo fornece um evento de negócios 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 à ordem de produção sejam compartilhados do Gerenciamento da Cadeia de Suprimentos para o MES por meio do Protocolo Open Data (OData) ou de entidades de dados. |
| Começar ordem de produção | Este processo fornece ao Gerenciamento da Cadeia de Suprimentos informações sobre ordens de produção iniciadas com o MES. Ele garante que os dois sistemas tenham uma exibição atualizada de todas as atividades de fabricação. |
| Relatório produzido ou quantidade sucateada | Este processo fornece ao Gerenciamento da Cadeia de Suprimentos informações sobre quantidades de mercadoria e de erro que são relatadas em um trabalho de produção com o MES. Ele garante que os supervisores de chão de fábrica tenham uma exibição atualizada do andamento do plano de produção. |
| Relatar consumo de materiais | Esse processo fornece ao Gerenciamento da Cadeia de Suprimentos informações do MES sobre as quantidades de materiais consumidos. Ele disponibiliza registros de estoque atualizados para outros processos importantes, como planejamento e vendas. |
| Relatar tempo consumido para a operação | Esse processo fornece ao Gerenciamento da Cadeia de Suprimentos informações sobre o tempo usado para uma operação específica. |
| Ordem de produção final | Esse processo informa ao Gerenciamento da Cadeia de Suprimentos que o MES atualizou uma ordem de produção para o status final Concluído. Esse status indica que nenhuma quantidade maior será produzida na ordem de produção. |
Monitorar mensagens de entrada
Para monitorar as mensagens MES de entrada no sistema, acesse Controle de produção > Configuração > Execução de fabricação > Integração de sistemas de execução de fabricação.
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. No caso de falha, o trabalho em lotes tentará processar cada mensagem três vezes antes de defini-la como status de Falha.
A página Integração de sistemas de execução de fabricação funciona da mesma forma que a página Mensagens do processador de mensagens e representa uma funcionalidade muito parecida. (Ele até mostra mensagens MES além de outros tipos de mensagens.) Para informações sobre como usar qualquer uma das páginas para revisar mensagens, encontrar e corrigir mensagens falhadas e muito mais, veja Monitorar e controlar mensagens do processador de mensagens.
Chamar a API
Para chamar a API de integração de MES, envie uma solicitação POST para a seguinte URL de ponto de extremidade:
/api/services/SysMessageServices/SysMessageService/SendMessage
O corpo da solicitação enviada deve ser semelhante ao exemplo a seguir. Substitua os valores de _companyId, _messageType e _messageContent conforme necessário. Para obter informações sobre os vários tipos de mensagem com suporte da API e como criar seu conteúdo, consulte a próxima seção.
{
"_companyId": "USMF",
"_messageQueue": "JmgMES3P",
"_messageType": "ProdProductionOrderReportFinished",
"_messageContent":
"{\"ProductionOrderNumber\": \"P000123\", \"ReportFinishedLines\": [{\"ItemNumber\": \"A0001\", \"ReportedGoodQuantity\": 10, \"ReportAsFinishedDate\": \"2021-01-01\"}]}"
}
Tipos e conteúdo de mensagens de API
Esta seção descreve cada tipo de mensagem que pode ser trocada por meio da API de integração MES.
Mensagem iniciar ordem de produção
Para a mensagem iniciar ordem de produção, o valor _messageType é ProdProductionOrderStart. A tabela a seguir mostra os campos com suporte desta mensagem.
| Nome do campo | Status | Tipo |
|---|---|---|
ProductionOrderNumber |
Obrigatório | String |
StartedQuantity |
Opcional | Real |
StartedDate |
Opcional | Date |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Sempre | Nunca) |
AutomaticRouteConsumptionRule |
Opcional | Enum (RouteDependent | Always | Never) |
Mensagem Relatar como concluído
Para a mensagem relatar como concluído, o valor _messageType é ProdProductionOrderReportFinished. A tabela a seguir mostra os campos com suporte desta mensagem.
| Nome do campo | Status | Tipo |
|---|---|---|
ProductionOrderNumber |
Obrigatório | String |
ReportFinishedLines |
Obrigatório | Uma lista de linhas (pelo menos uma), cada uma contendo o payload descrito na próxima tabela |
PrintLabel |
Opcional (Exige Gerenciamento da Cadeia de Suprimentos versão 10.0.45 ou posterior) | Enum (Sim | Não) |
A tabela a seguir mostra os campos compatíveis com cada linha na seção ReportFinishedLines da mensagem ProdProductionOrderReportFinished.
| Nome do campo | Status | Tipo |
|---|---|---|
LineNumber |
Opcional | Real |
ItemNumber |
Opcional | String |
ProductionType |
Opcional | Enum (MainItem | Formula | BOM | Co_Product | By_Product | None), extensível |
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), extensível |
ExecutedDateTime |
Opcional | Data e hora |
ReportAsFinishedDate |
Opcional | Date |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Sempre | Nunca) |
AutomaticRouteConsumptionRule |
Opcional | Enum (RouteDependent | Always | Never) |
RespectFlushingPrincipleDuringOverproduction |
Opcional | Enum (Sim | Não) |
JournalNameId |
Opcional | String |
PickingListJournalNameId |
Opcional | String |
RouteCardJournalNameId |
Opcional | String |
FromOperationNumber |
Opcional | Número inteiro |
ToOperationNumber |
Opcional | Número inteiro |
InventoryLotId |
Opcional | String |
BaseValue |
Opcional | String |
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 | String |
ProductConfigurationId |
Opcional | String |
ProductSizeId |
Opcional | String |
ProductStyleId |
Opcional | String |
ProductVersionId |
Opcional | String |
ItemBatchNumber |
Opcional | String |
ProductSerialNumber |
Opcional | String |
GenerateLicensePlate |
Opcional (Exige Gerenciamento da Cadeia de Suprimentos versão 10.0.45 ou posterior) | Enum (Sim | Não) |
LicensePlateNumber |
Opcional | String |
InventoryStatusId |
Opcional | String |
ProductionWarehouseId |
Opcional | String |
ProductionSiteId |
Opcional | String |
ProductionWarehouseLocationId |
Opcional | String |
InventoryDimension1 a InventoryDimension12 |
Opcional | String |
As 12 dimensões extensíveis (InventoryDimension1 a InventoryDimension12) exigem personalização e nem sempre são usadas. Para obter mais informações sobre elas, consulte Adicionar novas dimensões de estoque por meio da extensão.
Mensagem de consumo de material (lista de separação)
Para a mensagem consumo de material (lista de separação), o valor _messageType é ProdProductionOrderPickingList. A tabela a seguir mostra os campos com suporte desta mensagem.
| Nome do campo | Status | Tipo |
|---|---|---|
ProductionOrderNumber |
Obrigatório | String |
JournalNameId |
Opcional | String |
PickingListLines |
Obrigatório | Uma lista de linhas (pelo menos uma), cada uma contendo o payload descrito na próxima tabela |
A tabela a seguir mostra os campos compatíveis com cada linha na seção PickingListLines da mensagem ProdProductionOrderPickingList.
| Nome do campo | Status | Tipo |
|---|---|---|
ItemNumber |
Obrigatório | String |
ConsumptionBOMQuantity |
Opcional | Real |
ProposalBOMQuantity |
Opcional | Real |
ScrapBOMQuantity |
Opcional | Real |
BOMUnitSymbol |
Opcional | String |
ConsumptionInventoryQuantity |
Opcional | Real |
ProposalInventoryQuantity |
Opcional | Real |
ConsumptionCatchWeightQuantity |
Opcional | Real |
ProposalCatchWeightQuantity |
Opcional | Real |
ConsumptionDate |
Opcional | Date |
OperationNumber |
Opcional | Número inteiro |
LineNumber |
Opcional | Real |
PositionNumber |
Opcional | String |
IsConsumptionEnded |
Opcional | Enum (Sim | Não) |
ErrorCause |
Opcional | Enum (None | Material | Machine | OperatingStaff), extensível |
InventoryLotId |
Opcional | String |
ProductColorId |
Opcional | String |
ProductConfigurationId |
Opcional | String |
ProductSizeId |
Opcional | String |
ProductStyleId |
Opcional | String |
ProductVersionId |
Opcional | String |
ItemBatchNumber |
Opcional | String |
ProductSerialNumber |
Opcional | String |
LicensePlateNumber |
Opcional | String |
InventoryStatusId |
Opcional | String |
ProductionWarehouseId |
Opcional | String |
ProductionSiteId |
Opcional | String |
ProductionWarehouseLocationId |
Opcional | String |
InventoryDimension1 a InventoryDimension12 |
Opcional | String |
Tempo usado para a mensagem da operação (cartão de roteiro)
Para a mensagem tempo usado para a operação (cartão de roteiro), o valor _messageType é ProdProductionOrderRouteCard. A tabela a seguir mostra os campos com suporte desta mensagem.
| Nome do campo | Status | Tipo |
|---|---|---|
ProductionOrderNumber |
Obrigatório | String |
JournalNameId |
Opcional | String |
RouteCardLines |
Obrigatório | Uma lista de linhas (pelo menos uma), cada uma contendo o payload descrito na próxima tabela |
A tabela a seguir mostra os campos compatíveis com cada linha na seção RouteCardLines da mensagem ProdProductionOrderRouteCard.
| Nome do campo | Status | Tipo |
|---|---|---|
OperationNumber |
Obrigatório | Número inteiro |
OperationPriority |
Opcional | Enum (Primário | Secundário1 | Secundário2 | ... | Secundário20) |
OperationId |
Opcional | String |
OperationsResourceId |
Opcional | String |
Worker |
Opcional | String |
HoursRouteCostCategoryId |
Opcional | String |
QuantityRouteCostCategoryId |
Opcional | String |
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 (Fila Antes | Configuração | Processo | Sobreposição | Transporte | Fila Depois | Fardo) |
ErrorCause |
Opcional | Enum (None | Material | Machine | OperatingStaff), extensível |
OperationCompleted |
Opcional | Enum (Sim | Não) |
BOMConsumption |
Opcional | Enum (Sim | Não) |
ReportAsFinished |
Opcional | Enum (Sim | Não) |
Mensagem Finalizar ordem de produção
Para a mensagem finalizar ordem de produção, o valor _messageType é ProdProductionOrderEnd. A tabela a seguir mostra os campos com suporte desta mensagem.
| Nome do campo | Status | Tipo |
|---|---|---|
ProductionOrderNumber |
Obrigatório | String |
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 suportam ações ou eventos que ocorrem no chão de fábrica. Eles são processados usando o framework de integração MES descrito neste artigo. O design supõe que outras informações de referência a serem compartilhadas com o MES (como informações relacionadas ao produto ou a lista de materiais ou o roteiro (com os horários de configuração e configuração específicos) usados em uma ordem de produção específica) serão recuperadas do sistema usando entidades de dados via transferência de arquivo ou OData.
Receber comentários sobre o estado de uma mensagem
Após o MES enviar uma mensagem para o Gerenciamento da Cadeia de Suprimentos, talvez seja relevante para o Gerenciamento da Cadeia de Suprimentos retornar comentários sobre o estado da mensagem. Veja alguns exemplos de casos em que esse comportamento pode ser relevante:
- Ninguém é responsável por supervisionar constantemente a integração do MES.
- A pessoa responsável por supervisionar a integração de MES deseja ser notificada por email quando uma mensagem falha, para que saiba que precisa agir.
- O MES deve mostrar uma mensagem de erro para informar o operador de chão de fábrica ou alguém do departamento de TI que deve tomar medidas.
- O MES deve recalcular o agendamento da ordem após receber uma mensagem de falha (por exemplo, porque uma ordem de produção falhou ao iniciar).
Nesses casos, você pode aproveitar o recurso de alerta padrão no Gerenciamento da Cadeia de Suprimentos. Para obter informações sobre como alertas padrão funcionam, consulte os seguintes recursos:
- Artigo da ajuda: Visão geral de alertas
- Vídeo: Opções de regra de alerta em finanças e operações
Por exemplo, você pode configurar os seguintes alertas para fornecer comentários sobre o estado de uma mensagem:
- Crie um evento de negócios ("Enviar externamente") que é usado quando uma mensagem Falha.
- Envie uma notificação e um email para o administrador de TI ou o gerente de piso de produção.
Limpar mensagens processadas e canceladas do processador de mensagens
Com o tempo, mensagens processadas e canceladas relacionadas a sistemas MES de terceiros podem se acumular no sistema, potencialmente afetando o desempenho e o gerenciamento de dados. Portanto, você deve limpar periodicamente essas mensagens para manter a eficiência do sistema. Saiba mais em Limpeza de mensagens processadas e canceladas do processador de mensagens.