Objektkonverteringsdetaljer | MigrationscenterHjälp
Gå till huvudinnehåll Gå till ytterligare innehåll

Objektkonverteringsdetaljer

Senast uppdaterad: 2026-10-14

QV2QS hanterar en rad QlikView-specifika funktioner under konverteringen.

Uttryck

QV2QS skickar QlikView-uttryck vidare till Qlik Sense med minimal omvandling. Uttrycksspråket är till stor del gemensamt för QlikView och Qlik Sense, så de flesta uttryck fungerar utan ändring.

QV2QS tillämpar följande transformationer:

  • Lika med-prefix — Qlik Sense kräver ett inledande = i måttuttryck och vissa egenskaputtryck. QV2QS lägger till prefixet där det behövs om det ursprungliga QlikView-uttrycket inte innehåller ett.
  • Kommentarsborttagning — Hela rader med kommentarer som börjar med //, # eller REM tas bort från inline-uttryck. Qlik Sense egenskapsuttryck stöder inte konsekvent kommentarsyntax, så att borttagning förhindrar utvärderingsfel. Blockkommentarer (/* */) tas inte bort. Infogade // kommentarer inom en kodrad tas inte heller bort.

Följande uttrycksfunktioner överförs ordagrant och fungerar i Qlik Sense utan ändring:

  • Mängdanalysuttryck (till exempel, {<Year={2024}>})
  • Dollarteckenexpansion och variabelreferenser (till exempel, $(vMyVar))
  • Kapslade Aggr() uttryck
  • If() uttryck, inklusive uttryck för villkorsstyrd formatering
  • Pick(), Match() och Dual() mönster
  • Beräknade dimensioner

Set-analyscitering

QlikView (före november 2017) behandlade enkelt citerade värden i uppsättningsmodifierare som skiftlägesokänsliga sökningar, identiska med dubbelt citerade värden. Qlik Sense behandlar enkelt citerade värden som skiftlägeskänsliga literaler. Denna skillnad kan bryta uttryck som förlitar sig på jokertecken, jämförelseoperatorer eller numerisk matchning inom enkla citattecken.

QV2QS söker igenom alla objekteuttryck och variabeldefinitioner efter mönster för citering i mängdanalys som beter sig annorlunda i Qlik Sense. Identifierade mönster inkluderar enkelt citerade jokertecken ('*US*'), enkelt citerade jämförelseoperatorer ('>=5'), enkelt citerade värden på numeriska fält, och ociterade rena strängvärden. Resultaten visas i Expression_Findings arbetsblad i Excel-rapporten.

QV2QS åtgärdar automatiskt enkelt citerade sökvärden under konverteringen. En experimentell fix för oomslutna strängvärden utan citattecken är också tillgänglig men inaktiverad som standard.

  • Söktermer inom enkla citattecken (aktiverat som standard) konverteras till dubbla citattecken: {<Country={'*US*'}>} blir {<Country={"*US*"}>}. Identifierade sökmönster inkluderar jokertecken (*, ?, ^), jämförelseoperatorer, sökning med jokertecken (~), uttryckssökning (=), sökmodifierare (+, -) och sammansatt sökning. Enkelciterade värden på numeriska fält som inte innehåller söksyntax flaggas för manuell granskning men åtgärdas inte automatiskt.
  • Ocitaterade rena strängvärden (experimentell, inaktiverad som standard) omsluts av enkla citattecken: {<Country={USA}>} blir {<Country={'USA'}>}. Ange --fixUnquotedSetValues för att aktivera.

Fixar tillämpas med positionsbaserad ersättning endast inom listor med angivna modifieringsvärden. Fältnamn, funktionsnamn och annan uttryckstext ändras aldrig. De två korrigeringarna styrs oberoende. Ange --noFixSingleQuotedSearch för att inaktivera fixen för enkelcitat. Resultat för funktioner som inte stöds ändras inte.

