Integrações / ERP / SAP Business One

Guia de integração do SAP Business One com o SkyPlanner APS para programação da produção

Este guia mostra aos parceiros SAP Business One e às equipas de TI como ligar o B1 ao SkyPlanner APS. Explica que APIs utilizar, que objetos são transferidos em cada sentido e onde surgem problemas nos projetos B1. O SkyPlanner integra-se com o SAP Business One nos dois sentidos através do Service Layer:

  • As ordens de produção, etapas da gama operatória, recursos, artigos e encomendas de compra são importados para o SkyPlanner.
  • As datas de início e de conclusão planeadas são gravadas nas ordens de produção no B1.
  • Os registos de tempo dos operadores são lançados como Receipt and Issue for Production.
  • 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.

O SAP Business One mantém os artigos, as BOMs, as ordens de produção, os stocks e a gestão financeira, e o módulo de produção permanece inalterado. A equipa SkyPlanner configura a integração com os objetos padrão do B1 durante a implementação inicial e presta apoio após a entrada em produção. Cada base de dados de empresa tem as suas próprias etapas da gama operatória, grupos de recursos, campos definidos pelo utilizador e add-ons. É essa especificidade que a configuração mapeia.

A Laboratory & Allied utiliza o SkyPlanner com o SAP Business One em HANA. Para conhecer os benefícios para o negócio, consulte a página de programação da produção com SAP Business One.

Opções de integração com o SAP Business One

O SAP Business One disponibiliza três interfaces de integração. Para uma solução de programação na cloud, o Service Layer é a opção padrão.

OpçãoDescriçãoAdequação à integração com APS
Service LayerAPI REST/OData. /b1s/v1 usa OData v3 e /b1s/v2 usa OData v4. Funciona na versão do SAP Business One para SAP HANA e em Microsoft SQL Server desde a versão 10.0 PL01.Via principal. Usa HTTP e JSON e permite o acesso a partir de um serviço na cloud.
DI APIBiblioteca COM para Windows. As ordens de produção correspondem ao objeto ProductionOrders, armazenado na tabela OWOR (tipo de objeto 202).Middleware legado ou instalado localmente. Requer uma máquina com Windows.
Integration Framework (B1if)Middleware da SAP para cenários de integração ao nível dos documentos.Útil se o parceiro já utiliza cenários B1if.

Autenticação

O Service Layer usa autenticação por sessão. Envie um pedido POST /b1s/v1/Login com CompanyDB, UserName e Password para receber um cookie B1SESSION (e, opcionalmente, um ROUTEID em configurações com balanceamento de carga). Por predefinição, o SessionTimeout é de 30 minutos de inatividade. Chame explicitamente Logout no final de cada execução da sincronização. Crie um utilizador B1 dedicado à integração, para que todas as alterações gravadas a partir do SkyPlanner possam ser rastreadas no registo de alterações.

Entidades do Service Layer para programação da produção

DadosEntidade do Service Layer
Artigos e dados de planeamentoItems
Listas de materiais e etapas da gama operatóriaProductTrees (Lines, Stages)
Máquinas, mão de obra e outros recursosResources, ResourceGroups
Ordens de produçãoProductionOrders (Lines, Stages)
Stock por armazémDados de stock de Items, Warehouses
Encomendas de compra em aberto e datas de entregaPurchaseOrders (DocumentLines: quantidade em aberto, ShipDate)
Receções de mercadorias associadas a encomendas de compraPurchaseDeliveryNotes (Goods Receipt PO, tipo de objeto 20)
Issue for ProductionInventoryGenExits
Receipt from ProductionInventoryGenEntries
Configuração de webhooksEventSubscriptions, EventNotifications

Por predefinição, cada página contém 20 registos. Aumente este limite com o cabeçalho Prefer: odata.maxpagesize (ou com PageSize em b1s.conf) e siga odata.nextLink. Use $expand para obter as linhas e etapas das ordens de produção numa única chamada e agrupe os pedidos para gravar grandes volumes de dados no B1.

