Conecta com sistemas ERP e MES como

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 equipes de TI como conectar o B1 ao SkyPlanner APS. Explica quais APIs usar, quais objetos são transferidos em cada direção e onde os projetos B1 costumam dar errado. O SkyPlanner se integra ao SAP Business One nos dois sentidos por meio do Service Layer:

  • O SkyPlanner recebe ordens de produção, etapas do roteiro de produção, recursos, itens e pedidos de compra.
  • As datas planejadas de início e término são gravadas de volta nas ordens de produção.
  • Os apontamentos de tempo dos operadores são lançados como Receipt and Issue for Production.
  • Os webhooks do SkyPlanner enviam as alterações na programação assim que elas ocorrem.
Gráfico de Gantt do SkyPlanner APS com operações programadas nos centros de trabalho e uma lista de ordens abaixo.

O SAP Business One mantém os itens, as BOMs, as ordens de produção, o estoque e as finanças, e seu módulo de manufatura continua como está. A equipe SkyPlanner configura a integração com os objetos padrão do B1 durante a implantação e oferece suporte após a entrada em produção. Cada base de dados de empresa tem suas particularidades nas etapas do roteiro de produção, nos grupos de recursos, nos campos definidos pelo usuário e nos add-ons. A configuração mapeia essas diferenças.

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

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

O SAP Business One oferece três interfaces de integração. Para um sistema de programação na nuvem, o Service Layer é a opção padrão.

OpçãoO que éAdequação à integração com APS
Service LayerAPI REST/OData. /b1s/v1 usa OData v3; /b1s/v2 usa OData v4. Funciona na versão do SAP Business One para SAP HANA e, desde a versão 10.0 PL01, também no Microsoft SQL Server.Principal opção. Usa HTTP e JSON e funciona a partir de um serviço na nuvem.
DI APIBiblioteca COM para Windows. As ordens de produção são representadas pelo objeto ProductionOrders, armazenado na tabela OWOR (tipo de objeto 202).Middleware legado ou instalado localmente. Exige um host Windows.
Integration Framework (B1if)Middleware da SAP para cenários de integração no nível de documentos.Útil se o parceiro já utiliza cenários no B1if.

Autenticação

O Service Layer usa autenticação por sessão. Envie POST /b1s/v1/Login com CompanyDB, UserName e Password para receber um cookie B1SESSION (e, opcionalmente, um ROUTEID em ambientes com balanceamento de carga). O valor padrão de SessionTimeout é de 30 minutos de inatividade. Chame Logout explicitamente ao encerrar cada execução da sincronização. Crie um usuário exclusivo para a integração no B1, para que toda alteração gravada pelo SkyPlanner possa ser rastreada no log de alterações.

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

DadosEntidade do Service Layer
Itens e dados de planejamentoItems
Listas de materiais e etapas do roteiro de produçãoProductTrees (Lines, Stages)
Máquinas, mão de obra e outros recursosResources, ResourceGroups
Ordens de produçãoProductionOrders (Lines, Stages)
Estoque por depósitoDados de estoque de Items, Warehouses
Pedidos de compra em aberto e datas de entregaPurchaseOrders (DocumentLines: quantidade em aberto, ShipDate)
Recebimentos de mercadorias vinculados a pedidos de compraPurchaseDeliveryNotes (Goods Receipt PO, tipo de objeto 20)
Saída para produçãoInventoryGenExits
Entrada de produçãoInventoryGenEntries
Configuração de webhooksEventSubscriptions, EventNotifications

O tamanho padrão da página é de 20 registros. Aumente esse limite com o cabeçalho Prefer: odata.maxpagesize (ou com PageSize em b1s.conf) e siga odata.nextLink. Use $expand para buscar as linhas e etapas da ordem de produção em uma única chamada e agrupe as requisições em lotes para gravar grandes volumes de dados de volta no B1.

Eventos e webhooks

A partir do SAP Business One 10.0 FP 2602, o Service Layer oferece suporte a webhooks. Eles vêm desativados por padrão. Ative-os para cada empresa com CompanyService_UpdateAdminInfo (EnableWebhook = tYES). Em seguida, envie POST EventSubscriptions com três partes:

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

O WebhookURL deve usar HTTPS com um certificado correspondente ao host. EventSubscriptionsService_GetEventCatalog lista os eventos nos quais é possível se inscrever. O Webhook Messenger Service deve estar em execução.

Em versões anteriores, use consultas periódicas programadas (veja abaixo o cuidado necessário com UpdateDate). SBO_SP_TransactionNotification é um mecanismo de validação no nível do banco de dados, não um canal de entrega de eventos.