Arbetsbladet Expression_Findings och instrumentpanelen för sammanfattningen innehåller en Source-kolumn som anger om varje fynd härrör från en variabeldefinition eller ett diagramobjektuttryck. En Status-kolumn visar om fyndet åtgärdades automatiskt, behöver manuell granskning, eller om ingen automatisk åtgärd är tillgänglig.

För en fullständig lista över identifierade mönster, se Analys. För referens om syntax för mängdanalys, se Mängdanalys i Qlik Cloud-hjälpen.

Anteckning om information

QV2QS skannar alla uttrycksfält (dimensioner, mått, visningsvillkor, färguttryck, titlar, beräkningsvillkor och andra) samt variabeldefinitioner och laddningsskriptet efter funktioner som inte stöds. Identifierade instanser listas i analysrapporten.

Följande QlikView-specifika funktioner är inte tillgängliga i Qlik Sense:

  • GetCurrentField, GetExtendedProperty
  • Input, InputSum, InputAvg
  • MsgBox
  • Image_Size
  • NoOfReports, ReportComment, ReportId, ReportName, ReportNumber

För listan över identifierade laddningsskriptmönster, se Analys.

Nummerformatering

QV2QS konverterar QlikView-nummerformatdefinitioner till Qlik Sense-nummerformattyper. Formattypen mappas till motsvarande i Qlik Sense, och den anpassade formatsträngen (Fmt), decimalavgränsaren, tusenavgränsaren och decimalprecisionen bevaras alla oförändrade. Anpassade formatsträngar som #,##0.00;(#,##0.00) eller '$'#,##0 skickas igenom som de är i qFmt fältet.

Följande QlikView formattyper mappas:

QlikView typ Qlik Sense typ
FIX, REAL, HELTAL Fast (F)
MONEY Pengar (M)
DATE Datum (D)
TIME Tid (T)
TIMESTAMP Tidsmarkör (TM)
INTERVAL Intervalldata (IV)

Sortering

QV2QS konverterar alla QlikView sorteringskriterier till Qlik Sense motsvarigheter. Följande sorteringsinställningar mappas en-till-en: sortera efter tillstånd, sortera efter frekvens, sortera efter numeriskt värde, sortera efter alfabetisk ordning, sortera efter inläsningsordning, sortera efter uttryck (inklusive uttryckstexten), och sortera efter gråskala.

För listrutefält tillämpar QV2QS en ytterligare heuristik för att undertrycka tillståndsbaserad sortering på datumliknande fält. För mer information, se Argumentreferens.

Visuella ledtrådar och villkorlig färgning

QlikView visuella ledtrådar (tröskelbaserade villkorliga färger på mått) konverteras till Qlik Sense färguttryck för tabell- och pivottabellvisualiseringar. QV2QS genererar kapslade If() uttryck med RGB() eller ARGB() färgfunktioner som replikerar det ursprungliga låg/normal/hög tröskelbeteendet. Både textfärgssignaler och bakgrundsfärgssignaler konverteras. Visuella ledtrådar på diagramvisualiseringar (stapeldiagram, linjediagram, kombinationsdiagram och andra) konverteras inte.

Uttrycksbaserad färgning

QV2QS konverterar färguttryck per dimension och per mått (bakgrundsfärg och textfärg) till Qlik Sense-attribututtryck. För tabell- och pivottabellvisualiseringar bevaras både bakgrunds- och textfärgsuttryck (cellBackgroundColor och cellForegroundColor). För diagramvisualiseringar konverteras uttryck för bakgrundsfärg för mått till colorByExpression läge. Dimensionsfärguttryck och måtttextfärguttryck konverteras inte för diagramtyper eftersom Qlik Sense-diagram inte stöder färgattribututtryck per dimension eller textfärgattribut per mått.

För tabell- och pivottabellvisualiseringar, om inget explicit färguttryck finns på ett mått men visuella ledtrådar är definierade, genererar QV2QS automatiskt ett färguttryck från tröskelvärdena för visuella ledtrådar.

Trendlinjer

QlikView trendlinjer på diagrammått konverteras till Qlik Sense trendlinjer. Följande trendlinjetyper stöds:

  • Genomsnitt, Linjär, Exponentiell, Logaritmisk, Potens
  • Polynom (grad 2, 3 och 4)

