Qlik Sense • Qlik Cloud • NPrinting

Migração Qlik de Ponta a Ponta:
QlikView → Qlik Sense → Qlik Cloud + NPrinting

Três trilhas de migração. Armadilhas técnicas reais. O guia que o mercado não publicou: scripts, diferenças de sintaxe e o que quebra em cada etapa.

Migrar não é clicar em "Publicar". É reengenharia.
0trilhas de migração
0armadilhas críticas
0% baseado em projetos reais
Role para baixo
Por Que Isso É Mais Complexo do que Parece

A Realidade das Migrações Qlik

A Qlik anunciou o fim do suporte ao QlikView para 2025. O NPrinting já não tem roadmap de evolução significativo. E o Qlik Sense on-prem está em modo de manutenção enquanto o Qlik Cloud recebe todos os novos recursos.

O resultado: empresas que construíram seu BI nos últimos 15 anos sobre QlikView estão diante de uma migração em três etapas - e cada etapa tem suas próprias armadilhas técnicas.

"A maior armadilha das migrações Qlik não é técnica. É a suposição de que o load script vai funcionar igual. Não vai. E o NPrinting menos ainda."

As Três Trilhas

1
QlikView → Qlik Sense .qvw para .qvf - novo modelo de objetos, novo paradigma de extensibilidade, Section Access reescrito, expressões com comportamento diferente em edge cases.
2
Qlik Sense On-Prem → Qlik Cloud Spaces, OAuth 2.0, Managed Spaces, Data Spaces - arquitetura de tenant completamente diferente. Extensions precisam de re-certificação. QVDs migram para cloud storage.
3
NPrinting → Qlik Cloud Reporting Service Templates Office não migram automaticamente. Distribuição agendada via Automation. Bursting por atributo funciona diferente. Pixel-perfect exige nova abordagem.
1
QlikView → Qlik Sense
Formato, scripting, objetos e segurança

O Que Muda no Load Script

O load script do Qlik Sense é compatível com a sintaxe QlikView na maior parte - mas existem diferenças críticas que quebram silenciosamente.

NullAsValue e SET NULLINTERPRET

QlikView (comportamento padrão)
// QlikView trata NULL de forma
// mais permissiva em associações.
// Campos NULL participam de joins
// sem configuração explícita.

LOAD * FROM vendas.qvd (qvd);
Qlik Sense (explícito e correto)
// Declare NULL behavior explicitamente
SET NullInterpret = '';
SET NullDisplay = '-';

NullAsValue Field1, Field2;

LOAD * FROM vendas.qvd (qvd);

Section Access - Reescrita Obrigatória

No QlikView, o Section Access usa campos NTNAME, OMIT e ACCESS com configuração via arquivo QMC. No Qlik Sense, o modelo é diferente: USER.EMAIL ou USER.USERID substituem NTNAME, e o campo OMIT foi descontinuado.

Section Access - QlikView
Section Access;
LOAD * INLINE [
  ACCESS, NTNAME,   REGION,   OMIT
  ADMIN,  DOMAIN\admin, *,
  USER,   DOMAIN\ana,   SP,   CUSTO
  USER,   DOMAIN\joao,  RJ,   CUSTO
];
Section Application;
Section Access - Qlik Sense
Section Access;
LOAD * INLINE [
  ACCESS, USERID,          REGION
  ADMIN,  ana@empresa.com, *
  USER,   joao@empresa.com,RJ
  USER,   pedro@empresa.com,SP
];
// OMIT descontinuado:
// use Row-Level Security via
// campo de filtro no modelo
Section Application;

Objetos: O que Migra e o que Não Migra

Expressão com TOTAL - Comportamento Idêntico nas Duas Plataformas

O qualificador TOTAL sem especificação de campo ignora todas as dimensões do gráfico em ambas as plataformas. QlikView e Qlik Sense se comportam da mesma forma neste caso - a sintaxe básica migra sem alteração.

QlikView e Qlik Sense - idêntico
// TOTAL sem campo: ignora
// todas as dimensões do gráfico
// (comportamento igual nas duas plataformas)
Sum(Vendas) / Sum(TOTAL Vendas)

// Com campo: restringe quais
// dimensões o TOTAL ignora
// (sintaxe disponível em ambas)
Sum(Vendas) /
Sum(TOTAL <Regiao> Vendas)
Onde diferenças reais existem
// Edge cases reais de migração:
// 1. Set Analysis aninhado com TOTAL
//    - ordem de avaliação pode diferir

Sum({<Ano={2024}>} TOTAL Vendas)

// 2. Master Visualizations no Qlik Cloud
//    - contexto de seleção pode
//    interagir de forma diferente
//    com o qualificador TOTAL
2
Qlik Sense On-Prem → Qlik Cloud
Spaces, OAuth, Extensions e QVDs

O Novo Modelo de Spaces

O Qlik Cloud substitui o modelo de Streams por Spaces - e entender a diferença entre eles é o primeiro passo para uma migração sem retrabalho.

Personal
Personal Space Um por usuário. Desenvolvimento e testes. Conteúdo não compartilhável diretamente. Equivale ao "Work" stream no Sense.
Shared
Shared Space Colaboração de conteúdo entre usuários. Apps, datasets e automações. Equivale a Streams com acesso de edição.
Managed
Managed Space Conteúdo publicado para consumo. Papéis separados entre desenvolvedor e consumidor. Governance de produção.
Data
Data Space Exclusivo para dados: QVDs, conexões, datasets. Separação entre camada de dados e camada analítica.

