Integrações / ERP / Microsoft Dynamics 365 Supply Chain Management
Guia de integração do Dynamics 365 Supply Chain Management para programação da produção com SkyPlanner APS
Este guia de integração do Dynamics 365 Supply Chain Management mostra a parceiros e equipes de TI como conectar o Microsoft Dynamics 365 Supply Chain Management ao SkyPlanner APS. A integração do SkyPlanner com o Dynamics 365 Supply Chain Management é bidirecional e usa as entidades de dados padrão do sistema:
- O SkyPlanner recebe ordens de produção, operações e tarefas de roteiro, linhas de BOM, recursos, calendários, produtos liberados, estoque disponível e linhas de pedidos de compra.
- Os horários programados de início e término e o recurso escolhido são gravados de volta na ordem de produção e em suas operações de roteiro.
- As horas dos operadores e as quantidades retornam pelo diário de cartão de roteiro.
- Os webhooks do SkyPlanner enviam as alterações na programação assim que elas ocorrem.
A equipe do SkyPlanner configura a integração de acordo com o seu ambiente do Supply Chain Management durante a implantação e oferece suporte após a entrada em produção. Este guia é voltado a parceiros e desenvolvedores que desejam participar do projeto ou desenvolver por conta própria com a REST API documentada do SkyPlanner (referência da API).
Opções de integração com o Dynamics 365 SCM
O Supply Chain Management disponibiliza seus dados por meio de entidades de dados. Quatro opções são relevantes para a programação:
- Endpoint REST do OData v4.
[Your organization's root URL]/datadisponibiliza todas as entidades de dados marcadas como IsPublic, com suporte completo a criação, leitura, atualização e exclusão. Aceita$filter,$count,$orderby,$skip,$top,$selecte$expandde primeiro nível. A paginação é controlada pelo servidor, com um máximo de 10.000 registros, e as solicitações em lote podem agrupar gravações em changesets. O OData é síncrono. (fonte) - API de dados em lote. A Data management package REST API e as integrações recorrentes transferem grandes volumes de forma assíncrona. Segundo a Microsoft: “If the volume is more than a few hundred thousand records, use the batch data API.” (Se o volume ultrapassar algumas centenas de milhares de registros, use a API de dados em lote.) Essa também é a API compatível com ambientes locais. (fonte)
- Eventos de negócios. Os aplicativos de finanças e operações publicam eventos de negócios no Azure Service Bus, no Event Grid, em endpoints HTTPS ou no Power Automate. (fonte)
- Serviços personalizados e ações OData. Serviços personalizados em X++ e ações OData vinculadas executam a lógica de negócios sob demanda.
A integração do SkyPlanner usa o endpoint OData para o tráfego diário e a API de dados em lote para cargas iniciais de grande volume. Nada é instalado no Supply Chain Management.
Autenticação
Registre um aplicativo no Microsoft Entra ID (entidade de serviço). No Supply Chain Management, associe esse aplicativo a um usuário com as funções de segurança necessárias para a integração. A integração lê dados de produção, recursos e estoque e grava a programação das ordens de produção e os diários. Os tokens são solicitados ao Entra ID com credenciais de cliente.
Duas regras determinam quais dados a integração pode acessar:
- Entidades legais. O OData retorna a empresa padrão, a menos que a solicitação inclua
?cross-company=true. Em ambientes com várias unidades fabris, a filtragem é feita pordataAreaId. - Nomes públicos. Os nomes de entidades abaixo são os usados no gerenciamento de dados. Os nomes públicos das coleções OData podem ser diferentes; por isso, consulte-os em
/data/$metadatano seu ambiente.
No SkyPlanner, a REST API usa um token de API para autenticação (SkyPlanner Settings > API) e está documentada em Swagger/OpenAPI. O tutorial de integração orienta as primeiras chamadas.
Mapeamento de dados
| Entidade do D365 SCM | Objeto do SkyPlanner | Direção | Frequência |
|---|---|---|---|
| Produtos liberados (ItemNumber) | Produtos e materiais | SCM → SkyPlanner | Carga inicial, depois cargas incrementais |
| Linhas de BOM de produção (ProdProductionOrderBillOfMaterialsLineEntity), linhas de BOM | Estrutura do produto, materiais por ordem | SCM → SkyPlanner | A cada sincronização de ordens |
| Roteiro, versões de roteiro, operações de roteiro, propriedades das operações (RouteOperationPropertiesV2Entity) | Etapas do processo com tempos de preparação e execução | SCM → SkyPlanner | Carga inicial, depois a cada alteração |
| Recursos (OpResOperationsResourceEntity), grupos de recursos, capacidades | Centros de trabalho, grupos de centros de trabalho, eficiências | SCM → SkyPlanner | Carga inicial, raramente depois |
| Calendários de trabalho, dias e intervalos de horário dos calendários, atribuições de calendários | Turnos | SCM → SkyPlanner | Diariamente, ou turnos mantidos no SkyPlanner |
| Cabeçalhos de ordens de produção (ProdProductionOrderHeaderEntity) | Ordens com prazos e status | SCM → SkyPlanner | A cada poucos minutos ou mediante evento de negócios |
| Operações de roteiro (ProdProductionOrderRouteOperationEntity), tarefas de roteiro (ProdProductionOrderRouteJobEntity) | Operações com durações e requisitos de recursos | SCM → SkyPlanner | A cada sincronização de ordens |
| Estoque disponível | Saldos de estoque | SCM → SkyPlanner | A cada hora ou a cada execução da programação |
| Linhas de pedidos de compra com data de entrega | Material a receber; o estoque é atualizado quando o pedido de compra recebe o status Delivered | SCM → SkyPlanner | A cada hora ou a cada execução da programação |
| Datas e horários programados de início e término e recurso atribuído a cada operação de roteiro | Início, término e centro de trabalho planejados por operação | SkyPlanner → SCM | A cada alteração na programação, via webhook do SkyPlanner |
| Diário de cartão de roteiro (ProdRouteCardProductionJournalEntryEntity: RegisteredHours, ReportedGoodInventoryQuantity) | Apontamentos de horas e quantidades | SkyPlanner → SCM | Por confirmação ou por turno, se essa opção for escolhida |
| Configuração de restrições do SkyPlanner | Matriz de tempos de preparação, ferramentas como recursos finitos, número de operadores, recursos alternativos | Mantida no SkyPlanner | Configurada durante a implantação |
Padrões de integração
1. Carga inicial de dados mestres. Carregue recursos, grupos de recursos, calendários, produtos liberados, roteiros e BOMs. Use a API de dados em lote quando o volume chegar a centenas de milhares de registros; nos demais casos, use a paginação OData. Mapeie cada recurso do SCM para um centro de trabalho do SkyPlanner. Não mapeie apenas os grupos de recursos: a programação de operações reserva grupos, mas o chão de fábrica trabalha com recursos.
2. Sincronização de ordens. Leia as ordens de produção firmadas nos status sob responsabilidade do SkyPlanner, normalmente Scheduled e Released, com suas operações de roteiro, tarefas de roteiro e linhas de BOM. Leia também as linhas de pedidos de compra em aberto. O SkyPlanner considera o material encomendado disponível na data de entrega do pedido de compra e atualiza o estoque quando o pedido recebe o status Delivered.
Deixe as ordens de produção planejadas de fora, a menos que estejam explicitamente incluídas no escopo. O Planning Optimization as gera novamente a cada execução.
3. Gravação da programação no SCM. Para cada operação alocada ou movida pelo mecanismo de programação, o SkyPlanner grava na operação de roteiro as datas e os horários programados de início e término e o recurso atribuído, usando os nomes de campos de /data/$metadata do seu ambiente. As alterações são enviadas em changesets de lotes OData, para que cada execução da programação seja aplicada como uma única atualização consistente.
4. Apontamentos do chão de fábrica. Os operadores registram o trabalho com o SkyPlanner Mobile Confirmations ou o Production Timer, e os apontamentos de horas mantêm a programação atualizada. As horas e as quantidades boas podem retornar como linhas do diário de cartão de roteiro. O Report as finished continua sendo executado onde você já o utiliza hoje, no SCM ou no Production floor execution.
Escolha um único canal para cada lançamento. Registrar as mesmas horas pelo SkyPlanner e pelo Production floor execution gera duplicidade.
5. Regras de responsabilidade e conflitos. Documente essas regras antes da entrada em produção:
| Dados | Responsável |
|---|---|
| Produtos, BOMs, roteiros, quantidades, status das ordens, cálculo de custos | Supply Chain Management |
| Ordens de produção planejadas | Planning Optimization |
| Sequência das operações, início e término programados, atribuição de recursos | SkyPlanner |
| Matriz de tempos de preparação, ferramentas, número de operadores, recursos alternativos | SkyPlanner |
| Turnos e ausências | Um único sistema, escolhido na definição de escopo |
| Lançamento de horas e quantidades produzidas | Supply Chain Management, a partir dos apontamentos de horas do SkyPlanner, se essa opção for escolhida |
A principal fonte de conflitos é a própria programação de trabalhos do SCM. Se um planejador reprogramar uma ordem no SCM, as datas do SkyPlanner serão sobrescritas. Use IsProductionOrderSchedulingLocked no cabeçalho das ordens de produção cuja programação fica a cargo do SkyPlanner. Trate qualquer ordem alterada no SCM como uma nova versão e sincronize-a novamente. O Autopilot reprograma automaticamente quando há mudanças na produção.
O que o projeto inclui
A implementação normalmente é concluída em semanas após o início da implantação. Antes disso, você pode usar seus próprios dados no teste gratuito de 30 dias. Exporte recursos, roteiros e ordens de produção em aberto por meio de um projeto de exportação do gerenciamento de dados ou do suplemento do Excel. Importe-os em CSV ou Excel e valide a programação.
- Definição de escopo. Defina a tabela de mapeamento, os status sob responsabilidade do SkyPlanner, as frequências de sincronização e o canal de lançamento.
- Acesso. Registre o aplicativo no Entra ID, associe-o a um usuário do SCM com funções que concedam apenas os privilégios necessários e confirme os nomes públicos das entidades em
/data/$metadata. Primeiro no ambiente de testes, depois no de produção. - Carga inicial. Recursos, calendários, produtos liberados, roteiros e BOMs.
- Sincronização de ordens e pedidos de compra. Consultas periódicas com
$filterpara buscar registros alterados, além de eventos de negócios quando disponíveis no seu catálogo. - Configuração de restrições no SkyPlanner. Matriz de tempos de preparação, ferramentas, quantidade de operadores e máquinas ou pessoal alternativos.
- Gravação da programação no SCM. Atualizações em lote nas operações do roteiro e bloqueio da programação nas ordens sob responsabilidade do SkyPlanner.
- Testes em paralelo. Execute o SkyPlanner em paralelo ao plano atual, compare as datas e corrija os dados mestres.
- Entrada em produção. Ative a gravação no SCM quando os dados estiverem consistentes.
O que considerar ao planejar uma integração com o Dynamics 365 SCM
- Eficiência aplicada em duplicidade. O SCM calcula “Scheduling time = Time x 100 / Efficiency percentage.” (O tempo de programação corresponde ao tempo ajustado pelo percentual de eficiência.) Mapeie a eficiência para a eficiência do centro de trabalho no SkyPlanner uma única vez, sem reaplicá-la a tempos já ajustados.
- Calendários vinculados aos grupos de recursos. Leia a atribuição de calendário de cada grupo de recursos e de cada recurso; caso contrário, haverá divergências na capacidade.
- Programação de operações versus programação de trabalhos. Ordens programadas por operações não têm horários de início e término nem um recurso específico. Sincronize as operações do roteiro e os requisitos de recursos, não apenas as datas.
- Indicadores de capacidade finita. Recursos com Finite capacity definido como No podem receber carga acima da capacidade no SCM. Modele cada restrição real como finita no SkyPlanner.
- 32 recursos por operação. O SCM limita a programação de trabalhos a 32 recursos por operação. No SkyPlanner, as alternativas são definidas em grupos de centros de trabalho e centros de trabalho alternativos.
- Paginação e volume. O OData pagina os resultados em 10.000 registros e permite expansão de um nível de profundidade. Use a API de dados em lote para cargas iniciais grandes.
- Entidades legais. Sem
cross-company=truee filtros dedataAreaId, uma fábrica que opera com várias empresas sincroniza apenas a empresa padrão.
Quem configura a integração
O trabalho abrange o mapeamento dos seus roteiros, recursos e configurações do SCM, além da configuração de restrições no SkyPlanner: matriz de tempos de preparação, ferramentas, quantidade de operadores e recursos alternativos.
- A equipe do SkyPlanner configura a integração durante a implantação e oferece suporte após a entrada em produção, tanto no lado do SkyPlanner quanto nas entidades de dados do SCM acordadas. Cada fábrica usa o D365 SCM de uma forma, e é nessa etapa que esse conhecimento é aplicado.
- Seu parceiro Dynamics pode participar. Ele conhece suas configurações, extensões e funções de segurança e pode configurar o aplicativo no Entra ID e o acesso às entidades. O SkyPlanner fornece a REST API, a documentação Swagger/OpenAPI e os webhooks.
- Seus próprios desenvolvedores podem desenvolver a integração usando a mesma REST API documentada, com um token de API. Basta um token de API para começar, e a equipe do SkyPlanner ajuda quando necessário.
Após a conexão, o mecanismo Arcturus gera a programação com base nas ordens de produção atualizadas do SCM, e as datas programadas são gravadas nas operações do roteiro. O SkyPlanner custa a partir de 199 € por mês, com 5 centros de trabalho incluídos e cobrança mensal. O orçamento da integração é apresentado antecipadamente junto com o plano, de acordo com seu processo e suas necessidades, para que você saiba o custo total antes de começar.
Compare com o planejamento nativo do SCM em programação da produção no Dynamics 365 SCM respeitando a capacidade real de máquinas e equipes. A visão geral está na página do Dynamics 365 SCM, e outros ERPs estão na central de integrações com ERP.
O que os fabricantes dizem sobre o SkyPlanner
2 heconomizadas por semana
“Com o SkyPlanner, nosso planejamento da produção saiu das planilhas do Excel para a otimização da produção em tempo real.”
Kalle Kalliomäki, especialista em cadeia de suprimentos
UTU · Painéis elétricos e equipamentos de manobra
O planejamento da produção economiza 2 horas de trabalho por semana, e uma nova fila de trabalho chega à linha em segundos.
+90%de eficiência na produção
“A eficiência na produção aumentou 90%.”
Abdul Rucyinga, diretor de TI
Laboratory & Allied · Fabricação de produtos farmacêuticos
A eficiência na produção aumentou 90%, e gerar um plano otimizado de três meses para todos os centros de trabalho leva menos de 30 minutos.
100%de pontualidade de entrega desde 2021
“O SkyPlanner nos dá visibilidade da capacidade e torna o planejamento previsível.”
Dan Berglund, COO/CFO
Opes Corporation · Indústria química e alimentícia
A pontualidade de entrega se mantém em 100% durante todo o período de uso do SkyPlanner, desde 2021.
1.000 ou maisordens de produção programadas automaticamente
“A produção passou a ser controlada de outra forma, e nossa compreensão da capacidade está em um patamar completamente diferente.”
Hannu Ryynänen, diretor executivo
Mamec · Misturadores industriais, bombas e fabricação sob contrato de alta tecnologia
Milhares de ordens de produção são programadas automaticamente, com uma visão da produção em tempo real para toda a organização.
Perguntas frequentes
Qual API do D365 SCM a integração usa?
O endpoint REST OData v4 em /data, que expõe todas as entidades de dados públicas com suporte completo a criação, leitura, atualização e exclusão. Cargas iniciais grandes usam a API de dados em lote. Os eventos de negócios acrescentam gatilhos quase em tempo real quando estão disponíveis no seu catálogo.
Precisamos instalar algo no Supply Chain Management?
Não. A integração usa entidades de dados padrão via OData. Seu administrador registra um aplicativo no Microsoft Entra ID e o associa a um usuário do SCM com as funções necessárias.
Como as datas programadas são gravadas no Supply Chain Management?
O SkyPlanner grava as datas e os horários programados de início e término e o recurso da operação nas operações do roteiro da ordem de produção, usando changesets em lote do OData. As ordens sob responsabilidade do SkyPlanner são protegidas com IsProductionOrderSchedulingLocked.
Por que conectar o SkyPlanner em vez de ajustar a programação de trabalhos do SCM?
O Planning Optimization respeita a capacidade finita apenas dentro do horizonte definido para ela; além desse horizonte, planeja com capacidade infinita (fonte). A programação de trabalhos do SCM aloca uma ordem de produção por vez considerando a capacidade já reservada, com a preparação incluída como tempo da operação (fonte). Além disso, a Microsoft desaconselha o planejamento mestre com capacidade finita quando os turnos alteram a capacidade (fonte). O SkyPlanner programa todas as ordens firmadas em conjunto, com uma matriz de tempos de preparação, e o Autopilot replaneja automaticamente a cada mudança relevante. A equipe do SkyPlanner configura a integração bidirecional e oferece suporte, e seu parceiro Dynamics pode assumir a responsabilidade pelo lado do SCM.
O SkyPlanner deve programar ordens de produção planejadas?
Normalmente, não. O Planning Optimization gera novamente as ordens de produção planejadas a cada execução. O SkyPlanner programa ordens de produção firmadas nos status acordados durante a definição de escopo.
A integração funciona com o Supply Chain Management instalado localmente?
Em instalações locais, a integração usa a API de dados em lote, que tem suporte da Microsoft nesse ambiente. Do lado do SkyPlanner, a REST API é a mesma em ambos os casos, e a abordagem é confirmada durante a definição de escopo.
Podemos testar o SkyPlanner antes de desenvolver a integração?
Sim. O teste gratuito de 30 dias permite usar até 20 centros de trabalho, com importações em CSV ou Excel do Supply Chain Management, sem necessidade de cartão de crédito. Inicie o teste ou fale com vendas para definir o escopo da integração.