Integrando ERP Navision: Por Que É Tão Difícil (e Como Fizemos Funcionar)
2022. Cliente com Navision desde 2010. Precisava sincronizar com novo CRM. Consultoria cobrou R$ 80 mil por 3 meses. Nós fizemos em 4 semanas, R$ 20 mil.
Qual era o segredo? Entender que Navision não é um sistema moderno. Ele é ROBUSTO, ESTÁVEL, e INFLEXÍVEL. Você não integra COM Navision, você integra APESAR de Navision.
O Problema Real (Ninguém Avisa)
Navision tem API, sim. Mas é lenta. Uma requisição para 10 mil pedidos leva 45 segundos. Você carrega de noite. Batching é OBRIGATÓRIO.
Segundo: integridade. Navision foi feito para não perder dados. Qualquer sync que falha no meio deixa tudo inconsistente. Você precisa de rollback.
Terceiro (o que ninguém avisa): campos customizados. Cliente criou 30 campos novos no Navision. Não estão na API. Você acessa direto no banco.
A Arquitetura Que Funciona
Não faça sync direto. Você vai ficar frustrado. Faça um buffer intermediário:
Navision (API lenta) → Seu Banco Local (cache) → CRM (rápido)
Benefício: Navision não fica sobrecarregado. Se o CRM cair, Navision continua. Se o sync falha, você sabe exatamente o que completou.
CREATE TABLE navision_sync_log (
id INT PRIMARY KEY,
entity_type VARCHAR(50),
external_id INT,
local_id INT,
status VARCHAR(20),
synced_at DATETIME
);
-- Retry do ponto onde parou
SELECT * FROM navision_sync_log
WHERE status = 'pending'
Os Campos Escondidos
Aqui está o hack: acesse o banco do Navision direto. É arriscado? Sim. Funciona? 100%.
Seu cliente criou "Observações Adicionais" no Navision. Não está na API. Você perde aquela informação.
Solução: query no SQL Server de Navision. Campo vira coluna "customfield_observacoes".
SELECT
[No_] as id,
[Sell-to Customer Name] as cliente,
[customfield_observacoes] as observacoes
FROM [Navision Database].[dbo].[Sales Header]
WHERE [Document Type] = 1
Sincronização Bidirecional (O Pesadelo)
Evite ao máximo. Se necessário: Mudança no CRM → Fila → Validação → Navision → Log.
Se falhar, enfileirada com status "retry", tenta em 5 minutos. Nunca silencioso.
Timing Real
Navision é LENTO. Espere:
1000 pedidos = 45-60 segundos. 10.000 = 8-10 minutos. Agende para 2 da manhã. Se falhar, retenta 3, 4, 5 da manhã com backoff.
← Back to blog