Eventos e webhooks

A partir do SAP Business One 10.0 FP 2602, o Service Layer suporta webhooks. Estão desativados por predefinição. Ative-os por empresa com CompanyService_UpdateAdminInfo (EnableWebhook = tYES). Em seguida, envie um pedido POST EventSubscriptions com três elementos:

  • um WebhookURL
  • um AuthenticationType: None, Basic, HMAC ou OAuth, sendo HMAC o valor predefinido
  • uma EventCollection com objetos de negócio e tipos de transação

O WebhookURL tem de usar HTTPS com um certificado que corresponda ao nome do host. EventSubscriptionsService_GetEventCatalog lista os eventos que pode subscrever. O Webhook Messenger Service tem de estar em execução.

Nas versões anteriores, use consultas periódicas programadas (veja abaixo o problema com UpdateDate). SBO_SP_TransactionNotification é um mecanismo de validação ao nível da base de dados, não um canal de envio de notificações.

Mapeamento de dados: do SAP Business One para o SkyPlanner

SAP Business One (Service Layer)Objeto do SkyPlannerSentidoFrequência
Items (artigos com Procurement Method definido como Make)ProdutosB1 → SkyPlannerCarga inicial, depois em intervalos programados
Lines de ProductTrees (linhas de artigos)Materiais do produtoB1 → SkyPlannerCarga inicial, depois a cada alteração
Stages e linhas de recursos de ProductTreesEtapas do processo e tempos de execuçãoB1 → SkyPlannerCarga inicial, depois a cada alteração
Resources (Machine, Labor, Other)Centros de trabalho e pessoalB1 → SkyPlannerCarga inicial, alterações pouco frequentes
ResourceGroupsGrupos de centros de trabalhoB1 → SkyPlannerCarga inicial
ProductionOrders (Planned, Released)Ordens e tarefasB1 → SkyPlannerWebhook (FP 2602+) ou consultas periódicas de poucos em poucos minutos
Stages de ProductionOrdersEtapas das tarefas com a respetiva sequênciaB1 → SkyPlannerJuntamente com a ordem
Stock de Items por WarehousesStock de materiaisB1 → SkyPlannerEm intervalos programados, por exemplo, de hora a hora
Linhas em aberto de PurchaseOrders (tipo de objeto 22) com data de entregaEncomendas de compra / materiais a receber com data de entrega previstaB1 → SkyPlannerEm intervalos programados, por exemplo, de hora a hora
Linhas de PurchaseDeliveryNotes (Goods Receipt PO) com BaseType 22Quantidade recebida na linha da encomenda de compra e stock atualizadoB1 → SkyPlannerEm intervalos programados, por exemplo, de hora a hora
Início e fim programadosPATCH ProductionOrders({DocEntry}): StartDate, DueDate, e StartDate e EndDate na linha de recursoSkyPlanner → B1Webhook do SkyPlanner a cada alteração da programação
Quantidades registadasInventoryGenEntries (Receipt from Production)SkyPlanner → B1Na confirmação ou em lote
Horas e consumos de materiais registadosInventoryGenExits (Issue for Production)SkyPlanner → B1Na confirmação ou em lote

Os calendários de turnos, o pessoal e as ausências são geridos no SkyPlanner. Os valores de capacidade diária do B1 ficam fora do fluxo de dados (ver o primeiro ponto de atenção abaixo).

Modelos de integração

1. Carga inicial dos dados mestre. Obtenha Resources, ResourceGroups, os Items com Procurement Method definido como Make e as respetivas ProductTrees com etapas. Associe cada recurso do tipo máquina a um centro de trabalho do SkyPlanner. Reveja a lista com os responsáveis pelo planeamento antes da primeira sincronização de ordens.

