Integração com sistemas de execução de fabricação de terceiros
Algumas organizações de fabricação que usam o Microsoft Dynamics 365 Supply Chain Management usam a funcionalidade nativa no Dynamics 365 para controlar atividades de fabricação para máquinas, equipamentos e funcionários. 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 Supply Chain Management com MESs terceirizados mais rápida, fácil e barata. Ela 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.
Ativar o recurso de integração MES
Para que você possa usar esse recurso, um administrador deve ativá-lo no sistema, conforme descrito no procedimento a seguir.
- Acesse Administração de sistema > Configurar > Configuração de 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
- Acesse Administrador do sistema > Espaços de trabalho > Gerenciamento de recursos.
- Use o espaço de trabalho Gerenciamento de recursos para ativar o recurso Integração do sistema de execução de manufatura. (A partir do Supply Chain Management versão 10.0.29, este recurso está ativado por padrão. Desde a versão 10.0.32 do Supply Chain Management, ele é obrigatório e não pode ser desativado.)
Processos disponíveis para integração MES
Você pode habilitar qualquer ou todos os processos a seguir para integração.
Nome do processo | Descrição |
---|---|
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 Supply Chain Management 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 Supply Chain Management 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 Supply Chain Management 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 Supply Chain Management 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 Supply Chain Management informações sobre o tempo usado para uma operação específica. |
Ordem de produção final | Esse processo informa ao Supply Chain Management 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 para uma ordem de produção específica são processadas na sequência em que são recebidas. No entanto, as mensagens para ordens de produção diferentes não podem ser processadas na sequência de recebimentos porque os trabalhos em lotes 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. (Até mostra mensagens MES, além de outros tipos de mensagens.) Para obter informações sobre como usar as páginas para revisar mensagens, localizar e corrigir mensagens com falha e muito mais, consulte a Página de 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 | Sequência de caracteres |
StartedQuantity |
Opcional | Real |
StartedDate |
Opcional | Data |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | 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 | Sequência de caracteres |
ReportFinishedLines |
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 ReportFinishedLines
da mensagem ProdProductionOrderReportFinished
.
Nome do campo | Status | Tipo |
---|---|---|
LineNumber |
Opcional | Real |
ItemNumber |
Opcional | Sequência de caracteres |
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 | Data |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Always | Never) |
AutomaticRouteConsumptionRule |
Opcional | Enum (RouteDependent | Always | Never) |
RespectFlushingPrincipleDuringOverproduction |
Opcional | Enum (Sim | Não) |
JournalNameId |
Opcional | Sequência de caracteres |
PickingListJournalNameId |
Opcional | Sequência de caracteres |
RouteCardJournalNameId |
Opcional | Sequência de caracteres |
FromOperationNumber |
Opcional | Inteiro |
ToOperationNumber |
Opcional | Inteiro |
InventoryLotId |
Opcional | Sequência de caracteres |
BaseValue |
Opcional | Sequência de caracteres |
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 | Sequência de caracteres |
ProductConfigurationId |
Opcional | Sequência de caracteres |
ProductSizeId |
Opcional | Sequência de caracteres |
ProductStyleId |
Opcional | Sequência de caracteres |
ProductVersionId |
Opcional | Sequência de caracteres |
ItemBatchNumber |
Opcional | Sequência de caracteres |
ProductSerialNumber |
Opcional | Sequência de caracteres |
LicensePlateNumber |
Opcional | Sequência de caracteres |
InventoryStatusId |
Opcional | Sequência de caracteres |
ProductionWarehouseId |
Opcional | Sequência de caracteres |
ProductionSiteId |
Opcional | Sequência de caracteres |
ProductionWarehouseLocationId |
Opcional | Sequência de caracteres |
InventoryDimension1 para InventoryDimension12 |
Opcional | Sequência de caracteres |
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 | Sequência de caracteres |
JournalNameId |
Opcional | Sequência de caracteres |
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 | Sequência de caracteres |
ConsumptionBOMQuantity |
Opcional | Real |
ProposalBOMQuantity |
Opcional | Real |
ScrapBOMQuantity |
Opcional | Real |
BOMUnitSymbol |
Opcional | Sequência de caracteres |
ConsumptionInventoryQuantity |
Opcional | Real |
ProposalInventoryQuantity |
Opcional | Real |
ConsumptionCatchWeightQuantity |
Opcional | Real |
ProposalCatchWeightQuantity |
Opcional | Real |
ConsumptionDate |
Opcional | Data |
OperationNumber |
Opcional | Inteiro |
LineNumber |
Opcional | Real |
PositionNumber |
Opcional | Sequência de caracteres |
IsConsumptionEnded |
Opcional | Enum (Sim | Não) |
ErrorCause |
Opcional | Enum (None | Material | Machine | OperatingStaff), extensível |
InventoryLotId |
Opcional | Sequência de caracteres |
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 | Sequência de caracteres |
JournalNameId |
Opcional | Sequência de caracteres |
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 |
Início de obrigatoriedade da entrega no curso do ano calendário | Inteiro |
OperationPriority |
Opcional | Enum (Primary | Secondary1 | Secondary2 | ... | Secondary20) |
OperationId |
Opcional | Sequência de caracteres |
OperationsResourceId |
Opcional | Sequência de caracteres |
Worker |
Opcional | Sequência de caracteres |
HoursRouteCostCategoryId |
Opcional | Sequência de caracteres |
QuantityRouteCostCategoryId |
Opcional | Sequência de caracteres |
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 | Data |
TaskType |
Opcional | Enum (QueueBefore | Setup | Process | Overlap | Transport | QueueAfter | Burden) |
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 | Sequência de caracteres |
ExecutedDateTime |
Opcional | Data e Hora |
EndedDate |
Opcional | Data |
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. Elas são processadas usando a estrutura de integração MES descrita 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 Supply Chain Management, talvez seja relevante para o Supply Chain Management retornar comentários sobre o estado da mensagem. Veja alguns exemplos de casos em que esse comportamento pode ser relevante:
- Não há pessoa responsável por supervisionar constantemente a integração de 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 Supply Chain Management. 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.