Mapeamento de dados: do SAP Business One para o SkyPlanner

SAP Business One (Service Layer)Objeto do SkyPlannerSentidoFrequência
Items (itens com Procurement Method definido como Make)ProdutosB1 → SkyPlannerCarga inicial; depois, em intervalos programados
Lines de ProductTrees (linhas de itens)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, com alterações esporádicas
ResourceGroupsGrupos de centros de trabalhoB1 → SkyPlannerCarga inicial
ProductionOrders (Planned, Released)Ordens e operaçõesB1 → SkyPlannerWebhook (FP 2602+) ou consultas periódicas a cada poucos minutos
Stages de ProductionOrdersEtapas da operação com sua sequênciaB1 → SkyPlannerJunto com a ordem
Estoque de Items por WarehousesEstoque de materiaisB1 → SkyPlannerEm intervalos programados, por exemplo, a cada hora
Linhas em aberto de PurchaseOrders (tipo de objeto 22), com data de entregaPedidos de compra / materiais a receber com data prevista de entregaB1 → SkyPlannerEm intervalos programados, por exemplo, a cada hora
Linhas de PurchaseDeliveryNotes (Goods Receipt PO) com BaseType 22Quantidade recebida na linha do pedido de compra e estoque atualizadoB1 → SkyPlannerEm intervalos programados, por exemplo, a cada hora
Início e término programadosPATCH ProductionOrders({DocEntry}): StartDate, DueDate, e StartDate e EndDate na linha de recursoSkyPlanner → B1Webhook do SkyPlanner a cada alteração na programação
Quantidades apontadasInventoryGenEntries (entrada de produção)SkyPlanner → B1Na confirmação ou em lotes
Horas e consumo de materiais apontadosInventoryGenExits (saída para produção)SkyPlanner → B1Na confirmação ou em lotes

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

Padrões de integração

1. Carga inicial de dados mestres. Busque Resources, ResourceGroups, Items com Procurement Method definido como Make e seus ProductTrees com as etapas. Mapeie cada recurso do tipo máquina para um centro de trabalho do SkyPlanner. Revise a lista com os planejadores antes da primeira sincronização de ordens.

2. Sincronização de ordens. Leia ProductionOrders nos status Planned e Released, usando $expand para as linhas e etapas. As ordens de produção do B1 contêm etapas do roteiro de produção extraídas da BOM, e os planejadores podem alterar uma ordem depois de criá-la. Use as etapas da ordem, não as da BOM. Cada ordem de produção fabrica um produto; por isso, um produto multinível exige uma ordem de produção por nível. Vincule essas ordens para que o SkyPlanner programe os produtos dos níveis inferiores antes do produto pai.

Sincronize também as linhas em aberto de PurchaseOrders, com suas quantidades em aberto e datas de entrega, com os endpoints de pedidos de compra do SkyPlanner. O SkyPlanner considera o material comprado disponível na data de entrega do pedido de compra. No B1, o estoque é movimentado quando um recebimento de mercadorias de pedido de compra, Goods Receipt PO (PurchaseDeliveryNotes), é lançado. A integração lê esses recebimentos, marca a quantidade recebida como entregue no SkyPlanner e mantém o saldo em aberto. Os recebimentos parciais são contabilizados uma única vez, e as verificações de materiais consideram tanto o estoque quanto os materiais a receber.

3. Gravação da programação no B1. Os webhooks do SkyPlanner são disparados quando a programação muda. A integração envia PATCH /b1s/v1/ProductionOrders({DocEntry}) com os novos valores de StartDate e DueDate, além de StartDate e EndDate nas linhas de recursos da ordem (ProductionOrderLines), para que cada etapa tenha seu intervalo programado. O corpo da requisição contém apenas os campos sob responsabilidade do SkyPlanner, e várias ordens são enviadas em uma única requisição $batch. Assim, os usuários do B1 veem as datas programadas na ordem de produção e na janela Resource Capacity. Nas instalações em que o Service Layer não está disponível, a mesma atualização é feita por um serviço local, por meio do objeto ProductionOrders da DI API (GetByKey, definição das datas, Update).

4. Apontamentos de chão de fábrica. Os operadores registram o trabalho no SkyPlanner com Mobile Confirmations ou Production Timer. Cada apontamento de tempo gera um POST /b1s/v1/InventoryGenEntries para a quantidade concluída (entrada de produção) e um POST /b1s/v1/InventoryGenExits para os componentes e o tempo dos recursos (saída para produção).