2. Sincronização de ordens. Leia as ProductionOrders nos estados Planned e Released, usando $expand para obter as linhas e etapas. As ordens de produção do B1 incluem etapas da gama operatória provenientes da BOM, e os responsáveis pelo planeamento podem alterar uma ordem após a sua criação. Use as etapas da ordem, não as da BOM. Uma ordem de produção fabrica um produto, pelo que um produto multinível exige uma ordem de produção por nível. Ligue essas ordens para que o SkyPlanner programe os produtos dos níveis inferiores antes do produto de nível superior.

Sincronize também as linhas em aberto de PurchaseOrders, com a respetiva quantidade em aberto e data de entrega, com os endpoints de encomendas de compra do SkyPlanner. O SkyPlanner considera que o material encomendado fica disponível na data de entrega da encomenda de compra. No B1, o stock é movimentado quando é lançado um documento Goods Receipt PO (PurchaseDeliveryNotes). A integração lê essas receções, marca a quantidade recebida como entregue no SkyPlanner e mantém a quantidade restante em aberto. As receções parciais são contabilizadas uma única vez, e as verificações de materiais abrangem tanto o stock como os fornecimentos previstos.

3. Gravação da programação no B1. Os webhooks do SkyPlanner são acionados quando a programação muda. A integração envia PATCH /b1s/v1/ProductionOrders({DocEntry}) com os novos valores de StartDate e DueDate, bem como StartDate e EndDate nas linhas de recursos da ordem (ProductionOrderLines), para que cada etapa tenha o seu intervalo programado. O corpo do pedido inclui apenas os campos geridos pelo SkyPlanner, e várias ordens são enviadas num único pedido $batch. Os utilizadores do B1 passam a ver as datas programadas na ordem de produção e na janela Resource Capacity. Nas instalações onde o Service Layer não está disponível, a mesma atualização é feita por um serviço local através do objeto ProductionOrders da DI API (GetByKey, definição das datas, Update).

4. Confirmações na fábrica. Os operadores registam o trabalho no SkyPlanner através de Mobile Confirmations ou Production Timer. Cada registo de tempo dá origem a um POST /b1s/v1/InventoryGenEntries para a quantidade produzida (Receipt from Production) e a um POST /b1s/v1/InventoryGenExits para os componentes e o tempo dos recursos (Issue for Production).

Cada linha do documento inclui BaseType 202 e BaseEntry definido com o DocEntry da ordem de produção; as linhas de saída incluem ainda o BaseLine da linha do componente ou recurso. As quantidades parciais são lançadas à medida que são registadas. Nos artigos geridos por lote ou número de série, são incluídos os respetivos números. A ordem tem de estar no estado Released.

O ID do registo de tempo do SkyPlanner fica guardado no documento B1. Assim, o reprocessamento de um evento nunca gera um lançamento duplicado. Se um lançamento falhar, é repetido e a falha é comunicada, em vez de ser ignorada.

5. Responsabilidade pelos dados e regras de conflito. Acorde estas regras antes de começar a programar:

  • O B1 é responsável pelos artigos, BOMs, quantidades, armazéns e criação de ordens.
  • O SkyPlanner é responsável pela sequência, pelas horas de início e fim e pela atribuição aos centros de trabalho.
  • Se as datas de uma ordem forem alteradas nos dois sistemas, prevalecem as datas definidas na execução seguinte do SkyPlanner, salvo se os planeadores tiverem bloqueado a tarefa no SkyPlanner.
  • As ordens com o estado Closed ou Cancelled no B1 fazem com que a tarefa seja removida do programa de produção.

O que inclui o projeto

A implementação fica normalmente concluída em poucas semanas após o início do acompanhamento inicial. Antes disso, pode usar os seus próprios dados na avaliação gratuita de 30 dias. Exporte os artigos, os recursos e as ordens de produção em aberto do B1 para CSV ou Excel e carregue-os através da importação de dados do SkyPlanner. Os planeadores veem um programa de produção real antes de alguém escrever código de integração.

