Återanvända en befintlig app
Senast uppdaterad: 2026-10-14QV2QS kan riktas mot en befintlig Qlik Sense-app i stället för att skapa en ny app vid varje distribution, vilket möjliggör iterativ utveckling och bevarar app-ID:t.
Som standard skapar QV2QS en ny app vid varje distribution. Ange en befintlig app som mål i stället för att uppdatera appen på plats och behålla app-ID:t. Detta tillvägagångssätt möjliggör iterativ utveckling och bibehåller bokmärken och länkar som refererar till ett specifikt app-ID.
Tre argument talar för återanvändning:
--appId APP_ID— Ange app-ID:t direkt.--appIdFile PATH— Läs app-ID:t från den första raden i en textfil.--reuseAppId— Läs app-ID:t fråncloud/cloud_state.jsoni projektundermappen. Den här filen skrivs automatiskt efter varje distribution.
cloud/cloud_state.json-filen lagras i projektets undermapp (till exempel <outputDir>/Sales/cloud/cloud_state.json). Filen registrerar app-ID, mediehash, ark-ID-mappning, källfilens sökväg och en tidsmarkör. Flaggan --reuseAppId läser den här filen automatiskt, så efterföljande körningar uppdaterar samma app utan att kräva manuell inmatning av app-ID. I batchläge fungerar --reuseAppId per projekt — varje projekt läser cloud_state.json från sin egen undermapp för utdata.
Mappning av blad-ID
Varje QlikView-dokument identifierar ark med interna namn såsom Document\SH01, Document\SH02 och så vidare. Qlik Sense använder UUID:er för att identifiera ark. När QV2QS driftsätter en app för första gången får varje konverterat ark ett nytt UUID. QV2QS lagrar mappningen mellan QlikView-arkets namn och Qlik Sense-UUID:t i målappen så att relationen bevaras mellan driftsättningar.
Vid efterföljande driftsättningar till samma app läser QV2QS den lagrade mappningen och tilldelar de ursprungliga Qlik Sense-UUID:erna till motsvarande konverterade ark. Mappningen förhindrar att kopierade ark visas i appen och bevarar bokmärken, favoriter och direktlänkar som refererar till ett specifikt ark-ID.
Mappningen lagras på två platser:
- Inuti Qlik Cloud-appen — Ett dedikerat objekt i appen innehåller mappningen. Mappningen följer med appen om appen flyttas till ett annat utrymme eller exporteras som en QVF.
- I den lokala projektmappen — Filen
cloud/cloud_state.jsoninnehåller en kopia av samma mappning. Flaggan--reuseAppIdläser app-ID:t och mappningen från denna fil.
QV2QS läser alltid mappningen från molnappen (inte den lokala filen) när en omdistribuering förbereds. Den lokala filen är ett smidigt sätt för flaggan --reuseAppId att hitta app-ID:t.
Mediahashoptimering
QV2QS beräknar en hash för alla mediefiler (arkbakgrunder, objektbakgrunder, knappbilder) och lagrar hashen tillsammans med arkmappningen. Vid efterföljande driftsättningar jämför QV2QS den aktuella hashen med det lagrade värdet. Om mediet inte har ändrats hoppas uppladdningssteget över helt.
Mappningsvalidering
Innan ark förbereds för ersättning validerar QV2QS den lagrade mappningen mot live-appen. Om ett ark togs bort manuellt från Qlik Cloud-appen mellan driftsättningar, upptäcker QV2QS att arket inte längre finns, tar bort den inaktuella posten från mappningen och behandlar motsvarande QlikView-ark som nytt vid nästa bygge. Den uppdaterade mappningen skrivs tillbaka till appen efter att bygget har slutförts.
Ark som lagts till eller tagits bort i QlikView-källan
När ett ark läggs till i QlikView-källan efter den inledande distributionen tilldelar QV2QS ett nytt UUID till arket och lägger till posten i mappningen. När ett ark tas bort från QlikView-källan finns arket inte längre i byggutdata och tas bort från Qlik Cloud-appen under bygget. Mappningsposten för det borttagna arket förs inte vidare.
Projektmappsmatchning
QV2QS skriver en .qv2qs_source-markeringsfil till varje projektutdatamapp efter den första konverteringen. Markören registrerar den fullständiga sökvägen till QVW-källfilen. Vid efterföljande körningar använder QV2QS markören för att hitta rätt projektmapp för en given QVW-fil, även om flera mappar delar samma basnamn (till exempel Sales/, Sales_2/, Sales_3/).
Markören säkerställer att varje QVW-fil mappas till exakt en utdatamapp. Vid konvertering av en QVW-fil som tidigare har konverterats söker QV2QS i utdataroten efter en undermapp vars markör matchar källsökvägen. Om en matchning hittas återanvänder QV2QS den mappen och läser cloud_state.json inuti den. Om ingen matchning hittas skapar QV2QS en ny undermapp med ett numeriskt suffix.
I guiden gäller samma matchningslogik. När Återanvänd befintlig app är aktiverat kontrollerar guiden utdatamappen efter ett matchande projekt och fyller i fältet AppId automatiskt från den tidigare distributionen. Om ingen tidigare distribution hittas förblir fältet tomt och accepterar manuell inmatning eller bläddringsväljaren.
Markeringsfilen .qv2qs_source skapas automatiskt. Redigera eller ta inte bort filen. Att ta bort markören gör att QV2QS skapar en ny projektundermapp vid nästa körning i stället för att återanvända den befintliga.
Beteende vid omdistribuering
QV2QS använder qlik app build för att distribuera till målappen. Build-kommandot utför en fullständig ersättning av appens objektmodell. Alla objekt som definieras i byggutdata skrivs till appen. Objekt som inte finns i byggutdatan tas bort.
Innan bygget körs förbereder QV2QS befintliga ark för ersättning. QV2QS validerar arkmappningen mot live-appen (se Mappning av ark-ID), registrerar publiceringsstatus och rangordning för varje ark och tar bort de gamla arken från molnappen. Den lokala byggutdatan patchas med de ursprungliga ID:na för Qlik Sense-ark så att bokmärken och länkar som refererar till dessa ID:n fortsätter att fungera efter bygget.
Efter att bygget har slutförts återställer QV2QS arkets ursprungliga tillstånd. Arbetsblad som tidigare publicerats återpubliceras som basarbetsblad, och den ursprungliga rangordningen (visningsordningen) återställs. Nya ark som inte fanns i den föregående distributionen publiceras som basark när inställningen Publicera ark är aktiverad. Inaktivera inställningen för att lämna nya ark opublicerade.
Användarskapat innehåll i målappen (manuellt tillagda ark, bokmärken, berättelser eller anpassade objekt som skapats efter den föregående distributionen) bevaras inte vid omdistribution. Kommandot qlik app build ersätter appens innehåll med byggutdatan. Säkerhetskopiera eller publicera appen före omdistribuering om manuella justeringar har gjorts.
Säkerhetskopia före distribuering
När en befintlig app återanvänds exporterar QV2QS automatiskt en QVF-säkerhetskopia utan data innan appen modifieras. Säkerhetskopian fångar appens struktur (ark, objekt, laddningsskript och metadata) utan data, så det går snabbt att exportera och filen är liten.
Säkerhetskopior sparas i cloud/backups/ inuti projektets utdatamapp. Varje säkerhetskopiefil heter <AppName>_<shortId>_<timestamp>_nodata.qvf. Till exempel Sales_a1b2c3d4_20260226-143025_nodata.qvf.
Om försöket att exportera säkerhetskopian misslyckas (till exempel på grund av ett nätverksavbrott eller otillräckliga behörigheter), loggar QV2QS en varning och fortsätter med distributionen. Felet blockerar inte konverteringen.
För att hoppa över den automatiska säkerhetskopieringen anger du --noBackup på kommandoraden eller aktiverar Hoppa över säkerhetskopiering före distribution i guiden. Att hoppa över säkerhetskopieringen är användbart i CI/CD-pipelines där säkerhetskopior hanteras externt.
Bevara målappens laddningsskript
Som standard ersätter QV2QS laddningsskriptet i målappen med det konverterade laddningsskriptet från QlikView-källan. Använd --preserveTargetAppScript för att behålla det befintliga laddningsskriptet i målappen oförändrat. Det konverterade laddningsskriptet skrivs till den lokala build/script.qvs-filen men tillämpas inte på molnappen.
Det här alternativet kräver --appId eller --reuseAppId eftersom det endast gäller när målet är en befintlig app. Det kan kombineras med --reload för att köra det befintliga skriptet efter att användargränssnittet har uppdaterats, vilket är användbart när målappen redan har fungerande Qlik Cloud-dataanslutningar. Det kan också kombineras med --autoBinary för att tillfälligt läsa in data från den ursprungliga QVW-filen samtidigt som målskriptet hålls intakt.
Bevara målappens variabler
Som standard ersätter QV2QS variablerna i målappen med de konverterade variablerna från QlikView-källan. Använd --preserveTargetAppVariables för att behålla de befintliga variablerna i målappen oförändrade. De konverterade variablerna skrivs till den lokala variables.json-filen, men tillämpas inte på molnappen.
Det här alternativet kräver --appId eller --reuseAppId eftersom det endast gäller när målet är en befintlig app. Det kan kombineras med --preserveTargetAppScript för att behålla både laddningsskriptet och variablerna från målappen intakta.