Cada linha do documento contém BaseType 202 e BaseEntry definido com o DocEntry da ordem de produção; as linhas de saída também incluem o BaseLine da linha do componente ou recurso. As quantidades parciais são lançadas à medida que são apontadas, os números de lote e de série são informados nos itens sujeitos a esses controles, e a ordem deve estar no status Released.

O ID do apontamento de tempo do SkyPlanner é armazenado no documento do B1. Assim, um evento reprocessado nunca gera um lançamento duplicado. Se um lançamento falhar, ele será tentado novamente e a falha será reportada, em vez de o lançamento ser descartado.

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

  • O B1 é responsável por itens, BOMs, quantidades, depósitos e criação de ordens.
  • O SkyPlanner é responsável pela sequência, pelos horários de início e término e pela alocação aos centros de trabalho.
  • Se os dois sistemas alterarem as datas de uma ordem, prevalecem as datas calculadas na próxima execução do SkyPlanner, a menos que os planejadores tenham bloqueado a operação no SkyPlanner.
  • Quando uma ordem no B1 está com o status Closed ou Cancelled, a operação é removida da programação.

O que o projeto inclui

A implementação normalmente é concluída em algumas semanas após o início da implantação. Antes disso, você faz o teste grátis de 30 dias com seus próprios dados. Exporte itens, recursos e ordens de produção em aberto do B1 para CSV ou Excel e carregue-os com a importação de dados do SkyPlanner. Os planejadores veem uma programação real antes que alguém escreva o código da integração.

Um projeto típico com SAP Business One inclui:

  • Mapeamento de dados mestres. Recursos e grupos de recursos do B1 são mapeados para centros de trabalho, etapas do roteiro de produção para etapas do processo e itens Make para produtos.
  • Carga inicial. Itens, Product Trees com etapas e linhas de itens, recursos e estoque por depósito.
  • Sincronização de ordens de produção e pedidos de compra. Ordens de produção em aberto com linhas e etapas, além de pedidos de compra em aberto com suas datas de entrega.
  • Gravação da programação no B1. Datas programadas de início e conclusão em ProductionOrders.
  • Apontamentos do chão de fábrica. Lançamentos de Receipt and Issue for Production a partir dos apontamentos de tempo do SkyPlanner.
  • Testes em paralelo com o planejamento atual. Os planejadores comparam a programação do SkyPlanner com a forma como planejam hoje.
  • Entrada em produção. A programação do SkyPlanner passa a ser o plano oficial.

Recursos e etapas do roteiro de produção bem cadastrados no B1 simplificam o mapeamento. Na Laboratory & Allied, a integração foi uma das partes mais simples do projeto. A equipe interna de TI realizou a integração com o SAP Business One sobre HANA em grande parte por conta própria. A equipe SkyPlanner participou dos casos mais complexos, como produtos que se combinam ao longo de processos com várias etapas.

Pontos de atenção no SAP Business One

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

O B1 armazena Daily Internal Capacity e Single Run Capacity por recurso e por dia (“These capacities are defined on a daily basis,” (essas capacidades são definidas por dia), segundo o SAP Learning). O guia da SAP informa 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 em uma única máquina) (guia prático da SAP). Não copie esses valores como se representassem a capacidade real das máquinas e da equipe para a programação da produção. Defina os turnos, o pessoal e a eficiência dos centros de trabalho no SkyPlanner.

O roteiro de produção faz parte da BOM.

Não há um cadastro mestre de roteiros de produção. As linhas Route Stage no Product Tree definem a sequência, e os valores de Waiting Days são preenchidos manualmente. Leia Stages de ProductTrees e Stages de ProductionOrders e verifique se cada linha de recurso está vinculada a uma etapa. Ordens sem etapas não fornecem ao programador uma sequência de operações.

As quantidades nas linhas de recursos precisam ser convertidas.

O campo Quantity de uma linha da BOM indica o necessário para produzir a quantidade do cabeçalho da BOM, não uma unidade. Additional Quantity é somado ao tempo planejado “regardless of the quantity of the parent item produced” (independentemente da quantidade produzida do item pai) (guia prático da SAP). Trate esse valor como um tempo fixo por ordem, como o tempo de preparação. Divida pela quantidade do cabeçalho antes de calcular os tempos de execução por unidade; caso contrário, todas as operações terão um erro de escala.

Os dados mestres de recursos raramente estão bem organizados.

