Integração com sistemas de execução de fabrico de terceiros
Algumas organizações de fabrico que utilizam o Microsoft Dynamics 365 Supply Chain Management utilizam a funcionalidade nativa no Dynamics 365 para controlar as suas atividades de fabrico para 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 e interfaces comerciais que apoiam os principais processos de execução do fabrico
- 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.
Ativar a funcionalidade de integração MES
Antes de utilizar esta funcionalidade, um administrador tem de ativá-lo no seu sistema, conforme descrito no seguinte procedimento.
- Aceda a Administração do sistema > Configuração > Configuração de licenças.
- Certifique-se de que a chave de licença Time and attendance está activada (apresenta 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 ativado, execute 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ças , seleccione a caixa de verificação Tempo e assiduidade .
- Desativar o modo de manutenção, como descrito em Modo de manutenção
- Aceda a Administração do sistema > Espaços de trabalho > Gestão de funcionalidades.
- Utilize o espaço de trabalho Feature management para ativar a funcionalidade Manufacturing execution system integration . (A partir da versão 10.0.29 do Supply Chain Management, esta funcionalidade está ativada por predefinição. A partir da versão 10.0.32 do Supply Chain Management, é obrigatória e não pode ser desativada.)
Processos disponíveis para a integração com o MES
Pode ativar qualquer um ou todos os seguintes processos para a integração.
Nome de processo | Descrição |
---|---|
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 | Isto processo informa a Gestão da Cadeia de Abastecimento que o MES actualizou uma ordem de produção para o seu estado final de Terminou. 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 no sistema, consultar Controlo da produção > Configuração > Execução da produção > Integração dos sistemas de execução da produçã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 diferentes ordens de produção podem não ser processadas na sequência recebida, porque os jobs em lote são processados em paralelo. Em caso de falha, a tarefa em lote tentará processar cada mensagem três vezes antes de a colocar no estado Failed .
A página Manufacturing execution systems integration funciona da mesma forma que a página Message processor messages e representa uma funcionalidade muito semelhante. (Para obter informações sobre como utilizar qualquer uma das páginas para rever mensagens, localizar e corrigir mensagens com falhas, etc., consulte Página de mensagens do processador de mensagens
Chamar a API
Para chamar a API de integração MES, envie um pedido POST
para o seguinte URL do ponto de extremidade:
/api/services/SysMessageServices/SysMessageService/SendMessage
O corpo do pedido que enviar deve assemelhar-se ao seguinte exemplo. Substitua os valores de _companyId
, _messageType
e _messageContent
conforme 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 start production order , o valor _messageType
é ProdProductionOrderStart
. A seguinte tabela mostra os campos que esta mensagem suporta.
Nome do campo | Estado | Tipo |
---|---|---|
ProductionOrderNumber |
Obrigatório | Cadeia |
StartedQuantity |
Opcional | Real |
StartedDate |
Opcional | Data |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Sempre | Nunca) |
Reportar como mensagem concluída
Para o relatório como mensagem terminada, o valor _messageType
é ProdProductionOrderReportFinished
. A seguinte tabela mostra os campos que esta mensagem suporta.
Nome do campo | Estado | Tipo |
---|---|---|
ProductionOrderNumber |
Obrigatório | Cadeia |
ReportFinishedLines |
Obrigatório | 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 da secção ReportFinishedLines
da mensagem ProdProductionOrderReportFinished
suporta.
Nome do campo | Estado | Tipo |
---|---|---|
LineNumber |
Opcional | Real |
ItemNumber |
Opcional | Cadeia |
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 | DateTime |
ReportAsFinishedDate |
Opcional | Data |
AutomaticBOMConsumptionRule |
Opcional | Enum (FlushingPrincip | Sempre | Nunca) |
AutomaticRouteConsumptionRule |
Opcional | Enum (RouteDependent | Sempre | Nunca) |
RespectFlushingPrincipleDuringOverproduction |
Opcional | Enum (Sim | Não) |
JournalNameId |
Opcional | Cadeia |
PickingListJournalNameId |
Opcional | Cadeia |
RouteCardJournalNameId |
Opcional | Cadeia |
FromOperationNumber |
Opcional | Número Inteiro |
ToOperationNumber |
Opcional | Número Inteiro |
InventoryLotId |
Opcional | Cadeia |
BaseValue |
Opcional | Cadeia |
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 | Cadeia |
ProductConfigurationId |
Opcional | Cadeia |
ProductSizeId |
Opcional | Cadeia |
ProductStyleId |
Opcional | Cadeia |
ProductVersionId |
Opcional | Cadeia |
ItemBatchNumber |
Opcional | Cadeia |
ProductSerialNumber |
Opcional | Cadeia |
LicensePlateNumber |
Opcional | Cadeia |
InventoryStatusId |
Opcional | Cadeia |
ProductionWarehouseId |
Opcional | Cadeia |
ProductionSiteId |
Opcional | Cadeia |
ProductionWarehouseLocationId |
Opcional | Cadeia |
InventoryDimension1 para InventoryDimension12 |
Opcional | Cadeia |
As 12 dimensões extensíveis (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 de consumo de material (lista de picking) , o valor _messageType
é ProdProductionOrderPickingList
. A seguinte tabela mostra os campos que esta mensagem suporta.
Nome do campo | Estado | Tipo |
---|---|---|
ProductionOrderNumber |
Obrigatório | Cadeia |
JournalNameId |
Opcional | Cadeia |
PickingListLines |
Obrigatório | 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 da secção PickingListLines
da mensagem ProdProductionOrderPickingList
suporta.
Nome do campo | Estado | Tipo |
---|---|---|
ItemNumber |
Obrigatório | Cadeia |
ConsumptionBOMQuantity |
Opcional | Real |
ProposalBOMQuantity |
Opcional | Real |
ScrapBOMQuantity |
Opcional | Real |
BOMUnitSymbol |
Opcional | Cadeia |
ConsumptionInventoryQuantity |
Opcional | Real |
ProposalInventoryQuantity |
Opcional | Real |
ConsumptionCatchWeightQuantity |
Opcional | Real |
ProposalCatchWeightQuantity |
Opcional | Real |
ConsumptionDate |
Opcional | Data |
OperationNumber |
Opcional | Número Inteiro |
LineNumber |
Opcional | Real |
PositionNumber |
Opcional | Cadeia |
IsConsumptionEnded |
Opcional | Enum (Sim | Não) |
ErrorCause |
Opcional | Enum (None | Material | Machine | OperatingStaff), extensível |
InventoryLotId |
Opcional | Cadeia |
Mensagem Tempo utilizado para a operação (cartão de rota)
Para a mensagem time used for operation (route card) , o valor _messageType
é ProdProductionOrderRouteCard
. A seguinte tabela mostra os campos que esta mensagem suporta.
Nome do campo | Estado | Tipo |
---|---|---|
ProductionOrderNumber |
Obrigatório | Cadeia |
JournalNameId |
Opcional | Cadeia |
RouteCardLines |
Obrigatório | 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 da secção RouteCardLines
da mensagem ProdProductionOrderRouteCard
suporta.
Nome do campo | Estado | Tipo |
---|---|---|
OperationNumber |
Obrigatório | Número Inteiro |
OperationPriority |
Opcional | Enum (Primário | Secundário1 | Secundário2 | ... | Secundário20) |
OperationId |
Opcional | Cadeia |
OperationsResourceId |
Opcional | Cadeia |
Worker |
Opcional | Cadeia |
HoursRouteCostCategoryId |
Opcional | Cadeia |
QuantityRouteCostCategoryId |
Opcional | Cadeia |
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 Terminar ordem de produção
Para a mensagem end production order , o valor _messageType
é ProdProductionOrderEnd
. A seguinte tabela mostra os campos que esta mensagem suporta.
Nome do campo | Estado | Tipo |
---|---|---|
ProductionOrderNumber |
Obrigatório | Cadeia |
ExecutedDateTime |
Opcional | DateTime |
EndedDate |
Opcional | Data |
UseTimeAndAttendanceCost |
Opcional | Enum (Sim | Não) |
AutoReportAsFinished |
Opcional | Enum (Sim | Não) |
AutoUpdate |
Opcional | Enum (Sim | Não) |
Outras informações sobre a produção
As mensagens apoiam ações ou eventos que ocorrem no chão de fábrica. São processados utilizando o quadro de integração MES descrito neste artigo. A conceção pressupõe que outras informações de referência a partilhar com o MES (tais como informações relacionadas com produtos, ou a lista de materiais ou o itinerário (com os seus tempos específicos de preparação e configuração) utilizados numa ordem de produção específica) serão recuperadas do sistema utilizando entidades de dados através de 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:
- Não existe nenhuma pessoa responsável por supervisionar constantemente a integração com o 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: Visão geral 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:
- Criar um evento ("Enviar externamente") que é utilizado quando uma mensagem é Failed.
- Envie uma notificação e um e-mail para o administrador de TI ou gestor do local de produção.