Detalhes da conversão de objeto
Última atualização: 14/10/2026QV2QS lida com uma variedade de recursos específicos do QlikView durante a conversão.
Expressões
QV2QS passa expressões do QlikView para o Qlik Sense com transformação mínima. A linguagem de expressão é amplamente compartilhada entre QlikView e Qlik Sense, então a maioria das expressões funciona sem modificação.
QV2QS aplica as seguintes transformações:
- Prefixo de igual — Qlik Sense exige um
=inicial em expressões de medida e certas expressões de propriedade. O QV2QS adiciona o prefixo onde necessário se a expressão original do QlikView não incluir um. - Remoção de comentários — Comentários de linha inteira que começam com
//,#, ouREMsão removidos de expressões inline. Expressões de propriedade do Qlik Sense não oferecem suporte consistente à sintaxe de comentário, portanto, a remoção evita erros de avaliação. Comentários em bloco (/* */) não são removidos. Comentários//em linha dentro de uma linha de código também não são removidos.
Os seguintes recursos de expressão são passados literalmente e funcionam no Qlik Sense sem modificação:
- Expressões de análise de conjunto (por exemplo,
{<Year={2024}>}) - Expansão de cifrão e referências de variável (por exemplo,
$(vMyVar)) - Expressões
Aggr()aninhadas If()expressões, incluindo expressões de formatação condicionalPick(),Match()eDual()padrões- Dimensões calculadas
Aspas na análise de conjunto
QlikView (antes de novembro de 2017) tratava valores entre aspas simples em modificadores de conjunto como pesquisas que não diferenciam maiúsculas de minúsculas, idênticas a valores entre aspas duplas. Qlik Sense trata valores entre aspas simples como literais sensíveis a maiúsculas e minúsculas. Essa diferença pode quebrar expressões que dependem de curingas, operadores de comparação, ou correspondência numérica dentro de aspas simples.
O QV2QS verifica todas as expressões de objeto e definições de variável em busca de padrões de citação de análise de conjunto que se comportam de forma diferente no Qlik Sense. Padrões detectados incluem curingas entre aspas simples ('*US*'), operadores de comparação entre aspas simples ('>=5'), valores entre aspas simples em campos numéricos, e valores de string simples sem aspas. Os resultados aparecem na planilha Expression_Findings do relatório Excel.
QV2QS corrige automaticamente valores de pesquisa entre aspas simples durante a conversão. Uma correção experimental para valores de string simples sem aspas também está disponível, mas desativada por padrão.
- Valores de pesquisa entre aspas simples (ativado por padrão) são convertidos para aspas duplas:
{<Country={'*US*'}>}torna-se{<Country={"*US*"}>}. Padrões de pesquisa detectados incluem curingas (*,?,^), operadores de comparação, pesquisa avançada (~), pesquisa de expressão (=), modificadores de pesquisa (+,-), e pesquisa composta. Valores entre aspas simples em campos numéricos que não contêm sintaxe de pesquisa são sinalizados para revisão manual, mas não são corrigidos automaticamente. - Valores de string simples sem aspas (experimental, desativado por padrão) são envolvidos por aspas simples:
{<Country={USA}>}torna-se{<Country={'USA'}>}. Passe--fixUnquotedSetValuespara ativar.
As correções são aplicadas usando substituição posicional apenas dentro de listas de valores de modificadores de conjunto. Nomes de campo, nomes de função e outros textos de expressão nunca são modificados. As duas correções são controladas independentemente. Passe --noFixSingleQuotedSearch para desativar a correção de aspas simples. Descobertas de funções não suportadas não são modificadas.
A Expression_Findings planilha e o painel de resumo executivo incluem uma Source coluna que indica se cada descoberta se origina de uma definição de variável ou de uma expressão de objeto de gráfico. A Status coluna mostra se a descoberta foi corrigida automaticamente, precisa de revisão manual ou não tem correção automática disponível.
Para a lista completa de padrões detectados, consulte Análise. Para referência da sintaxe de análise de conjunto, consulte Análise de conjunto na ajuda do Qlik Cloud.
QV2QS verifica todos os campos de expressão (dimensões, medidas, condições de exibição, expressões de cor, títulos, condições de cálculo e outros), bem como definições de variáveis e o script de carregamento, em busca de funções não suportadas. Instâncias detectadas são listadas no relatório de análise.
As seguintes funções específicas do QlikView não estão disponíveis no Qlik Sense:
GetCurrentField,GetExtendedPropertyInput,InputSum,InputAvgMsgBoxImage_SizeNoOfReports,ReportComment,ReportId,ReportName,ReportNumber
Para a lista de padrões de script de carregamento detectados, consulte Análise.
Formatação de número
QV2QS converte definições de formato numérico do QlikView para tipos de formato numérico do Qlik Sense. O tipo de formato é mapeado para o equivalente do Qlik Sense, e a string de formato personalizada (Fmt), o separador decimal, o separador de milhares e a precisão decimal são todos preservados literalmente. Strings de formato personalizadas, como #,##0.00;(#,##0.00) ou '$'#,##0, são passadas como estão no campo qFmt.
Os seguintes tipos de formato QlikView são mapeados:
| QlikView tipo | Tipo de Qlik Sense |
|---|---|
| FIXO, REAL, INTEIRO | Fixo (F) |
| MONEY | Dinheiro (M) |
| DATE | Data (D) |
| TIME | Tempo (T) |
| TIMESTAMP | Carimbo de data/hora (CDH) |
| INTERVAL | Intervalo (IV) |
Classificação
QV2QS converte todos os critérios de classificação do QlikView para equivalentes do Qlik Sense. As seguintes configurações de ordenação são mapeadas um-para-um: ordenar por estado, ordenar por frequência, ordenar por valor numérico, ordenar por ordem alfabética, ordenar por ordem de carregamento, ordenar por expressão (incluindo o texto da expressão) e ordenar por nível de cinza.
Para campos de caixa de listagem, o QV2QS aplica uma heurística adicional para suprimir a classificação baseada em estado em campos semelhantes a datas. Para detalhes, consulte Referência de argumento.
Pistas visuais e coloração condicional
Sinais visuais do QlikView (cores condicionais baseadas em limite em medidas) são convertidos em expressões de cor do Qlik Sense para visualizações de tabela e tabela dinâmica. QV2QS gera expressões aninhadas If() com funções de cor RGB() ou ARGB() que replicam o comportamento original de limite baixo/normal/alto. Tanto as pistas de cor do texto quanto as de cor de fundo são convertidas. Pistas visuais em visualizações de gráfico (gráfico de barras, gráfico de linhas, gráfico de combinação e outros) não são convertidas.
Coloração baseada em expressão
QV2QS converte expressões de cor por dimensão e por medida (cor de fundo e cor do texto) para expressões de atributo do Qlik Sense. Para visualizações de tabela e tabela dinâmica, as expressões de cor de fundo e de texto são preservadas (cellBackgroundColor e cellForegroundColor). Para visualizações de gráfico, as expressões de cor de fundo da medida são convertidas para colorByExpression modo. Expressões de cor de dimensão e expressões de cor de texto de medida não são convertidas para tipos de gráfico porque os gráficos do Qlik Sense não suportam expressões de atributo de cor por dimensão ou atributos de cor de texto por medida.
Para visualizações de tabela e tabela dinâmica, se nenhuma expressão de cor explícita existir em uma medida, mas as dicas visuais forem definidas, o QV2QS gera automaticamente uma expressão de cor a partir dos limites das dicas visuais.
Linhas de tendência
Linhas de tendência do QlikView em medidas de gráfico são convertidas em linhas de tendência do Qlik Sense. Os seguintes tipos de linha de tendência são suportados:
- Média, Linear, Exponencial, Logarítmica, Potência
- Polinômio (grau 2, 3 e 4)
Linhas de referência
As linhas de referência do QlikView nos eixos do gráfico são convertidas em linhas de referência do Qlik Sense. O rótulo, expressão de valor, cor, estilo de linha e condição de exibição (expressão de visibilidade condicional) são preservados. Se uma linha de referência não tiver condição de exibição, a visibilidade padrão é sempre exibida. Gráficos combinados suportam linhas de referência em ambos os eixos primário e secundário.
Atribuição de eixo do gráfico combinado
QV2QS preserva as atribuições de eixo do gráfico de combinação do QlikView. Cada medida mantém a vinculação do eixo primário ou secundário do gráfico QlikView original. Tipos de série de medida (barra, linha, marcador) também são preservados.
Grupos de dimensão
QV2QS converte grupos cíclicos do QlikView e grupos de detalhamento em dimensões mestras do Qlik Sense. Grupos cíclicos tornam-se dimensões mestre cíclicas. Grupos de drill-down tornam-se dimensões mestre de drill-down. Gráficos que fazem referência a uma dimensão de grupo são conectados à dimensão mestre correspondente no aplicativo convertido.
Manipulação de fontes
Qlik Sense suporta um conjunto fixo de fontes seguras para a web. QV2QS mapeia as fontes do QlikView para a fonte do Qlik Sense mais próxima disponível. Fontes que não podem ser mapeadas usam a fonte de fallback (Source Sans Pro).
As seguintes fontes do QlikView têm mapeamentos explícitos:
| QlikView fonte | Qlik Sense fonte |
|---|---|
| Arial, Helvetica, Tahoma, Calibri | Source Sans Pro |
| Segoe UI | Inter |
| Verdana | Open Sans |
| Times New Roman, Times, Georgia | PT Serif |
| Courier New, Consolas | Source Sans Pro |
Fontes personalizadas não presentes na biblioteca de fontes do Qlik Sense são mapeadas para Source Sans Pro.
Fontes monoespaçadas (Courier New, Consolas) são mapeadas para a fonte proporcional Source Sans Pro. Alinhamento de caracteres monoespaçados não é preservado.
Variáveis de sistema
QV2QS exclui variáveis de sistema da lista de variáveis convertidas. Essas variáveis são gerenciadas pelo mecanismo Qlik e não precisam ser incluídas em variables.json. Exemplos incluem DateFormat, ThousandSep, DecimalSep, TimestampFormat, ErrorMode, e NullDisplay.
Variáveis do sistema que foram explicitamente definidas no script de carregamento (por exemplo, SET DateFormat='YYYY-MM-DD';) são preservadas no script de carregamento e entram em vigor durante o recarregamento. A exclusão se aplica apenas às definições de variáveis no aplicativo convertido, não a SET ou LET instruções no script de carregamento.
Variáveis definidas pelo usuário são convertidas.
Modo Treliça
Gráficos QlikView com o modo de treliça ativado (EnablePrimaryDimension) usam a primeira dimensão como um campo de facetamento para exibir uma grade de minigráficos. Qlik Sense não possui um modo de treliça nativo em gráficos padrão. O QV2QS converte gráficos de treliça automaticamente usando a extensão de contêiner de treliça do Qlik Sense (qlik-trellis-container) do Pacote de Visualização.
Durante a conversão, o QV2QS executa as seguintes etapas:
- Cria uma visualização mestre — O gráfico original é convertido sem as dimensões de treliça. Para treliça somente primária, a dimensão 0 é removida. Quando o trellis secundário também está ativado, as dimensões 0 e 1 são ambas removidas. O gráfico restante é salvo como uma visualização mestre no aplicativo.
- Cria um contêiner de treliça — Um objeto
qlik-trellis-containeré colocado na pasta na posição original do gráfico. O contêiner faz referência à visualização mestre e usa as dimensões removidas como campos de facetamento em sua definição de dados. Quando tanto o trellis primário quanto o secundário estão habilitados, a definição de dados do contêiner contém duas dimensões de facetamento. - Configura a grade — As configurações de coluna e linha do QlikView mapeiam para a contagem de colunas do contêiner de treliça e a contagem máxima de gráficos. O número máximo de gráficos é calculado como colunas multiplicadas por linhas. Quando a cardinalidade das dimensões de facetamento excede o tamanho da grade, o QV2QS aumenta a contagem máxima de gráficos para acomodar todos os valores da dimensão. Para treliça secundária, a cardinalidade total é o produto das cardinalidades da dimensão primária e secundária. O valor é arredondado para cima para o múltiplo mais próximo da contagem de colunas para que a grade preencha uniformemente. Esta expansão é registrada como um ajuste de gráfico.
O contêiner de treliça usa o mesmo mapeamento qv_id que o gráfico original, então ele ocupa a mesma posição na pasta.
Treliça apenas primária requer pelo menos duas dimensões (uma para o facetamento da treliça e uma para o gráfico mestre). O trellis primário mais secundário requer pelo menos três dimensões (duas para o facetamento do trellis e uma para o gráfico mestre). Gráficos com menos dimensões do que o necessário são ignorados.
Medir acumulação
A acumulação de medidas do QlikView (totais acumulados) é convertida em modificadores de acumulação do Qlik Sense. Os seguintes modos de acumulação são suportados:
- Acumulação total — A expressão da medida é reescrita usando
RangeSum()comAbove()eRowNo()para produzir um total acumulado em todas as linhas. O modificadorfullAccumulationsinalizador está definido comotruecom umstepsvalor de 6. - Acumulação de etapas — Quando a contagem de etapas de acumulação do QlikView for maior que 1, a expressão da medida usa
RangeSum()comAbove()e a contagem de etapas especificada. O sinalizador do modificadorfullAccumulationestá definido comofalse.
A expressão de acumulação gerada se adapta ao tipo de campo de dimensão:
- Dimensões numéricas — Definir limites de análise usa
Min()eMax()para o campo. - Dimensões do texto — Defina os limites de análise usando
MinString()eMaxString()para o campo. - Gráficos de duas dimensões — Um
Aggr()wrapper é gerado para aninhar a acumulação dentro do contexto da dimensão externa.
Quando a acumulação é aplicada, o QV2QS desativa o modo de eixo contínuo (preferContinuousAxis=false) e define nullMode como connect para garantir a renderização visual correta. A expressão e o rótulo da medida original são preservados na propriedade base do modificador.
Contêineres de abas
O QV2QS converte contêineres de guia do QlikView usando três estratégias, dependendo da configuração do contêiner e do contexto. Em todos os casos, os objetos filhos permanecem na mesma pasta do Qlik Sense que o contêiner.
- Contêiner com abas — Contêineres multi-abas autônomos que não se sobrepõem a outros objetos são convertidos em contêineres com abas nativos do Qlik Sense (
sn-tabbed-container). Cada membro da aba torna-se uma aba dentro do contêiner. A ordem de tabulação segue a ordem original dos membros do QlikView. - Pseudo-abas — Quando um contêiner com várias abas se sobrepõe a outros objetos ou está aninhado dentro de outro contêiner, o QV2QS achata as abas em um contêiner de layout. Uma faixa de botões é gerada com um
action-buttonpor aba. Cada botão define uma variável de navegação usando umaSetVariableação. Condições de exibição nos objetos filhos (por exemplo,=If('$(vCT01Tab)'='1',1,0)) controlam qual conteúdo da aba está visível. Apenas uma aba é visível por vez. A faixa de botões reproduz o comportamento de alternância de abas do contêiner QlikView original. - Contêiner de layout — Contêineres no modo de grade são convertidos em contêineres de layout (
sn-layout-container).
Contêineres de objeto único são simplificados. Nenhuma faixa de abas ou variável é criada. O objeto filho único é posicionado diretamente na posição do contêiner com a condição de exibição do contêiner aplicada.
Contêineres aninhados são suportados até uma profundidade de 8 níveis. QV2QS detecta ciclos e interrompe a recursão se um contêiner criar uma referência circular.
As condições de exibição no contêiner e em objetos filhos individuais são compostas usando o operador lógico E. Um objeto filho é visível apenas quando a condição do contêiner, a condição da variável da aba e a condição do objeto filho todas avaliam como verdadeiras.
Mostrar condições
As condições de exibição do QlikView em objetos individuais são preservadas. Qlik Sense não suporta condições de exibição diretamente em objetos de visualização. QV2QS envolve objetos que possuem condições de exibição em um contêiner de layout de filho único e aplica a condição como uma condition entrada no contêiner. Objetos já dentro de um layout contêiner (devido à sobreposição) recebem a condição na entrada do contêiner diretamente.
Quando uma condição de exibição é avaliada como falsa, o contêiner de layout permanece na posição da grade, mas não exibe conteúdo. O contêiner oculto não recolhe nem causa o rearranjo de objetos adjacentes. Nos modos de grade dinâmica e tela fixa, o objeto oculto deixa um espaço em branco na posição original. O comportamento do espaço em branco corresponde a QlikView, onde objetos ocultos também deixam espaço em branco.
Estados alternativos
QV2QS preserva atribuições de estado alternativas. Objetos vinculados a um estado alternativo no QlikView mantêm a mesma vinculação de estado no Qlik Sense. Nomes de estados são preservados exatamente. QV2QS cria os estados alternados necessários no aplicativo Qlik Cloud durante a implementação. Referências de estado alternativo dentro de expressões de análise de conjunto (por exemplo, {[State2]<Year={2024}>}) são passadas literalmente e funcionam no Qlik Sense sem modificação.
No modo Somente local (--unbuildOnly), nomes de estado alternativos são gravados em cloud/alternate_states.json na subpasta do projeto (por exemplo, <outputDir>/Sales/cloud/alternate_states.json). Os estados devem ser criados manualmente ou pela qlik app build ferramenta ao implantar a saída em um locatário do Qlik Cloud.
Ações de objeto
QV2QS converte ações em botões (BU, BT) e objetos de texto (TX). Objetos de texto que contêm ações são promovidos a botões de ação (action-button). Os tipos de ação suportados incluem navegação, SetVariable, SelectField, e outros documentados em Resultados de conversão.
Ações em outros tipos de objeto (gráficos, caixas de listagem, controles deslizantes e contêineres) não são convertidas. QlikView oferece suporte a OnActivate ações em qualquer tipo de objeto, mas o QV2QS analisa ações apenas de XML de objetos de botão e texto. Ações não-macro (SetVariable, SelectField, navegação) anexadas a gráficos, caixas de listagem ou outros objetos que não sejam botões são descartadas durante a conversão e não aparecem no relatório de conversão. Para localizar ações descartadas, pesquise os arquivos XML PRJ pelos elementos <Actions> em definições de objeto que não sejam de botão.
O scanner de lacunas detecta invocações de macro em todos os tipos de objeto para fins de relatório. Referências cruzadas de macro na planilha de Análise refletem todos os objetos, não apenas botões. Tipos de ação não-macro em objetos que não são botões não são relatados.
Condições de cálculo
As condições de cálculo são preservadas para os seguintes tipos de visualização: gráfico de barras, boxplot, gráfico de combinação, medidor, gráfico de linhas, gráfico mekko, gráfico de pizza, gráfico de dispersão, gráfico de grade, tabela dinâmica, tabela, treemap e gráfico em cascata.
A expressão da condição e a mensagem de erro personalizada (o texto exibido aos usuários quando a condição não é atendida) são ambos aplicados à definição do hipercubo. Se o objeto QlikView original não tiver uma mensagem personalizada, o Qlik Sense exibe a mensagem de condição de cálculo padrão.
Tipos de visualização não presentes na lista acima (incluindo gráfico de funil, gráfico de radar e KPI) não recebem uma condição de cálculo. Se um objeto QlikView tiver uma condição de cálculo e o tipo de visualização de destino não oferecer suporte ao recurso, tanto a condição quanto a mensagem são descartadas silenciosamente.