Partilhar via


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.

Cenário de integração típico.

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.

  1. Aceda a Administração do sistema > Configuração > Configuração de licenças.
  2. 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:
    1. Coloque o seu sistema em modo de manutenção, conforme descrito na secção Modo de manutenção.
    2. Na página Configuração de licenças , seleccione a caixa de verificação Tempo e assiduidade .
    3. Desativar o modo de manutenção, como descrito em Modo de manutenção
  3. Aceda a Administração do sistema > Espaços de trabalho > Gestão de funcionalidades.
  4. 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:

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.