Um projeto típico de SAP Business One inclui:

  • Mapeamento dos dados mestre. Os recursos e grupos de recursos do B1 correspondem a centros de trabalho, as etapas da gama operatória a etapas do processo e os artigos Make a produtos.
  • Carregamento inicial. Artigos, Product Trees com etapas e linhas de artigos, recursos e stocks por armazém.
  • Sincronização de ordens de produção e encomendas de compra. Ordens de produção em aberto com linhas e etapas, além das encomendas de compra em aberto com as respetivas datas de entrega.
  • Gravação da programação no B1. Datas de início e de conclusão programadas em ProductionOrders.
  • Confirmações da produção. Lançamento de Receipt and Issue for Production a partir dos registos de tempo do SkyPlanner.
  • Testes em paralelo com o plano atual. Os planeadores comparam o programa de produção do SkyPlanner com o seu planeamento atual.
  • Entrada em produção. O programa de produção do SkyPlanner passa a ser o plano de referência.

Recursos e etapas da gama operatória bem organizados no B1 simplificam o mapeamento. Na Laboratory & Allied, a integração foi uma das partes menos exigentes do projeto. A equipa interna de TI realizou a integração com o SAP Business One em HANA, em grande parte de forma autónoma. A equipa SkyPlanner interveio nos casos mais complexos, como produtos que se combinam ao longo de processos com várias etapas.

Pontos de atenção no SAP Business One

A capacidade diária não é um modelo de turnos.

O B1 guarda Daily Internal Capacity e Single Run Capacity por recurso e por dia (“These capacities are defined on a daily basis,” (estas capacidades são definidas por dia), segundo o SAP Learning). O guia da SAP indica que o cálculo de Required Days pressupõe que “a single production order can be produced on a single machine” (uma única ordem de produção pode ser produzida numa única máquina) (guia prático da SAP). Não copie esses valores como se representassem a capacidade real das máquinas e do pessoal para a programação da produção. Defina os turnos, o pessoal e a eficiência dos centros de trabalho no SkyPlanner.

A gama operatória faz parte da BOM.

Não existe um registo mestre de gamas operatórias. As linhas Route Stage da Product Tree definem a sequência, e os valores de Waiting Days são introduzidos manualmente. Leia Stages de ProductTrees e Stages de ProductionOrders e verifique se cada linha de recurso pertence a uma etapa. As ordens sem etapas não fornecem ao sistema de programação qualquer sequência de operações.

As quantidades nas linhas de recursos precisam de conversão.

O campo Quantity de uma linha da BOM indica o necessário para produzir a quantidade definida no cabeçalho da BOM, não uma unidade. O campo Additional Quantity é adicionado ao tempo planeado “regardless of the quantity of the parent item produced” (independentemente da quantidade produzida do artigo-pai) (guia prático da SAP). Trate-o como um tempo fixo por ordem, tal como um tempo de preparação. Divida pela quantidade do cabeçalho antes de calcular os tempos de execução por unidade. Caso contrário, o tempo de cada tarefa ficará errado por um fator multiplicativo.

Os dados mestre dos recursos raramente estão bem organizados.

Os recursos são classificados como Machine, Labor ou Other. As máquinas podem estar associadas a ativos fixos e a mão de obra a colaboradores. Um recurso também pode ter um artigo não inventariado associado, para permitir a sua compra ou venda. Nada disso indica quais os recursos que são máquinas reais cuja utilização pode ser programada. Organize os grupos de recursos e elimine os duplicados antes de os converter na lista de centros de trabalho.

As regras de stocks podem impedir o lançamento das confirmações.

As entradas e saídas são documentos de inventário. Os erros mais comuns são confundir InventoryGenEntries com InventoryGenExits, omitir números de lote ou de série nos artigos que os exigem ou efetuar lançamentos numa ordem no estado Planned.

Sessões e paginação.

Uma sessão expirada devolve a mensagem “Invalid session or session already timeout.” (Sessão inválida ou já expirada.). Volte a iniciar sessão quando ocorrer este erro. A paginação predefinida de 20 registos trunca, sem aviso, as sincronizações que ignoram odata.nextLink.