Referenslinjer

QlikView referenslinjer på diagramaxlar konverteras till Qlik Sense referenslinjer. Etiketten, värdeuttrycket, färgen, linjestilen och visningsvillkoret (villkorligt synlighetsuttryck) bevaras. Om en referenslinje inte har något visningsvillkor, är standardvisningen alltid att den visas. Kombinationsdiagram stöder referenslinjer på både primära och sekundära axlarna.

Kombinerat diagram axeltilldelning

QV2QS bevarar QlikView-kombinationsdiagrammets axeltilldelningar. Varje mått behåller den primära eller sekundära axelbindningen från det ursprungliga QlikView-diagrammet. Mätserietyper (stapel, linje, markör) bevaras också.

Dimensionsgrupper

QV2QS konverterar QlikView cykliska grupper och drill-down-grupper till Qlik Sense huvuddimensioner. Cyklogrupper blir cykliska masterdimensioner. Detaljeringsgrupper blir detaljeringshuvuddimensioner. Diagram som refererar till en grupp-dimension är kopplade till motsvarande huvud-dimension i den konverterade appen.

Teckensnittshantering

Qlik Sense stöder en fast uppsättning webbsäkra typsnitt. QV2QS mappar QlikView-teckensnitt till det närmaste tillgängliga Qlik Sense-teckensnittet. Teckensnitt som inte kan mappas använder reservteckensnittet (Source Sans Pro).

Följande QlikView-teckensnitt har explicita mappningar:

QlikView teckensnitt Qlik Sense teckensnitt
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

Anpassade teckensnitt som inte finns i Qlik Sense-teckensnittsbiblioteket mappas till Source Sans Pro.

Anteckning om information

Monospace-typsnitt (Courier New, Consolas) mappas till det proportionella typsnittet Source Sans Pro. Monospace-teckenjustering bevaras inte.

Systemvariabler

QV2QS utesluter systemvariabler från listan över konverterade variabler. Dessa variabler hanteras av Qlik-motorn och behöver inte inkluderas i variables.json. Exempel inkluderar DateFormat, ThousandSep, DecimalSep, TimestampFormat, ErrorMode, och NullDisplay.

Systemvariabler som har ställts in explicit i laddningsskriptet (till exempel, SET DateFormat='YYYY-MM-DD';) bevaras i laddningsskriptet och träder i kraft vid omladdning. Undantaget gäller endast variabeldefinitionerna i den konverterade appen, inte till SET eller LET satser i laddningsskriptet.

Användardefinierade variabler konverteras.

Trellisläge

QlikView-diagram med trellis-läge aktiverat (EnablePrimaryDimension) använder den första dimensionen som ett fasetteringsfält för att visa ett rutnät med minidiagram. Qlik Sense har inte ett inbyggt trellisläge på standarddiagram. QV2QS konverterar trellisdiagram automatiskt med hjälp av Qlik Sense-behållarkomplementet för trellis (qlik-trellis-container) från Visualization Bundle.

Under konverteringen utför QV2QS följande steg:

  1. Skapar en originalvisualisering — Det ursprungliga diagrammet konverteras utan rutnätsdimensionerna. För endast primär spaljé, dimension 0 tas bort. När sekundär trellis också är aktiverad, tas både dimension 0 och 1 bort. Det återstående diagrammet sparas som en originalvisualisering i appen.
  2. Skapar en trellisbehållare — Ett qlik-trellis-container objekt placeras på arket vid den ursprungliga diagrampositionen. Behållaren refererar till originalvisualiseringen och använder de borttagna dimensionerna som fasetteringsfält i sin datadefinition. När både primär och sekundär trellis är aktiverade, innehåller behållarens datadefinition två fasetteringsdimensioner.
  3. Konfigurerar rutnätet — QlikView-kolumn- och radinställningarna mappa till trellisbehållarens kolumnantal och maximala diagramantal. Det maximala antalet diagram beräknas som kolumner multiplicerat med rader. När kardinaliteten för fasetteringsdimensionerna överskrider rutnätets storlek, ökar QV2QS det maximala antalet diagram för att rymma alla dimensionsvärden. För sekundär trellis är den totala kardinaliteten produkten av kardinaliteterna för den primära och sekundära dimensionen. Värdet avrundas uppåt till närmaste multipel av kolumnantalet så att rutnätet fylls jämnt. Denna expansion registreras som en diagramjustering.

