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.
Cronograma de Gantt do SkyPlanner APS com tarefas programadas por centro de trabalho e uma lista de ordens em baixo.

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:

  1. 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/.
  2. 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 cruzam JobHead, JobOper, JobMtl, PartWhse e PORel numa única chamada (exemplo da comunidade).
  3. 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).
  4. 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.ResourceGroupSvc e Erp.BO.ResourceSvc
  • Erp.BO.CapabilitySvc
  • Erp.BO.PartSvc (Parts, PartWhses)
  • Erp.BO.EmpBasicSvc
  • Erp.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 JobHead ou JobOper chama 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 KineticObjeto do SkyPlannerSentidoFrequência
Part, PartRev (Erp.BO.PartSvc/Parts)ProdutoDo Kinetic para o SkyPlannerCarga inicial, depois a intervalos programados
PartMtl (método de fabrico), JobMtl (ordem de fabrico)Materiais do produto e da ordemDo Kinetic para o SkyPlannerCom a ordem de fabrico
PartOpr (método de fabrico), JobOper (ordem de fabrico)Etapas do processoDo Kinetic para o SkyPlannerCom a ordem de fabrico
ResourceGroup, Resource (ResourceGroupSvc, ResourceSvc)Grupos de centros de trabalho, centros de trabalhoDo Kinetic para o SkyPlannerCarga inicial e sempre que houver alterações
Capability (CapabilitySvc)Centros de trabalho alternativosDo Kinetic para o SkyPlannerCarga inicial e sempre que houver alterações
Calendários dos recursos e dos grupos de recursosTurnos e exceçõesDo Kinetic para o SkyPlannerCarga inicial, depois semanalmente ou sempre que houver alterações
EmpBasic (EmpBasicSvc)PessoalDo Kinetic para o SkyPlannerCarga inicial e sempre que houver alterações
JobHead (JobEntrySvc/JobEntries)OrdemDo Kinetic para o SkyPlannerEm tempo real via BPM + EFx, ou por consulta periódica de uma BAQ
PartWhse através de uma BAQExistênciasDo Kinetic para o SkyPlannerA intervalos programados
Encomendas de compra: POHeader, PODetail, PORel através de uma BAQEncomendas de compra / material a receber (data de entrega prevista)Do Kinetic para o SkyPlannerA intervalos programados, ou quando a encomenda de compra é alterada, via BPM + EFx
Início e fim planeados por operaçãoDatas de JobOper através de ScheduleEngineSvc (MoveJobItem, ChangeResource) numa EFxDo SkyPlanner para o KineticQuando a programação é alterada, via webhook
Registos de tempo, quantidades, progresso das operações, motivosLabors / LaborDtls através de LaborSvc; códigos de motivo através de Erp.BO.ReasonSvcDo SkyPlanner para o KineticEm 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):

  1. ScheduleEngine.GetNewParamsForJob cria o conjunto de dados do motor de programação para a ordem de fabrico.
  2. 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.
  3. Quando o SkyPlanner atribui a operação a outro recurso do grupo, ScheduleEngine.ChangeResource transfere-a para esse recurso. Por si só, MoveJobItem mantém o recurso predefinido do grupo.
  4. 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:

DadosSistema responsável
Artigos, métodos de fabrico, recursos, calendários, ordens de fabrico, MRP, existências, cálculo de custosKinetic
Quantidades e estado das ordens de fabricoKinetic
Sequência das operações, datas planeadas, recurso dentro do grupoSkyPlanner

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:

  1. Um teste de 30 dias com exportações de ordens de fabrico, operações e recursos em CSV ou Excel, antes de qualquer desenvolvimento.
  2. Chave de API, âmbito de acesso, conta de utilizador dedicada à integração e BAQs que a integração consulta.
  3. 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.
  4. Carregamento inicial de artigos, métodos de fabrico (BOM e operações) e recursos.
  5. Sincronização de ordens de fabrico e encomendas de compra (datas previstas de PORel), bem como das existências de PartWhse.
  6. 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.
  7. Confirmações da fábrica lançadas como registos de mão de obra através de LaborSvc.
  8. 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 JobEntrySvc não reprograma a produção; um relato no fórum mostra uma chamada a JobScheduling que devolve 200 OK sem alterar a ordem de fabrico. Use a sequência de ScheduleEngine descrita 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.

  1. 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.
  2. 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.
  3. 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 LaborSvc faz 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

Kalle Kalliomäki, especialista em cadeia de abastecimento na UTU, na área de produção de quadros elétricos em Ulvila

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.

Ler o testemunho da UTU

Operadores com vestuário de sala limpa numa linha de enchimento de frascos na fábrica farmacêutica da Laboratory & Allied, em Nairobi

+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.

Ler o testemunho da Laboratory & Allied

Hannu Ryynänen, Diretor Executivo da Mamec, no pavilhão de produção da empresa, em Lohja

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.

Ler o testemunho da Mamec

Vista aérea da fábrica de sistemas de segurança para coberturas da Piristeel, em Kauhava

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.

Ler o testemunho da Piristeel

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.