UpdateDate não inclui a hora.

Na tabela OWOR, UpdateDate é um campo de data; a hora da atualização é guardada separadamente em UpdateTS. Uma consulta periódica que filtre apenas por UpdateDate volta a obter, em cada execução, todas as ordens alteradas nesse dia. Combine os dois campos ou elimine os duplicados do lado da integração.

Os webhooks são entregues pelo menos uma vez.

Quando uma entrega falha, o Webhook Messenger tenta novamente até cinco vezes (2, 4, 8, 16 e 32 segundos) e depois marca-a como falhada. As novas tentativas podem gerar duplicados, e a ordem só é garantida dentro da mesma empresa. Garanta que os processadores de eventos são idempotentes com base no ID do evento e mantenha uma consulta noturna de reconciliação.

Integração com o SAP Business One: quem a configura

O trabalho abrange o mapeamento das etapas da gama operatória, dos recursos e da configuração do B1, bem como das restrições que o B1 não considera na programação: matriz de tempos de preparação, ferramentas, número de operadores e recursos alternativos.

  1. A equipa SkyPlanner configura a integração durante a implementação inicial e presta apoio após a entrada em produção. Cada empresa utiliza o B1 de forma diferente, e é nesta configuração que esse conhecimento é aplicado. Esta é a opção padrão.
  2. O seu parceiro SAP Business One pode participar. Os parceiros que conhecem a base de dados da sua empresa, os add-ons e os campos definidos pelo utilizador podem desenvolver a integração com o Service Layer e a API REST do SkyPlanner (referência da API).
  3. Os seus próprios programadores podem desenvolver a integração. A API REST do SkyPlanner permite ler e gravar ordens, produtos, materiais, etapas do processo, encomendas de compra e registos de tempo. Utiliza autenticação por token Bearer JWT e está documentada em Swagger/OpenAPI, com documentação pública na documentação do SkyPlanner. Os webhooks enviam as alterações ao programa de produção e aos estados em tempo real. Para começar a desenvolver, basta uma chave de API do SkyPlanner (tutorial de integração), e a equipa SkyPlanner ajuda sempre que necessário. Foi esta a opção seguida pela equipa interna de TI da Laboratory & Allied.

Valide primeiro o programa de produção na avaliação gratuita de 30 dias. Assim, a integração parte de um programa já ajustado à fábrica.

Porque escolhem as equipas técnicas o SkyPlanner para o B1

  • Escolha o SkyPlanner se procura uma integração de âmbito reduzido e bem definido. Entram os objetos padrão do B1 (ordens de produção, Product Trees, Resources, Items) e saem as datas e os lançamentos Issue and Receipt from Production. Sem alterações ao módulo de produção do B1 nem migração de dados.
  • Escolha o SkyPlanner se o projeto tiver de demonstrar valor desde o início. A avaliação gratuita de 30 dias utiliza uma exportação CSV, permite até 20 centros de trabalho e não exige cartão de crédito. A empresa vê o seu próprio programa de produção antes de começar a integração.
  • Escolha o SkyPlanner se o programa de produção tiver de respeitar restrições reais. Os tempos de mudança de produção, as ferramentas partilhadas, as tarefas com vários operadores, os recursos alternativos, os stocks e as encomendas de compra em aberto são todos modelados no SkyPlanner. A integração limita-se a fornecer os dados do B1.
  • Escolha o SkyPlanner se pretende um único sistema para planeadores e operadores. O motor Arcturus cria o programa de produção em segundos, e o Autopilot reprograma-o automaticamente quando há alterações na produção. Os operadores registam o trabalho no telemóvel ou tablet, e a integração grava essas confirmações no B1.
  • Escolha o SkyPlanner se precisa de custos previsíveis. Os preços começam nos 199 € por mês, com 5 centros de trabalho incluídos, faturação mensal e cancelamento a qualquer momento. Recebe antecipadamente um orçamento da integração ajustado ao seu processo e às suas necessidades, juntamente com o plano de subscrição, para conhecer o custo total antes de começar.