Trellis-behållaren använder samma qv_id-mappning som det ursprungliga diagrammet, så den upptar samma position på arket.

Endast primär trellis kräver minst två dimensioner (en för trellis-facettering och en för huvuddiagrammet). Primär plus sekundär trellis kräver minst tre dimensioner (två för trellis-facettering och en för huvud-diagram). Diagram med färre dimensioner än vad som krävs hoppas över.

Mät ackumulering

QlikView måttackumulering (löpande summor) konverteras till Qlik Sense ackumuleringsmodifierare. Följande ackumuleringslägen stöds:

  • Fullständig ackumulering — Måttuttrycket skrivs om med RangeSum() med Above() och RowNo() för att producera en löpande summa över alla rader. Modifieraren fullAccumulation flagga är inställd på true med ett steps värde på 6.
  • Stegackumulering — När antalet ackumuleringssteg i QlikView är större än 1, använder måttuttrycket RangeSum() med Above() och det angivna stegantalet. Modifieraren fullAccumulation flagga är inställd på false.

Det genererade ackumuleringsuttrycket anpassar sig till dimensionens fälttyp:

  • Numeriska dimensioner — Ange analysgränser med Min() och Max() för fältet.
  • Textdimensioner — Ange analysgränser med MinString() och MaxString() för fältet.
  • Tvådimensionella diagram — En Aggr() omslutning genereras för att kapsla ackumuleringen inom den yttre dimensionens kontext.

När ackumulering tillämpas, inaktiverar QV2QS kontinuerligt axelläge (preferContinuousAxis=false) och ställer in nullMode till connect för att säkerställa korrekt visuell återgivning. Det ursprungliga måttuttrycket och etiketten bevaras i modifierarens base egenskap.

Flikbehållare

QV2QS konverterar QlikView flikbehållare med tre strategier beroende på behållarens konfiguration och kontext. I alla fall, underordnade objekt förblir på samma Qlik Sense-ark som behållaren.

  • Flikad behållare — Fristående flikbaserade behållare som inte överlappar andra objekt konverteras till inbyggda Qlik Sense flikbaserade behållare (sn-tabbed-container). Varje flikmedlem blir en flik i behållaren. Tabbordningen följer den ursprungliga QlikView-medlemsordningen.
  • Pseudoflikar — När en behållare med flera flikar överlappar andra objekt eller är kapslad i en annan behållare, plattar QV2QS ut flikarna till en layoutbehållare. En knapprad genereras med en action-button per flik. Varje knapp ställer in en navigeringsvariabel med en SetVariable åtgärd. Visa villkor för underordnade objekt (till exempel, =If('$(vCT01Tab)'='1',1,0)) styr vilket flikinnehåll som är synligt. Endast en flik är synlig åt gången. Knapplisten återskapar flikväxlingsbeteendet för den ursprungliga QlikView-behållaren.
  • Layout-behållare — Behållare i rutnätsläge konverteras till layout-behållare (sn-layout-container).

Enkelobjektbehållare är förenklade. Ingen fliklist eller variabel skapas. Det enskilda underordnade objektet placeras direkt vid behållarens position med behållarens visningsvillkor tillämpat.

Kapslade behållare stöds upp till ett djup av 8 nivåer. QV2QS upptäcker cykler och stoppar rekursion om en behållare skapar en cirkelreferens.

Visningsvillkor på behållaren och på enskilda underordnade objekt sätts samman med logiskt OCH. Ett underordnat objekt är synligt endast när behållarens villkor, flikens variabelvillkor och det underordnade objektets villkor alla utvärderas till sant.