Os recursos são classificados como Machine, Labor ou Other. Máquinas podem ser vinculadas a ativos fixos, e mão de obra, a funcionários. Um recurso também pode ter um item não estocável vinculado para sua compra ou venda. Nada disso informa quais recursos são máquinas reais que podem ser programadas. Revise os grupos de recursos e elimine duplicidades antes de transformá-los na sua lista de centros de trabalho.

Regras de estoque podem impedir os apontamentos.

As entradas e saídas são documentos de estoque. Os erros mais comuns são confundir InventoryGenEntries com InventoryGenExits, omitir números de lote ou de série em itens sujeitos a esses controles ou fazer lançamentos para uma ordem no status Planned.

Sessões e paginação.

Uma sessão expirada retorna “Invalid session or session already timeout.” (Sessão inválida ou já expirada.) Faça login novamente ao receber esse erro. A paginação padrão de 20 registros trunca silenciosamente as sincronizações que ignoram odata.nextLink.

UpdateDate não contém horário.

Na tabela OWOR, UpdateDate é um campo de data; o horário da atualização fica separado, em UpdateTS. Uma consulta periódica que filtra apenas por UpdateDate busca, a cada execução, todas as ordens alteradas no dia. Combine os dois campos ou elimine as duplicidades na sua integração.

Os webhooks seguem a semântica de entrega “pelo menos uma vez”.

O Webhook Messenger tenta reenviar uma entrega malsucedida até cinco vezes (2, 4, 8, 16 e 32 segundos) e depois a marca como falha. As novas tentativas podem gerar duplicidades, e a ordem dos eventos só é garantida dentro de uma mesma empresa. Torne os processadores idempotentes com base no ID do evento e mantenha uma consulta noturna de reconciliação.

Quem configura a integração com o SAP Business One

O trabalho abrange o mapeamento das etapas do roteiro de produção, dos recursos e da configuração do B1, além das restrições que o B1 não considera na programação: matriz de tempos de preparação, ferramentas, quantidade de operadores e recursos alternativos.

  1. A equipe SkyPlanner configura a integração durante a implantação e oferece suporte após a entrada em produção. Cada empresa usa o B1 de uma forma, e é nessa configuração que esse conhecimento é aplicado. Esse é o caminho padrão.
  2. Seu parceiro SAP Business One pode participar. Parceiros que conhecem a base de dados da sua empresa, os add-ons e os campos definidos pelo usuário podem desenvolver a integração usando o Service Layer e a API REST do SkyPlanner (referência da API).
  3. Seus próprios desenvolvedores podem criar a integração. A API REST do SkyPlanner lê e grava ordens, produtos, materiais, etapas do processo, pedidos de compra e apontamentos de tempo. Ela usa autenticação por token bearer JWT e é documentada em Swagger/OpenAPI, com documentação pública na documentação do SkyPlanner. Os webhooks enviam alterações de programação e status em tempo real. Você só precisa de uma chave de API do SkyPlanner para começar a desenvolver (tutorial de integração), e a equipe SkyPlanner ajuda quando necessário. Esse foi o caminho escolhido pela equipe interna de TI da Laboratory & Allied.

Primeiro, valide a programação no teste grátis de 30 dias. Assim, a integração parte de uma programação que já atende à fábrica.

Por que as equipes técnicas escolhem o SkyPlanner para o B1

  • Escolha o SkyPlanner quando quiser uma integração enxuta e bem definida. O fluxo recebe objetos padrão do B1 (ordens de produção, Product Trees, Resources, Items) e devolve datas e lançamentos de Issue and Receipt from Production. Sem alterar o módulo de manufatura do B1 e sem migração de dados.
  • Escolha o SkyPlanner quando o projeto precisar demonstrar seu valor logo no início. O teste grátis de 30 dias usa uma exportação CSV, com até 20 centros de trabalho e sem cartão de crédito. A empresa vê sua própria programação antes do início da integração.
  • Escolha o SkyPlanner quando a programação precisar respeitar as restrições reais. Tempos de troca de produção, ferramentas compartilhadas, operações com vários operadores, recursos alternativos, estoque e pedidos de compra em aberto são todos modelados no SkyPlanner. A integração apenas fornece os dados do B1.
  • Escolha o SkyPlanner quando quiser um único sistema para planejadores e operadores. O motor Arcturus cria a programação em segundos, e o Autopilot reprograma automaticamente quando há mudanças na produção. Os operadores registram o trabalho pelo celular ou tablet, e sua integração grava esses apontamentos de volta no B1.
  • Escolha o SkyPlanner quando precisar de custos previsíveis. Os preços começam em 199 € por mês, com 5 centros de trabalho incluídos, cobrança mensal e cancelamento a qualquer momento. O orçamento da integração é apresentado antecipadamente, de acordo com seu processo e suas necessidades, junto com o plano. Assim, você conhece o custo total antes de começar.