Consulte o artigo sobre programação da produção no SAP Business One para compreender as lacunas no planeamento. O conceito de programação aqui abordado respeita a capacidade real disponível tanto das máquinas como do pessoal. Consulte também a página de integrações ERP para conhecer as opções para outros ERPs.

Opiniões de empresas industriais sobre o SkyPlanner

Operadores com fatos 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 · Indústria farmacêutica

A eficiência na produção aumentou 90%, e criar um plano otimizado para três meses, abrangendo todos os centros de trabalho, demora menos de 30 minutos.

Ler o testemunho da Laboratory & Allied

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 do planeamento da produção em 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 tarefas chega à linha em segundos.

Leia o testemunho da UTU

Anu Järvinen, responsável de produção da Fredman Operations, junto a uma célula robotizada de paletização em Rauma

6 mesesde antecedência para a equipa comercial ver a capacidade disponível

“O SkyPlanner dá-nos a base e a fiabilidade para todo o planeamento da produção.”

Anu Järvinen, responsável de produção
Fredman Operations · Papéis para embalagens de uso alimentar

A equipa comercial consegue ver a capacidade disponível com seis meses de antecedência, e os pedidos de alteração da programação que demoravam uma hora ou mais recebem agora resposta em segundos.

Leia o testemunho da Fredman Operations

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.

Leia o testemunho da Piristeel

Perguntas frequentes

Quem desenvolve a integração com o SAP Business One?

A equipa SkyPlanner configura a integração bidirecional durante a implementação inicial e presta suporte após a entrada em produção. O SkyPlanner recebe ordens de produção, etapas da gama operatória, recursos, encomendas de compra e entradas de mercadorias. No sentido inverso, envia as datas programadas e os dados de Issue and Receipt from Production. O seu parceiro B1 ou os seus próprios programadores também podem desenvolver a integração com base no Service Layer e na API REST do SkyPlanner. Basta uma chave de API para começar.

Quanto tempo demora a implementação do SkyPlanner com o SAP Business One?

A implementação fica normalmente concluída em poucas semanas após o início do acompanhamento inicial. A equipa mapeia os recursos e as etapas da gama operatória, liga as ordens de produção e as encomendas de compra e testa a programação face ao seu plano atual antes da entrada em produção.

Service Layer ou DI API?

Para novos desenvolvimentos, use o Service Layer. Baseia-se em HTTP, funciona em HANA e SQL Server e é adequado a uma solução de programação na nuvem. Use a DI API apenas quando o middleware existente já depender dela.

É necessário ter o SAP Business One 10.0 FP 2602?

Apenas para usar webhooks. Nas versões 10.0 anteriores, a integração faz-se através de consultas periódicas programadas.

Como são gravadas as datas programadas no SAP Business One?

Através de PATCH /b1s/v1/ProductionOrders({DocEntry}), definindo StartDate e DueDate na ordem e StartDate e EndDate nas respetivas linhas de recursos. O pedido é acionado pelo webhook de alteração da programação do SkyPlanner. As quantidades produzidas e os tempos são enviados para o B1 como InventoryGenEntries e InventoryGenExits, ligados à ordem através de BaseType 202 e BaseEntry.

Precisamos de um add-on de produção no B1?

Não. A integração utiliza apenas objetos padrão do B1: ordens de produção, Product Trees, Resources, Items, encomendas de compra e documentos de inventário. Não é feita qualquer migração para um novo modelo de dados de produção.

Podemos testar o SkyPlanner com os nossos dados do B1 antes de fazer a integração?

Sim. O período experimental de 30 dias abrange até 20 centros de trabalho, com importação de ficheiros CSV ou Excel, sem necessidade de cartão de crédito. Comece a experimentar gratuitamente ou fale com a equipa comercial sobre a sua configuração do B1.