Détails de conversion d'objet
Dernière mise à jour : 14/10/2026QV2QS gère une gamme de fonctionnalités spécifiques à QlikView lors de la conversion.
Expressions
QV2QS transmet les expressions QlikView à Qlik Sense avec une transformation minimale. Le langage d'expression est largement partagé entre QlikView et Qlik Sense, donc la plupart des expressions fonctionnent sans modification.
QV2QS applique les transformations suivantes :
- Préfixe égal — Qlik Sense nécessite un
=pour les expressions de mesure et certaines expressions de propriété. QV2QS ajoute le préfixe, si nécessaire, lorsque l'expression QlikView d'origine n'en inclut pas. - Suppression des commentaires — Les commentaires de ligne entière commençant par
//,#ouREMsont supprimés des expressions inline. Les expressions de propriétés Qlik Sense ne prennent pas systématiquement en charge la syntaxe des commentaires, donc la suppression empêche les erreurs d'évaluation. Les commentaires de bloc (/* */) ne sont pas supprimés. Les commentaires en ligne//dans une ligne de code ne sont pas non plus supprimés.
Les fonctionnalités d'expression suivantes sont transmises telles quelles et fonctionnent dans Qlik Sense sans modification :
- Expressions d'analyse de jeu (par exemple,
{<Year={2024}>}) - Expansion du signe dollar et références de variable (par exemple,
$(vMyVar)) - Expressions
Aggr()emboîtées If()expressions, y compris les expressions de mise en forme conditionnellePick(),Match(), etDual()modèles- Dimensions calculées
Définir la mise entre guillemets de l'analyse
QlikView (avant novembre 2017) traitait les valeurs entre guillemets simples dans les modificateurs d'ensemble comme des recherches insensibles à la casse, identiques aux valeurs entre guillemets doubles. Qlik Sense traite les valeurs entre guillemets simples comme des littéraux sensibles à la casse. Cette différence peut casser des expressions qui reposent sur des caractères génériques, des opérateurs de comparaison ou la correspondance numérique à l'intérieur de guillemets simples.
QV2QS analyse toutes les expressions d'objet et les définitions de variable pour les modèles de guillemets d'analyse d'ensemble qui se comportent différemment dans Qlik Sense. Les modèles détectés incluent les caractères génériques entre guillemets simples ('*US*'), les opérateurs de comparaison entre guillemets simples ('>=5'), les valeurs entre guillemets simples sur les champs numériques, et les valeurs de chaîne brutes non entre guillemets. Les résultats apparaissent dans la feuille de calcul Constatations_d'expression du rapport Excel.
QV2QS corrige automatiquement les valeurs de recherche entre guillemets simples lors de la conversion. Un correctif expérimental pour les valeurs de chaîne brutes non citées est également disponible mais désactivé par défaut.
- Valeurs de recherche entre guillemets simples (activé par défaut) sont converties en guillemets doubles :
{<Country={'*US*'}>}devient{<Country={"*US*"}>}. Les modèles de recherche détectés incluent les caractères génériques (*,?,^), les opérateurs de comparaison, la recherche partielle (~), la recherche d'expressions (=), les modificateurs de recherche (+,-), et la recherche composée. Les valeurs entre guillemets simples sur les champs numériques qui ne contiennent pas de syntaxe de recherche sont signalées pour examen manuel mais ne sont pas corrigées automatiquement. - Valeurs de chaîne nues non citées (expérimental, désactivé par défaut) sont entourées de guillemets simples :
{<Country={USA}>}devient{<Country={'USA'}>}. Transmettez--fixUnquotedSetValuespour activer.
Les correctifs sont appliqués par remplacement positionnel uniquement au sein des listes de valeurs de modificateurs définis. Les noms de champs, les noms de fonctions et autre texte d'expression ne sont jamais modifiés. Les deux correctifs sont contrôlés indépendamment. Passez --noFixSingleQuotedSearch pour désactiver la correction des guillemets simples. Les résultats de fonctions non prises en charge ne sont pas modifiés.
La feuille de calcul Expression_Findings et le tableau de bord du résumé exécutif incluent une colonne Source qui indique si chaque constatation provient d'une définition de variable ou d'une expression d'objet graphique. Une colonne Statut indique si le constat a été corrigé automatiquement, nécessite une révision manuelle ou si aucune correction automatique n'est disponible.
Pour la liste complète des modèles détectés, voir Analyse. Pour la référence de la syntaxe d'analyse d'ensemble, consultez Analyse d'ensemble dans l'aide de Qlik Cloud.
QV2QS analyse tous les champs d'expression (dimensions, mesures, conditions d'affichage, expressions de couleur, titres, conditions de calcul et autres), ainsi que les définitions de variable et le script de chargement, à la recherche de fonctions non prises en charge. Les occurrences détectées sont répertoriées dans le rapport d'analyse.
Les fonctions spécifiques à QlikView suivantes ne sont pas disponibles dans Qlik Sense :
GetCurrentField,GetExtendedPropertyInput,InputSum,InputAvgMsgBoxImage_SizeNoOfReports,ReportComment,ReportId,ReportName,ReportNumber
Pour la liste des modèles de scripts de chargement détectés, consultez Analyse.
Formatage des nombres
QV2QS convertit les définitions de format numérique de QlikView en types de format numérique de Qlik Sense. Le type de format est mappé à l'équivalent Qlik Sense, et la chaîne de format personnalisée (Fmt), le séparateur décimal, le séparateur de milliers et la précision décimale sont tous préservés tels quels. Les chaînes de format personnalisées telles que #,##0.00;(#,##0.00) ou '$'#,##0 sont transmises telles quelles dans le champ qFmt.
Les types de format QlikView suivants sont mappés :
| Type QlikView | Qlik Sense type |
|---|---|
| FIXE, RÉEL, ENTIER | Fixe (F) |
| MONEY | Argent (M) |
| DATE | Date (D) |
| TIME | Temps (T) |
| TIMESTAMP | Horodatage (HDG) |
| INTERVAL | Intervalle (IV) |
Tri
QV2QS convertit tous les critères de tri QlikView en équivalents Qlik Sense. Les paramètres de tri suivants sont mappés un-à-un : tri par état, tri par fréquence, tri par valeur numérique, tri par ordre alphabétique, tri par ordre de chargement, tri par expression (y compris le texte de l'expression), et tri par niveau de gris.
Pour les champs de zone de liste, QV2QS applique une heuristique supplémentaire pour supprimer le tri basé sur l'état sur les champs de type date. Pour plus de détails, consultez Référence des arguments.
Indices visuels et coloration conditionnelle
Les repères visuels QlikView (couleurs conditionnelles basées sur des seuils pour les mesures) sont convertis en expressions de couleur Qlik Sense pour les visualisations de tableau et de tableau croisé dynamique. QV2QS génère des expressions imbriquées If() avec des fonctions de couleur RGB() ou ARGB() qui reproduisent le comportement de seuil bas/normal/élevé d'origine. Les indices de couleur du texte et de couleur de fond sont tous deux convertis. Repères visuels sur les visualisations de graphique (histogramme, graphique en courbes, combiné, et autres) ne sont pas convertis.
Coloration basée sur une expression
QV2QS convertit les expressions de couleur par dimension et par mesure (couleur d'arrière-plan et couleur du texte) en expressions d'attribut Qlik Sense. Pour les visualisations de tableau et de tableau croisé dynamique, les expressions de couleur de fond et de texte sont toutes deux conservées (cellBackgroundColor et cellForegroundColor). Pour les visualisations de graphique, les expressions de couleur d'arrière-plan des mesures sont converties en colorByExpression mode. Les expressions de couleur de dimension et les expressions de couleur de texte de mesure ne sont pas converties pour les types de graphique, car les graphiques Qlik Sense ne prennent pas en charge les expressions d'attribut de couleur par dimension ou les attributs de couleur de texte par mesure.
Pour les visualisations de tableau et de tableau croisé dynamique, si aucune expression de couleur explicite n'existe sur une mesure mais que des indices visuels sont définis, QV2QS génère automatiquement une expression de couleur à partir des seuils d'indices visuels.
Lignes de tendance
Les lignes de tendance QlikView sur les mesures du graphique sont converties en lignes de tendance Qlik Sense. Les types de courbe de tendance suivants sont supportés :
- Moyenne, Linéaire, Exponentielle, Logarithmique, Puissance
- Polynôme (degré 2, 3 et 4)
Lignes de référence
Les lignes de référence QlikView sur les axes du graphique sont converties en lignes de référence Qlik Sense. L'étiquette, l'expression de valeur, la couleur, le style de ligne et la condition d'affichage (expression de visibilité conditionnelle) sont conservés. Si une ligne de référence n'a pas de condition d'affichage, la visibilité par défaut est toujours affichée. Les graphiques combinés prennent en charge les lignes de référence sur les axes primaire et secondaire.
Affectation des axes du graphique combiné
QV2QS préserve les affectations d'axe du combiné QlikView. Chaque mesure conserve la liaison à l'axe primaire ou secondaire du graphique QlikView d'origine. Les types de séries de mesures (barre, ligne, marqueur) sont également préservés.
Groupes de dimensions
QV2QS convertit les groupes cycliques et les groupes d'exploration QlikView en dimensions maîtresses Qlik Sense. Les groupes cycliques deviennent des dimensions maîtresses cycliques. Les groupes d'exploration deviennent des dimensions maîtresses d'exploration. Les graphiques qui référencent une dimension de groupe sont liés à la dimension maître correspondante dans l'application convertie.
Gestion des polices
Qlik Sense prend en charge un ensemble fixe de polices web sécurisées. QV2QS mappe les polices QlikView à la police Qlik Sense la plus proche disponible. Les polices qui ne peuvent pas être mappées utilisent la police de secours (Source Sans Pro).
Les polices QlikView suivantes ont des mappages explicites :
| Police QlikView | Police de caractères Qlik Sense |
|---|---|
| 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 |
Les polices personnalisées qui ne se trouvent pas dans la bibliothèque de polices de Qlik Sense sont mappées à Source Sans Pro.
Les polices à chasse fixe (Courier New, Consolas) sont mappées à la police proportionnelle Source Sans Pro. L'alignement des caractères monospace n'est pas préservé.
Variables système
QV2QS exclut les variables système de la liste des variables converties. Ces variables sont gérées par le moteur Qlik et n'ont pas besoin d'être incluses dans variables.json. Parmi les exemples, citons DateFormat, ThousandSep, DecimalSep, TimestampFormat, ErrorMode, et NullDisplay.
Les variables système qui ont été explicitement définies dans le script de chargement (par exemple, SET DateFormat='YYYY-MM-DD';) sont conservées dans le script de chargement et prennent effet lors du rechargement. L'exclusion s'applique uniquement aux définitions de variable dans l'application convertie, et non aux SET ou LET instructions dans le script de chargement.
Les variables définies par l'utilisateur sont converties.
Mode Treillis
Les graphiques QlikView avec le mode treillis activé (EnablePrimaryDimension) utilisent la première dimension comme champ de facettisation pour afficher une grille de mini-graphiques. Qlik Sense n'a pas de mode treillis natif sur les graphiques standard. QV2QS convertit automatiquement les graphiques en treillis en utilisant l'extension de conteneur en treillis Qlik Sense (qlik-trellis-container) du Bundle de visualisation.
Lors de la conversion, QV2QS effectue les étapes suivantes :
- Crée une visualisation principale — Le graphique original est converti sans les dimensions de treillis. Pour un treillis uniquement primaire, la dimension 0 est supprimée. Lorsque le treillis secondaire est également activé, les dimensions 0 et 1 sont toutes deux supprimées. Le graphique restant est enregistré en tant que visualisation principale dans l'application.
- Crée un conteneur en treillis — Un objet
qlik-trellis-containerest placé sur la feuille à la position d'origine du graphique. Le conteneur référence la visualisation principale et utilise les dimensions supprimées comme champs de facettisation dans sa définition de données. Lorsque les deux treillis primaire et secondaire sont activés, la définition de données du conteneur contient deux dimensions de facettisation. - Configure la grille — Les paramètres de colonne et de ligne de QlikView correspondent au nombre de colonnes et au nombre maximal de graphiques du conteneur en treillis. Le nombre maximal de graphiques est calculé en multipliant les colonnes par les lignes. Lorsque la cardinalité des dimensions de facettisation dépasse la taille de la grille, QV2QS augmente le nombre maximal de graphiques pour accueillir toutes les valeurs de dimension. Pour le treillis secondaire, la cardinalité totale est le produit des cardinalités des dimensions primaire et secondaire. La valeur est arrondie au multiple supérieur le plus proche du nombre de colonnes afin que la grille se remplisse uniformément. Cette expansion est enregistrée comme un ajustement de graphique.
Le conteneur en treillis utilise le même mappage qv_id que le graphique d'origine, il occupe donc la même position sur la feuille.
Un treillis uniquement primaire nécessite au moins deux dimensions (une pour le facettage du treillis et une pour le graphique maître). Le treillis primaire et secondaire nécessite au moins trois dimensions (deux pour le facettage du treillis et une pour le graphique maître). Les graphiques avec moins de dimensions que nécessaire sont ignorés.
Mesurer l'accumulation
L'accumulation de mesures QlikView (totaux cumulés) est convertie en modificateurs d'accumulation Qlik Sense. Les modes d'accumulation suivants sont pris en charge :
- Accumulation complète — L'expression de mesure est réécrite en utilisant
RangeSum()avecAbove()etRowNo()pour produire un total cumulé sur toutes les lignes. Le modificateurfullAccumulationindicateur est défini surtrueavec unestepsvaleur de 6. - Accumulation par pas — Lorsque le nombre de pas d'accumulation QlikView est supérieur à 1, l'expression de mesure utilise
RangeSum()avecAbove()et le nombre de pas spécifié. L'indicateur du modificateurfullAccumulationest défini surfalse.
L'expression d'accumulation générée s'adapte au type de champ de dimension :
- Dimensions numériques — Les limites d'analyse utilisent
Min()etMax()pour le champ. - Dimensions du texte — Définir les limites d'analyse à l'aide de
MinString()etMaxString()pour le champ. - Graphiques à deux dimensions — Un
Aggr()encapsuleur est généré pour imbriquer l'accumulation dans le contexte de la dimension externe.
Lorsque l'accumulation est appliquée, QV2QS désactive le mode d'axe continu (preferContinuousAxis=false) et définit nullMode à connect pour assurer un rendu visuel correct. L'expression de mesure et l'étiquette d'origine sont conservées dans la propriété du modificateur base.
Conteneurs d'onglets
QV2QS convertit les conteneurs à onglets QlikView en utilisant trois stratégies, selon la configuration et le contexte du conteneur. Dans tous les cas, les objets enfants restent sur la même feuille Qlik Sense que le conteneur.
- Conteneur à onglets — Les conteneurs multi-onglets autonomes qui ne chevauchent pas d'autres objets sont convertis en conteneurs à onglets natifs de Qlik Sense (
sn-tabbed-container). Chaque élément d'onglet devient un onglet dans le conteneur. L'ordre de tabulation suit l'ordre des membres QlikView d'origine. - Pseudo-onglets — Lorsqu'un conteneur à plusieurs onglets chevauche d'autres objets ou est imbriqué dans un autre conteneur, QV2QS aplatit les onglets dans un conteneur de disposition. Une bande de boutons est générée avec un
action-buttonpar onglet. Chaque bouton définit une variable de navigation à l'aide d'uneSetVariableaction. Afficher les conditions sur les objets enfants (par exemple,=If('$(vCT01Tab)'='1',1,0)) contrôlent quel contenu d'onglet est visible. Un seul onglet est visible à la fois. La bande de boutons reproduit le comportement de commutation d'onglets du conteneur QlikView d'origine. - Conteneur de disposition — Les conteneurs en mode grille sont convertis en conteneurs de disposition (
sn-layout-container).
Les conteneurs à objet unique sont simplifiés. Aucun onglet ni variable n'est créé. L'objet enfant unique est placé directement à la position du conteneur avec la condition d'affichage du conteneur appliquée.
Les conteneurs imbriqués sont pris en charge jusqu'à une profondeur de 8 niveaux. QV2QS détecte les cycles et arrête la récursion si un conteneur crée une référence circulaire.
Les conditions d'affichage sur le conteneur et sur les objets enfants individuels sont composées en utilisant un ET logique. Un objet enfant est visible uniquement lorsque la condition du conteneur, la condition de la variable d'onglet et la condition de l'objet enfant évaluent toutes à vrai.
Afficher les conditions
Les conditions d'affichage de QlikView sur les objets individuels sont conservées. Qlik Sense ne prend pas en charge les conditions d'affichage directement sur les objets de visualisation. QV2QS encapsule les objets qui ont des conditions d'affichage dans un conteneur de disposition à enfant unique et applique la condition comme une condition entrée sur le conteneur. Les objets déjà à l'intérieur d'un conteneur de disposition (en raison du chevauchement) reçoivent la condition sur l'entrée du conteneur directement.
Lorsqu'une condition d'affichage est évaluée à faux, le conteneur de disposition reste à la position de la grille mais n'affiche aucun contenu. Le conteneur masqué ne se réduit pas et ne provoque pas la réorganisation des objets adjacents. Dans les modes de grille dynamique et de canevas fixe, l'objet masqué laisse un espace vide à sa position d'origine. Le comportement de l'espace vide correspond à QlikView, où les objets masqués laissent également un espace vide.
États alternatifs
QV2QS préserve les affectations d'état alternatives. Les objets liés à un état alternatif dans QlikView conservent la même liaison d'état dans Qlik Sense. Les noms des États sont conservés exactement. QV2QS crée les états alternatifs requis dans l'application Qlik Cloud pendant le déploiement. Les références d'état alternatif dans les expressions d'analyse d'ensemble (par exemple, {[State2]<Year={2024}>}) sont transmises telles quelles et fonctionnent dans Qlik Sense sans modification.
En mode local uniquement (--unbuildOnly), les noms d'état alternatifs sont écrits dans cloud/alternate_states.json dans le sous-dossier du projet (par exemple, <outputDir>/Sales/cloud/alternate_states.json). Les états doivent être créés manuellement ou par l'qlik app build outil lors du déploiement de la sortie vers un client Qlik Cloud.
Actions d'objet
QV2QS convertit les actions sur les boutons (BU, BT) et les objets texte (TX). Les objets textuels qui contiennent des actions sont promus en boutons d'action (action-button). Les types d'action pris en charge incluent la navigation, SetVariable, SelectField, et d'autres documentés dans Résultats de conversion.
Les actions sur d'autres types d'objets (graphiques, zones de liste, curseurs et conteneurs) ne sont pas converties. QlikView prend en charge OnActivate actions sur tout type d'objet, mais QV2QS analyse les actions uniquement à partir du XML des objets bouton et texte. Les actions non-macro (SetVariable, SelectField, navigation) attachées aux graphiques, aux zones de liste ou à d'autres objets non-bouton sont supprimées lors de la conversion et n'apparaissent pas dans le rapport de conversion. Pour trouver les actions abandonnées, recherchez les fichiers XML PRJ pour <Actions> éléments dans les définitions d'objets non-boutons.
Le scanner d'écarts détecte les invocations de macros sur tous les types d'objets à des fins de rapport. Les références croisées de macros dans la feuille d'analyse reflètent tous les objets, pas seulement les boutons. Les types d'actions non-macro sur les objets non-bouton ne sont pas signalés.
Conditions de calcul
Les conditions de calcul sont conservées pour les types de visualisation suivants : graphique à barres, diagramme en boîte, combiné, jauge, graphique en courbes, graphique Mekko, graphique en secteurs, nuage de points, bulles, tableau croisé dynamique, tableau, treemap et graphique en cascade.
L'expression de la condition et le message d'erreur personnalisé (le texte affiché aux utilisateurs lorsque la condition n'est pas remplie) sont tous deux appliqués à la définition de l'hypercube. Si l'objet QlikView d'origine n'a pas de message personnalisé, Qlik Sense affiche le message de condition de calcul par défaut.
Les types de visualisation ne figurant pas dans la liste ci-dessus (y compris le graphique en entonnoir, le graphique en radar et l'indicateur clé de performance, ICP) ne reçoivent pas de condition de calcul. Si un objet QlikView a une condition de calcul et que le type de visualisation cible ne prend pas en charge la fonctionnalité, la condition et le message sont tous deux supprimés silencieusement.