Integrações / ERP / Epicor Kinetic
Guia de integração do Epicor Kinetic para programação da produção com o SkyPlanner APS
Este guia mostra aos parceiros Epicor, às equipas de TI e aos compradores técnicos como utilizar o SkyPlanner APS para a programação da produção em conjunto com o Epicor Kinetic, respeitando a capacidade real das máquinas e das equipas. O SkyPlanner integra-se com o Epicor Kinetic nos dois sentidos, através dos próprios serviços REST do Kinetic:
- São importadas ordens de fabrico, operações, recursos e entregas previstas de encomendas de compra.
- As datas planeadas das operações são devolvidas às ordens de fabrico.
- Os registos de tempos dos operadores são enviados para o Kinetic como registos de mão de obra.
- Os webhooks do SkyPlanner enviam as alterações à programação assim que ocorrem.
A equipa SkyPlanner configura a integração de acordo com a sua instalação do Kinetic durante a implementação e presta suporte após a entrada em produção. Este guia destina-se a parceiros e programadores que queiram participar ou desenvolver a sua própria integração com a API REST documentada do SkyPlanner (referência da API).
Se ainda não decidiu se o Scheduling and Resource Management do Kinetic ou o módulo APS responde às suas necessidades, leia primeiro O Epicor Kinetic permite programar a produção respeitando a capacidade real dos recursos?
Interfaces de integração do Kinetic
A Epicor afirma: “All Kinetic services, including business objects, processes, reports, BAQs, and Epicor Functions, are accessible through REST endpoints.” (Todos os serviços do Kinetic, incluindo objetos de negócio, processos, relatórios, BAQs e Epicor Functions, estão acessíveis através de endpoints REST.) Uma integração para programação da produção assenta em quatro tecnologias Epicor:
- Kinetic REST API v2 (OData v4). Os objetos de negócio são expostos como serviços com o nome
Erp.BO.<Name>Svc. O caminho habitual é/api/v2/odata/{Company}/Erp.BO.{Svc}/{EntitySet}. A REST v1 continua a existir, mas é uma versão legada, pelo que deve desenvolver a integração com a v2. Confirme os conjuntos de entidades e os métodos disponíveis na sua versão na REST Help, em/api/help/v2/. - Business Activity Queries (BAQ) via REST. Cada BAQ é exposta em
/api/v2/odata/{Company}/BaqSvc/{BAQ}/Data. Esta é a via prática para extrair dados de planeamento que cruzamJobHead,JobOper,JobMtl,PartWhseePORelnuma única chamada (exemplo da comunidade). - Epicor Functions (EFx). Funções executadas no servidor, que podem ser chamadas em
/api/v2/efx/{Company}/{Library}/{Function}. A Epicor afirma que estas “can be triggered from multiple entry points, including BPMs, REST services, schedules, and application events.” (podem ser acionadas a partir de vários pontos de entrada, incluindo BPMs, serviços REST, agendamentos e eventos da aplicação). - Diretivas BPM. As Method Directives e Data Directives são acionadas quando uma ordem de fabrico ou operação é alterada e podem chamar uma função que envia dados para o exterior.
No caso dos ficheiros, o DMT trata das importações e as exportações BAQ tratam da extração de dados. A Epicor também disponibiliza o Epicor Automation Studio, que descreve como “a low-code app for integration-led automations” (uma aplicação de baixo código para automatizações baseadas em integrações). Evite o acesso direto à base de dados: REST, BAQs e funções funcionam da mesma forma em instalações locais e no Kinetic Cloud.
Autenticação e âmbitos de acesso
O Kinetic REST v2 controla o acesso por integração. Cada integração recebe uma chave de API associada a um âmbito de acesso que lista os serviços e métodos que pode chamar. A Epicor explica-o assim: “API keys, access scopes, and standard authentication methods control which services and methods are available to each integration.” (As chaves de API, os âmbitos de acesso e os métodos de autenticação padrão controlam os serviços e métodos disponíveis para cada integração.)
Além da chave de API, quem faz a chamada autentica-se como utilizador do Kinetic. Utilize uma conta dedicada à integração, apenas com as permissões necessárias. Do lado do SkyPlanner, a API REST utiliza autenticação JWT e está documentada em Swagger/OpenAPI.
Numa integração com o SkyPlanner, o âmbito inclui normalmente:
Erp.BO.JobEntrySvc(JobEntries, JobOpers, GetDatasetForTree)Erp.BO.ResourceGroupSvceErp.BO.ResourceSvcErp.BO.CapabilitySvcErp.BO.PartSvc(Parts, PartWhses)Erp.BO.EmpBasicSvcErp.BO.ScheduleEngineSvc(GetNewParamsForJob, MoveJobItem, ChangeResource)Erp.BO.LaborSvc(Labors, LaborDtls, StartActivity, EndActivityByEmp)- as BAQs e bibliotecas EFx que publicar para a integração
Se um método não estiver incluído no âmbito, a falha ocorre durante a execução, não durante a configuração. Liste todos os métodos que chama, monitorize a validade das chaves de API e configure alertas para erros HTTP, não apenas para resultados vazios.
Deteção de alterações: diretivas BPM, funções ou consultas periódicas
A Epicor não documenta nenhuma API genérica de webhooks de saída, pelo que as alterações no Kinetic chegam ao SkyPlanner de uma de duas formas:
- Por eventos. Uma BPM Data Directive sobre
JobHeadouJobOperchama uma Epicor Function, que envia a ordem de fabrico alterada para a REST API do SkyPlanner. - Consultas periódicas. Uma BAQ filtrada pela data de alteração é executada de poucos em poucos minutos ou de hora a hora. Esta opção é mais simples de manter e de recuperar em caso de falha.
No sentido inverso, o SkyPlanner envia alterações de estado e da programação através dos seus webhooks. O seu middleware ou um endpoint EFx recebe-as e grava-as no Kinetic.
Mapeamento de dados
| Entidade / serviço do Kinetic | Objeto do SkyPlanner | Sentido | Frequência |
|---|---|---|---|
Part, PartRev (Erp.BO.PartSvc/Parts) | Produto | Do Kinetic para o SkyPlanner | Carga inicial, depois a intervalos programados |
PartMtl (método de fabrico), JobMtl (ordem de fabrico) | Materiais do produto e da ordem | Do Kinetic para o SkyPlanner | Com a ordem de fabrico |
PartOpr (método de fabrico), JobOper (ordem de fabrico) | Etapas do processo | Do Kinetic para o SkyPlanner | Com a ordem de fabrico |
ResourceGroup, Resource (ResourceGroupSvc, ResourceSvc) | Grupos de centros de trabalho, centros de trabalho | Do Kinetic para o SkyPlanner | Carga inicial e sempre que houver alterações |
Capability (CapabilitySvc) | Centros de trabalho alternativos | Do Kinetic para o SkyPlanner | Carga inicial e sempre que houver alterações |
| Calendários dos recursos e dos grupos de recursos | Turnos e exceções | Do Kinetic para o SkyPlanner | Carga inicial, depois semanalmente ou sempre que houver alterações |
EmpBasic (EmpBasicSvc) | Pessoal | Do Kinetic para o SkyPlanner | Carga inicial e sempre que houver alterações |
JobHead (JobEntrySvc/JobEntries) | Ordem | Do Kinetic para o SkyPlanner | Em tempo real via BPM + EFx, ou por consulta periódica de uma BAQ |
PartWhse através de uma BAQ | Existências | Do Kinetic para o SkyPlanner | A intervalos programados |
Encomendas de compra: POHeader, PODetail, PORel através de uma BAQ | Encomendas de compra / material a receber (data de entrega prevista) | Do Kinetic para o SkyPlanner | A intervalos programados, ou quando a encomenda de compra é alterada, via BPM + EFx |
| Início e fim planeados por operação | Datas de JobOper através de ScheduleEngineSvc (MoveJobItem, ChangeResource) numa EFx | Do SkyPlanner para o Kinetic | Quando a programação é alterada, via webhook |
| Registos de tempo, quantidades, progresso das operações, motivos | Labors / LaborDtls através de LaborSvc; códigos de motivo através de Erp.BO.ReasonSvc | Do SkyPlanner para o Kinetic | Em tempo real via webhook |
A Epicor designa a ordem de fabrico por Job. Faça corresponder cada JobHead a uma ordem do SkyPlanner e cada JobOper a uma etapa do processo. Use o número da ordem de fabrico, a sequência de montagem e a sequência da operação como chave externa.
Modelos de integração
1. Carga inicial dos dados mestre. Leia os artigos, grupos de recursos, recursos, capacidades, calendários e colaboradores. Crie os centros de trabalho do SkyPlanner a partir dos recursos do Kinetic e os grupos de centros de trabalho a partir dos grupos de recursos. Nas leituras de grande volume, use $top e $skip para paginar os resultados ou extraia os dados em bloco através de uma BAQ.
2. Sincronização de ordens. Envie as ordens de fabrico lançadas e firmes, com as respetivas operações e materiais. Obtenha a árvore da ordem com GetDatasetForTree ou uma BAQ, em vez de ler entidade a entidade. Mantenha no Kinetic as ordens de fabrico do MRP que ainda não são firmes, até serem firmadas. Juntamente com a leitura das existências, sincronize as entregas em aberto das encomendas de compra e as respetivas datas previstas. O SkyPlanner considera o material encomendado disponível na data de entrega e atualiza as existências quando a encomenda de compra é marcada como Delivered. Assim, a programação tem em conta tanto as existências como as compras a receber.
3. Gravação da programação no Kinetic. O webhook do SkyPlanner envia o início, o fim e o centro de trabalho planeados para cada operação para um endpoint EFx (/api/v2/efx/{Company}/{Library}/{Function}). A função grava os dados através do motor de programação do Kinetic, o mesmo objeto de negócio utilizado pela programação de Job Entry e pelos quadros de programação (exemplo da comunidade):
ScheduleEngine.GetNewParamsForJobcria o conjunto de dados do motor de programação para a ordem de fabrico.- A função define o número da ordem de fabrico, as sequências de montagem e de operação e a data e hora de início planeadas. Em seguida, chama
ScheduleEngine.MoveJobItem. - Quando o SkyPlanner atribui a operação a outro recurso do grupo,
ScheduleEngine.ChangeResourcetransfere-a para esse recurso. Por si só,MoveJobItemmantém o recurso predefinido do grupo. - A função ativa o bloqueio da programação da ordem de fabrico (
JobHead.SchedLocked, a opção Lock em Job Entry), para que Global Scheduling mantenha as datas do SkyPlanner.
Encapsular estas chamadas numa única Epicor Function garante uma gravação atómica por ordem de fabrico e permite acrescentar validações próprias. Se a unidade fabril preferir não usar uma função personalizada, a mesma sequência pode ser executada através de chamadas REST diretas a Erp.BO.ScheduleEngineSvc. Nunca grave diretamente em ResourceTimeUsed nem nos campos de data de JobOper: isso contorna o motor e deixa as afetações nos quadros de programação dessincronizadas.
4. Confirmações na fábrica. Os operadores registam o trabalho no SkyPlanner com Mobile Confirmations, Production Timer ou Quick Log Mode. Cada registo de tempo encerrado dá origem a um registo de mão de obra no Kinetic através de Erp.BO.LaborSvc: StartActivity e EndActivityByEmp para atividade em tempo real, ou Labors com Update para registos posteriores à execução. Se a unidade fabril exigir aprovação, inclua submitForApproval no fluxo e no âmbito das permissões.
5. Responsabilidade pelos dados e regras de conflito. Documente-as antes da entrada em produção:
| Dados | Sistema responsável |
|---|---|
| Artigos, métodos de fabrico, recursos, calendários, ordens de fabrico, MRP, existências, cálculo de custos | Kinetic |
| Quantidades e estado das ordens de fabrico | Kinetic |
| Sequência das operações, datas planeadas, recurso dentro do grupo | SkyPlanner |
As ordens de fabrico programadas pelo SkyPlanner têm a programação bloqueada, pelo que o Global Scheduling não altera as suas datas. Mantenha a programação do Kinetic para os recursos que o SkyPlanner não planeia.
Chaves, novas tentativas e reconciliação
- Chaves estáveis. Cada registo inclui a sua chave do Kinetic: número da ordem de fabrico, sequência de montagem e sequência da operação para as operações; cabeçalho e detalhe de mão de obra para os registos de mão de obra. A gravação insere ou atualiza o registo com base nessa chave, pelo que uma mensagem repetida atualiza o registo em vez de o duplicar.
- Novas tentativas. Quando uma gravação falha em qualquer dos sistemas, é feita uma nova tentativa. A mão de obra é registada uma única vez por ID de registo de tempos do SkyPlanner, pelo que uma nova tentativa não pode duplicar a contagem de horas.
- Reconciliação. Uma BAQ executada periodicamente compara as ordens de fabrico abertas, o estado das operações e as quantidades com os dados do SkyPlanner e corrige divergências, por exemplo, quando uma ordem é fechada no Kinetic enquanto uma mensagem está em trânsito.
- Alterações de quantidade e cancelamentos. Uma alteração de quantidade no Kinetic atualiza a ordem e as respetivas etapas de processo no SkyPlanner. Uma conclusão parcial reduz o tempo de execução restante. Uma ordem de fabrico fechada ou eliminada no Kinetic é retirada da programação na sincronização seguinte.
O que inclui o projeto
A implementação fica normalmente concluída em poucas semanas após o início do processo de integração. Um projeto com o Kinetic abrange:
- Um teste de 30 dias com exportações de ordens de fabrico, operações e recursos em CSV ou Excel, antes de qualquer desenvolvimento.
- Chave de API, âmbito de acesso, conta de utilizador dedicada à integração e BAQs que a integração consulta.
- Mapeamento dos dados mestre: correspondência entre capacidades, grupos de recursos, recursos, calendários e colaboradores do Kinetic e os postos de trabalho, grupos, turnos e pessoal do SkyPlanner.
- Carregamento inicial de artigos, métodos de fabrico (BOM e operações) e recursos.
- Sincronização de ordens de fabrico e encomendas de compra (datas previstas de
PORel), bem como das existências dePartWhse. - Gravação das datas planeadas das operações no Kinetic através de
ScheduleEngineSvc(MoveJobItem, ChangeResource) numa Epicor Function, com o bloqueio da ordem de fabrico ativado. - Confirmações da fábrica lançadas como registos de mão de obra através de
LaborSvc. - Testes em paralelo com a programação atual do Kinetic, seguidos da entrada em produção.
Cuidados a ter com o Kinetic
- O respeito pela capacidade dos recursos é configurado em vários locais. A caixa de seleção Finite encontra-se no recurso. O horizonte em que a programação respeita a capacidade dos recursos é definido no recurso, no grupo de recursos e no separador Planning de Site Maintenance. Cada ferramenta de programação também tem a sua própria caixa de seleção Finite. Antes de importar as datas do Kinetic como referência, verifique se foram de facto calculadas respeitando a capacidade dos recursos.
- Capability ou Resource Group e Resource. Quando uma operação indica uma capacidade, os campos do grupo de recursos e do recurso ficam em branco. Caso contrário, indica um grupo de recursos, por vezes com um recurso específico. A integração tem de ler esses mesmos campos e determinar, por si própria, os recursos elegíveis para cada capacidade.
- Os calendários refletem ajustes anteriores. Os calendários dos recursos e o número de colaboradores são muitas vezes ajustados para que o motor de programação do Kinetic funcione como pretendido. Reproduza no SkyPlanner os turnos reais e as pessoas efetivamente disponíveis, e deixe-o atribuir vários operadores a uma tarefa quando for necessária uma equipa.
- As datas passam pelo motor, não por CRUD. Uma simples atualização das datas das operações com
JobEntrySvcnão reprograma a produção; um relato no fórum mostra uma chamada aJobSchedulingque devolve 200 OK sem alterar a ordem de fabrico. Use a sequência deScheduleEnginedescrita acima. - O rigor dos dados determina o resultado. Tempos de operação otimistas, prazos de aprovisionamento em falta, ordens de fabrico deixadas em aberto e paragens não registadas nos calendários prejudicam qualquer programação, nativa ou externa (Bluesky ERP).
Quem configura a integração com o Kinetic
Não há duas fábricas que utilizem o Kinetic da mesma forma. As gamas operatórias baseadas em capacidades, os calendários dos grupos de recursos, a estrutura das BAQs, as diretivas BPM e os métodos específicos de cada versão para gravar dados de volta no Kinetic variam de instalação para instalação. Configurá-los corretamente faz a diferença entre uma programação em que os planeadores confiam e outra que têm de refazer.
- A equipa SkyPlanner configura a integração durante a implementação e presta suporte após a entrada em produção. A equipa mapeia os seus recursos, ordens de fabrico e entregas previstas de encomendas de compra, e configura as leituras de BAQs, os acionadores BPM e a função que grava os dados de volta no Kinetic. Liga a API REST e os webhooks do SkyPlanner ao Kinetic REST v2. O suporte mantém-se quando as suas BAQs, BPMs ou a versão do Kinetic mudam.
- O seu parceiro Epicor. Os parceiros que já desenvolvem BAQs, BPMs e Epicor Functions podem trabalhar com a mesma API REST documentada do SkyPlanner, que permite ler e gravar ordens, produtos, materiais, etapas de processo e registos de tempos.
- Os seus próprios programadores. As equipas internas com experiência em Kinetic REST podem desenvolver diretamente ou através do Automation Studio, se o utilizarem. Basta uma chave de API do SkyPlanner para começar (tutorial de integração), e a equipa SkyPlanner ajuda sempre que necessário. A documentação do produto está disponível publicamente na documentação do SkyPlanner.
O mesmo modelo de API e webhooks já funciona em produção com outros ERPs, por exemplo na UTU. Na Laboratory & Allied, a equipa interna de TI desenvolveu a integração com o SAP Business One em grande parte pelos seus próprios meios, com o apoio do SkyPlanner.
Todas as opções começam da mesma forma: faça primeiro o teste gratuito de 30 dias com importações CSV, valide a programação e só depois desenvolva a integração. O preço começa nos 199 € por mês com 5 postos de trabalho, faturação mensal e cancelamento a qualquer momento. A integração é orçamentada antecipadamente, em função do seu processo e das suas necessidades, juntamente com o seu plano, para que conheça o custo total antes de começar.
Porquê optar por esta solução em vez de licenciar o Kinetic APS
Para um comprador técnico, a comparação centra-se no âmbito e no tempo necessário para obter resultados. Escolha o SkyPlanner quando:
- A integração deve ter um âmbito reduzido. São enviados ordens de fabrico, operações, recursos e materiais. São devolvidas datas planeadas e mão de obra. O mapeamento de dados acima cobre todo o âmbito.
- A programação tem de reagir entre execuções. O Arcturus gera a programação da produção em segundos, respeitando a capacidade real das máquinas e das equipas, e o Autopilot reprograma automaticamente quando há alterações na produção. Os webhooks do SkyPlanner enviam cada alteração, pelo que o Kinetic recebe novas datas sem executar o Global Scheduling.
- Os registos da fábrica devem alimentar os registos de mão de obra do Kinetic. Os operadores registam o trabalho no telemóvel ou tablet com Mobile Confirmations, Production Timer e Quick Log Mode. O lançamento através de
LaborSvcfaz parte da mesma integração. - Os materiais comprados condicionam as suas tarefas. Tanto as existências como as entregas previstas de encomendas de compra em aberto alimentam a programação, para que as operações comecem de acordo com a data efetivamente prevista para a disponibilidade dos materiais.
- As suas restrições são mais de duas. Vários operadores na mesma tarefa, ferramentas indisponíveis enquanto estão a ser utilizadas noutro local, postos de trabalho e pessoal alternativos: tudo é considerado numa única programação. Uma matriz de tempos de preparação define a sequência das mudanças, e a integração grava o resultado no Kinetic.
- Quer validar antes de avançar e ter um projeto curto. O teste mostra a sua própria programação a partir de uma exportação BAQ, com até 20 postos de trabalho e sem cartão de crédito. A implementação fica normalmente concluída em poucas semanas após o início do processo de integração.
Consulte as funcionalidades, leia as opiniões dos clientes ou agende uma demonstração.
Opiniões de empresas industriais sobre o SkyPlanner
2 hpoupadas por semana
“Com o SkyPlanner, passámos das folhas de cálculo Excel para a otimização da produção em tempo real.”
Kalle Kalliomäki, Especialista em Cadeia de Abastecimento
UTU · Quadros elétricos e aparelhagem de comutação
O planeamento da produção permite poupar 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, Responsável de TI
Laboratory & Allied · Produção farmacêutica
A eficiência na produção aumentou 90%, e criar um plano otimizado para três meses, abrangendo todos os postos de trabalho, demora menos de 30 minutos.
1.000sde ordens de fabrico programadas automaticamente
“Temos um controlo diferente sobre a produção, e a nossa compreensão da capacidade está num nível completamente diferente.”
Hannu Ryynänen, Diretor Executivo
Mamec · Misturadores industriais, bombas e fabrico por contrato de alta tecnologia
Milhares de ordens de fabrico são programadas automaticamente, e toda a organização tem uma visão da produção em tempo real.
99,2%de fiabilidade das entregas
“O SkyPlanner deu-nos visibilidade para identificar estrangulamentos e tornou a gestão da produção mais clara.”
Toni Tuori, Responsável de Produção
Piristeel · Sistemas de segurança para coberturas e de drenagem de águas pluviais
A fiabilidade das entregas atingiu 99,2% este ano, e a programação permite poupar até quatro horas de trabalho por dia.
Perguntas frequentes
Como é feita a integração do SkyPlanner APS com o Epicor Kinetic?
A integração é bidirecional e utiliza Kinetic REST v2, BAQs e Epicor Functions. As ordens de fabrico, operações, recursos e entregas de encomendas de compra são enviados para o SkyPlanner. As datas planeadas das operações e os dados de mão de obra são enviados de volta para o Kinetic, e os webhooks transmitem as alterações à programação assim que ocorrem. Durante a implementação inicial, a equipa SkyPlanner configura a integração de acordo com a sua configuração do Kinetic. O seu parceiro Epicor ou os seus programadores podem utilizar a mesma REST API.
Que API do Kinetic deve ser utilizada numa integração de programação da produção?
REST v2. Use JobEntrySvc para ordens de fabrico e operações, ResourceGroupSvc, ResourceSvc e CapabilitySvc para a capacidade, BAQs para leituras em bloco e LaborSvc para lançar no Kinetic o trabalho registado.
O Epicor Kinetic suporta webhooks?
Não dispõe de uma API genérica para envio de webhooks. O envio acionado por eventos é feito através de diretivas BPM que invocam Epicor Functions. Em alternativa, pode consultar uma BAQ a intervalos definidos.
O SkyPlanner pode gravar as datas programadas nas ordens de fabrico do Kinetic?
Sim. Uma Epicor Function chama ScheduleEngine.GetNewParamsForJob, MoveJobItem para cada operação e ChangeResource quando o recurso é alterado. Depois, bloqueia a programação da ordem de fabrico para que Global Scheduling mantenha as datas. As mesmas chamadas também podem ser executadas diretamente por REST em Erp.BO.ScheduleEngineSvc.
Quem assegura a manutenção da integração?
A equipa SkyPlanner configura a integração durante a implementação inicial e presta suporte após a entrada em produção, incluindo quando há alterações às suas BAQs, aos seus BPMs ou à versão do Kinetic.
Funciona com o Epicor Kinetic instalado localmente?
Sim. A REST API, as BAQs, os BPMs e as Epicor Functions funcionam da mesma forma nas instalações locais e na cloud do Kinetic, pelo que a mesma arquitetura de integração serve ambas.
Quanto tempo demora a integração entre o SkyPlanner APS e o Epicor Kinetic?
A implementação fica normalmente concluída em poucas semanas após o início do processo. Abrange o mapeamento, a carga inicial, a sincronização de ordens de fabrico e encomendas de compra, a gravação da programação no Kinetic e o lançamento de dados de mão de obra descritos acima, com testes em paralelo com a sua programação atual.