Autenticação: API Keys → OAuth 2.0

No Sense on-prem, integrações usam Virtual Proxies com certificados ou JWT. No Cloud, o padrão é OAuth 2.0 com escopos declarados.

Autenticação via OAuth 2.0 - Qlik Cloud API
# Obter access token (Client Credentials)
curl -X POST https://SEU_TENANT.us.qlikcloud.com/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "client_credentials",
    "client_id": "SEU_CLIENT_ID",
    "client_secret": "SEU_CLIENT_SECRET"
  }'

# Usar o token para recarregar um app
curl -X POST \
  https://SEU_TENANT.us.qlikcloud.com/api/v1/apps/APP_ID/reloads \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json"

QVDs: Migração para Cloud Storage

No on-prem, QVDs ficam em file shares ou diretórios locais. No Cloud, precisam de um Data Connection apontando para S3, ADLS Gen2, GCS ou Qlik Data Gateway para fontes on-premises.

On-Prem - path local
LOAD * FROM
[lib://QVD_Store/vendas_$(vAno).qvd]
(qvd);
Cloud - conexão declarada
// Data Connection: "S3_DataLake"
// configurada no Data Space

LOAD * FROM
[lib://S3_DataLake:vendas/$(vAno).qvd]
(qvd);

// Ou via Qlik Data Gateway
// para QVDs em rede corporativa

Extensions: Re-certificação Obrigatória

3
NPrinting → Qlik Cloud Reporting
Templates, distribuição e bursting por atributo

Esta é a trilha mais subestimada. Muitas equipes assumem que "o NPrinting vai continuar funcionando" após mover apps para o Cloud. Não vai - NPrinting conecta apenas ao Qlik Sense on-prem.

NPrinting não tem suporte ao Qlik Cloud. Se seus apps migrarem para o Cloud, sua distribuição de relatórios precisa migrar também.

Comparativo: NPrinting vs Qlik Cloud Reporting

NPrinting
Templates: Excel, Word,
  PowerPoint, HTML, PDF

Distribuição: Email, Folder,
  NewsStand

Bursting: por campo de usuário
  na conexão (filtro por usuário)

Agendamento: cron-like no
  NPrinting Scheduler

Pixel-perfect: sim, via
  template Office detalhado
Qlik Cloud Reporting
Templates: Qlik Sense app
  (não importa templates Office)

Distribuição: Email via
  Qlik Application Automation

Bursting: via loop no Automation
  + Section Access dinâmico

Agendamento: Automation
  (triggers temporais ou eventos)

Pixel-perfect: via PDF export
  configurado no app

Bursting via Qlik Application Automation

No NPrinting, o bursting era declarativo: você apontava um campo e ele gerava um PDF por valor. No Cloud, o bursting é imperativo via Automation:

Lógica de bursting - Qlik Application Automation (pseudocódigo)
// Bloco: Start (Trigger: Schedule - todo dia 6h)

// 1. Buscar lista de regiões via REST API
GET /api/v1/apps/{appId}/data
  → retorna lista de valores do campo "Regiao"

// 2. Loop por cada região
FOR EACH regiao IN lista_regioes:

  // 3. Aplicar seleção via Engine API
  POST /api/v1/apps/{appId}/reloads
  body: { selections: [{ field: "Regiao", values: [regiao] }] }

  // 4. Exportar PDF do sheet configurado
  POST /api/v1/apps/{appId}/sheets/{sheetId}/export
  body: { outputFormat: "pdf" }
  → retorna URL do PDF gerado

  // 5. Enviar por email
  Email: para = lookup_email(regiao)
         assunto = "Relatório " + regiao
         anexo = URL_PDF

O Que Não Existe (Ainda) no Qlik Cloud Reporting

Para relatórios pixel-perfect críticos (regulatório, financeiro), avalie Qlik Sense + Sense on-prem em modo híbrido ou uma solução de relatórios complementar enquanto o Cloud Reporting amadurece.

Plano de Migração

Assessment Antes de Migrar

Toda migração começa com um inventário honesto. Execute isso antes de abrir qualquer ticket de projeto:

Ordem Recomendada de Migração

1
Camada de dados primeiroMigre QVDs para cloud storage antes de migrar apps. Sem dados no Cloud, nenhum app funciona. Configure Data Connections e valide integridade dos QVDs.
2
Apps de menor criticidadeComece pelos apps com menos usuários e sem Section Access. Valide comportamento de expressões, performance e integridade do modelo antes de apps críticos.
3
Section Access e segurançaMigre segurança em ambiente isolado antes de expor em produção. Valide Row-Level Security com usuários de teste representativos de cada perfil de acesso.
4
Relatórios NPrinting em paraleloExecute NPrinting on-prem em paralelo com Cloud Reporting por pelo menos um ciclo de fechamento. Compare outputs antes de desligar o NPrinting.

Qual trilha de migração é a sua dor agora?

QlikView parado há anos esperando migrar? NPrinting que ninguém sabe como substituir? Sense on-prem com data de fim de suporte se aproximando?

Conta nos comentários em que ponto do caminho você está. Já passei pelas três trilhas em produção.

Conectar com Rafael

#Qlik #QlikSense #QlikCloud #QlikView #NPrinting #DataGovernance #BusinessIntelligence #BI #DataEngineering #CloudMigration