Visa villkor

QlikView visningsvillkor på enskilda objekt bevaras. Qlik Sense stöder inte visningsvillkor direkt på visualiseringsobjekt. QV2QS omsluter objekt som har visningsvillkor i en layout-behållare med ett enda underordnat objekt och tillämpar villkoret som en condition post på behållaren. Objekt som redan finns i en layoutbehållare (på grund av överlappning) får villkoret för behållarposten direkt.

När ett visningsvillkor utvärderas till falskt, förblir layout-behållaren på rutnätspositionen men visar inget innehåll. Den dolda behållaren kollapsar inte eller får intilliggande objekt att flöda om. I både dynamiska rutnät- och fasta duk-lägen, lämnar det dolda objektet tomt utrymme på den ursprungliga positionen. Beteendet för tomma utrymmen matchar QlikView, där dolda objekt också lämnar tomma utrymmen.

Alternativa tillstånd

QV2QS bevarar alternativa tillståndstilldelningar. Objekt bundna till ett alternativt tillstånd i QlikView behåller samma tillståndsbinding i Qlik Sense. Delstatsnamn bevaras exakt. QV2QS skapar de nödvändiga parallella tillstånd i Qlik Cloud-appen under distributionen. Referenser till alternativa tillstånd inom uppsättningsanalysuttryck (till exempel, {[State2]<Year={2024}>}) skickas igenom ordagrant och fungerar i Qlik Sense utan ändring.

I läget Endast lokalt (--unbuildOnly), alternativa tillståndsnamn skrivs till cloud/alternate_states.json i projektets undermapp (till exempel, <outputDir>/Sales/cloud/alternate_states.json). Tillstånden måste skapas manuellt eller med qlik app build verktyget när utdata distribueras till en Qlik Cloud-klientorganisation.

Objektåtgärder

QV2QS konverterar åtgärder på knappar (BU, BT) och textobjekt (TX). Textobjekt som innehåller åtgärder upphöjs till åtgärdsknappar (action-button). Typer av åtgärder som stöds inkluderar navigering, SetVariable, SelectField, och andra dokumenterade i Konverteringsresultat.

Åtgärder på andra objekttyper (diagram, listrutor, skjutreglage och behållare) konverteras inte. QlikView stöder OnActivate åtgärder på alla objekttyper, men QV2QS tolkar åtgärder endast från XML för knapp- och textobjekt. Icke-makroåtgärder (SetVariable, SelectField, navigering) som är kopplade till diagram, listrutor eller andra objekt som inte är knappar tas bort under konverteringen och visas inte i konverteringsrapporten. För att hitta borttagna åtgärder, sök i PRJ XML-filerna efter <Actions> element i objektdefinitioner som inte är knappar.

Anteckning om information

Gap-skannern upptäcker makroanrop över alla objekttyper för rapporteringsändamål. Makrokorsreferenser i analysarbetsbladet återspeglar alla objekt, inte bara knappar. Åtgärdstyper som inte är makron på objekt som inte är knappar rapporteras inte.

Beräkningsvillkor

Beräkningsvillkor bevaras för följande visualiseringstyper: stapeldiagram, boxplot, kombinationsdiagram, mätare, linjediagram, mosaikdiagram, cirkeldiagram, punktdiagram, rutnätsdiagram, pivottabell, tabell, trädmapp och vattenfallsdiagram.

Villkorsuttrycket och det anpassade felmeddelandet (texten som visas för användare när villkoret inte uppfylls) tillämpas båda på hyperkubsdefinitionen. Om det ursprungliga QlikView-objektet inte har något anpassat meddelande, visar Qlik Sense standardmeddelandet för beräkningsvillkor.

Visualiseringstyper som inte finns med i listan ovan (inklusive trattdiagram, radardiagram och KPI) får ingen beräkningsvillkor. Om ett QlikView-objekt har ett beräkningsvillkor och målvisualiseringstypen inte stöder funktionen, ignoreras både villkoret och meddelandet tyst.

Läs mer

Visit the discussion forum at community.qlik.com

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!