Leia o guia sobre programação da produção no SAP Business One para entender a lacuna no planejamento. O tema do guia é a programação que respeita a capacidade realmente disponível das máquinas e da equipe. Consulte também a central de integrações com ERP para conhecer outros ERPs.

Avaliações de fabricantes sobre o SkyPlanner

Operadores com vestimentas para sala limpa em uma linha de envase de frascos na fábrica farmacêutica da Laboratory & Allied em Nairóbi

+90%de eficiência na produção

“A eficiência na produção aumentou 90%.”

Abdul Rucyinga, responsável por TI
Laboratory & Allied · Indústria farmacêutica

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

Leia a avaliação da Laboratory & Allied

Kalle Kalliomäki, especialista em cadeia de suprimentos da UTU, no chão de fábrica de painéis elétricos em Ulvila

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 operações chega à linha em segundos.

Leia o depoimento da UTU

Anu Järvinen, gerente de produção da Fredman Operations, ao lado de uma célula robotizada de paletização em Rauma

6 mesesde capacidade disponível visível para a equipe de vendas

“O SkyPlanner dá sustentação e confiabilidade a todo o planejamento da produção.”

Anu Järvinen, gerente de produção
Fredman Operations · Papéis para embalagens adequados ao contato com alimentos

A equipe de vendas visualiza a capacidade disponível com seis meses de antecedência, e as solicitações de alteração na programação que levavam uma hora ou mais agora são respondidas em segundos.

Leia o depoimento da Fredman Operations

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

99,2%de pontualidade de entrega

“O SkyPlanner trouxe visibilidade para identificar gargalos e deu mais clareza à gestão da produção.”

Toni Tuori, gerente de produção
Piristeel · Sistemas de segurança para telhados e de captação de águas pluviais

A pontualidade de entrega chegou a 99,2% neste ano, e a programação economiza até quatro horas de trabalho por dia.

Leia o depoimento da Piristeel

Perguntas frequentes

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

A equipe do SkyPlanner configura a integração bidirecional durante a implantação e oferece suporte após a entrada em operação. O SkyPlanner recebe ordens de produção, etapas dos roteiros de produção, recursos, pedidos de compra e recebimentos de mercadorias. As datas programadas e os registros de Issue and Receipt from Production são enviados de volta ao B1. Seu parceiro B1 ou seus próprios desenvolvedores também podem criar a integração usando o Service Layer e a API REST do SkyPlanner. Basta uma chave de API para começar.

Quanto tempo leva a implantação do SkyPlanner com o SAP Business One?

A implantação normalmente é concluída em poucas semanas após o início do processo. A equipe mapeia os recursos e as etapas dos roteiros de produção, conecta as ordens de produção e os pedidos de compra e testa a programação em relação ao seu plano atual antes da entrada em operação.

Service Layer ou DI API?

Para novos desenvolvimentos, use o Service Layer. Ele é baseado em HTTP, funciona com HANA e SQL Server e é adequado para um sistema de programação na nuvem. Use a DI API apenas quando o middleware existente já depender dela.

Preciso do SAP Business One 10.0 FP 2602?

Somente para usar webhooks. As versões anteriores da linha 10.0 são integradas por meio de consultas periódicas programadas.

Como as datas programadas são enviadas de volta ao SAP Business One?

Por meio de PATCH /b1s/v1/ProductionOrders({DocEntry}), definindo StartDate e DueDate na ordem e StartDate e EndDate nas linhas de recursos. Esse envio é acionado pelo webhook de alteração da programação do SkyPlanner. As quantidades produzidas e os tempos retornam como InventoryGenEntries e InventoryGenExits, vinculados à ordem por BaseType 202 e BaseEntry.

Precisamos de um add-on de manufatura no B1?

Não. A integração utiliza apenas objetos padrão do B1: ordens de produção, Product Trees, Resources, Items, pedidos de compra e documentos de estoque. Nada é migrado para um novo modelo de dados de manufatura.

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

Sim. O teste de 30 dias inclui até 20 centros de trabalho, com importação por CSV ou Excel, sem necessidade de cartão de crédito. Inicie o teste gratuito ou fale com a equipe de vendas sobre a configuração do seu B1.