Ponowne użycie istniejącej aplikacji | Centrum migracji Pomoc
Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Ponowne użycie istniejącej aplikacji

Ostatnia aktualizacja: 14.10.2026

QV2QS może wskazywać istniejącą aplikację Qlik Sense zamiast tworzyć nową aplikację przy każdym wdrożeniu, co umożliwia rozwój iteracyjny i zachowanie identyfikatora aplikacji.

Domyślnie QV2QS tworzy nową aplikację przy każdym wdrożeniu. Wskaż zamiast tego istniejącą aplikację, aby zaktualizować aplikację w miejscu i zachować identyfikator aplikacji. To podejście umożliwia iteracyjny rozwój i zachowuje zakładki oraz łącza odwołujące się do określonego ID aplikacji.

Trzy argumenty przemawiają za ponownym wykorzystaniem:

  • --appId APP_ID — Określ bezpośrednio identyfikator aplikacji.
  • --appIdFile PATH — Odczytaj identyfikator aplikacji z pierwszego wiersza pliku tekstowego.
  • --reuseAppId — Odczytaj identyfikator aplikacji z cloud/cloud_state.json w podfolderze projektu. Ten plik jest zapisywany automatycznie po każdym wdrożeniu.

Plik cloud/cloud_state.json jest przechowywany w podfolderze projektu (na przykład <outputDir>/Sales/cloud/cloud_state.json). Plik rejestruje identyfikator aplikacji, hash mediów, mapowanie identyfikatora arkusza, ścieżkę pliku źródłowego oraz znacznik czasu. Flaga --reuseAppId odczytuje ten plik automatycznie, więc kolejne uruchomienia aktualizują tę samą aplikację bez konieczności ręcznego wprowadzania identyfikatora aplikacji. W trybie wsadowym --reuseAppId działa na poziomie projektu — każdy projekt odczytuje cloud_state.json z własnego podfolderu wyjściowego.

Mapowanie identyfikatora arkusza

Każdy dokument QlikView identyfikuje arkusze za pomocą nazw wewnętrznych, takich jak Document\SH01, Document\SH02 i tak dalej. Qlik Sense używa identyfikatorów UUID do identyfikacji arkuszy. Gdy QV2QS wdraża aplikację po raz pierwszy, każdy przekonwertowany arkusz otrzymuje nowy identyfikator UUID. QV2QS przechowuje mapowanie między nazwą arkusza QlikView a identyfikatorem UUID Qlik Sense w aplikacji docelowej, dzięki czemu relacja ta jest zachowywana między wdrożeniami.

Podczas kolejnych wdrożeń do tej samej aplikacji QV2QS odczytuje zapisane mapowanie i przypisuje oryginalne identyfikatory UUID Qlik Sense do odpowiednich przekonwertowanych arkuszy. Mapowanie zapobiega pojawianiu się zduplikowanych arkuszy w aplikacji i zachowuje zakładki, ulubione oraz bezpośrednie łącza odwołujące się do określonego identyfikatora arkusza.

Mapowanie jest przechowywane w dwóch lokalizacjach:

  • Wewnątrz aplikacji Qlik Cloud — Dedykowany obiekt w aplikacji przechowuje mapowanie. Mapowanie przenosi się wraz z aplikacją, jeśli aplikacja zostanie przeniesiona do innej przestrzeni lub wyeksportowana jako QVF.
  • W lokalnym folderze projektu — plik cloud/cloud_state.json zawiera kopię tego samego mapowania. Flaga --reuseAppId odczytuje identyfikator aplikacji i mapowanie z tego pliku.

QV2QS zawsze odczytuje mapowanie z aplikacji w chmurze (a nie z pliku lokalnego) podczas przygotowywania ponownego wdrożenia. Plik lokalny stanowi ułatwienie dla flagi --reuseAppId w zlokalizowaniu identyfikatora aplikacji.

Optymalizacja skrótów multimediów

QV2QS oblicza hash wszystkich plików multimedialnych (tła arkuszy, tła obiektów, obrazy przycisków) i zapisuje go wraz z mapowaniem arkuszy. Podczas kolejnych wdrożeń QV2QS porównuje bieżący hash z zapisaną wartością. Jeśli multimedia nie uległy zmianie, krok przesyłania jest całkowicie pomijany.

Walidacja mapowania

Przed przygotowaniem arkuszy do zastąpienia QV2QS weryfikuje zapisane mapowanie względem aktywnej aplikacji. Jeśli arkusz został usunięty ręcznie z aplikacji Qlik Cloud między wdrożeniami, QV2QS wykrywa, że arkusz już nie istnieje, usuwa nieaktualny wpis z mapowania i traktuje odpowiedni arkusz QlikView jako nowy podczas następnej kompilacji. Zaktualizowane mapowanie jest zapisywane z powrotem w aplikacji po zakończeniu kompilacji.

Arkusze dodane lub usunięte w źródle QlikView

Gdy arkusz zostanie dodany do źródła QlikView po początkowym wdrożeniu, QV2QS przypisuje arkuszowi nowy identyfikator UUID i dodaje wpis do mapowania. Gdy arkusz zostanie usunięty ze źródła QlikView, nie jest już obecny w danych wyjściowych kompilacji i zostaje usunięty z aplikacji Qlik Cloud podczas kompilacji. Wpis mapowania dla usuniętego arkusza nie jest przenoszony dalej.

Dopasowywanie folderu projektu

QV2QS zapisuje plik znacznika .qv2qs_source w każdym folderze wyjściowym projektu po pierwszej konwersji. Znacznik zapisuje pełną ścieżkę do źródłowego pliku QVW. Podczas kolejnych uruchomień QV2QS używa znacznika do zlokalizowania właściwego folderu projektu dla danego pliku QVW, nawet jeśli wiele folderów ma tę samą nazwę bazową (na przykład Sales/, Sales_2/, Sales_3/).

Znacznik zapewnia, że każdy plik QVW jest mapowany na dokładnie jeden folder wyjściowy. Podczas konwertowania pliku QVW, który został wcześniej przekonwertowany, narzędzie QV2QS przeszukuje katalog główny danych wyjściowych w poszukiwaniu podfolderu, którego znacznik odpowiada ścieżce źródłowej. Jeśli zostanie znalezione dopasowanie, QV2QS ponownie wykorzystuje ten folder i odczytuje cloud_state.json wewnątrz niego. Jeśli nie zostanie znalezione dopasowanie, QV2QS tworzy nowy podfolder z sufiksem numerycznym.

W kreatorze obowiązuje ta sama logika dopasowywania. Gdy opcja Użyj ponownie istniejącej aplikacji jest włączona, kreator sprawdza folder wyjściowy pod kątem pasującego projektu i automatycznie wypełnia pole AppId danymi z poprzedniego wdrożenia. Jeśli nie zostanie znalezione żadne poprzednie wdrożenie, pole pozostaje puste i umożliwia wprowadzanie ręczne lub użycie selektora przeglądania.

Informacja

Plik znacznika .qv2qs_source jest tworzony automatycznie. Nie edytuj ani nie usuwaj pliku. Usunięcie znacznika powoduje, że podczas kolejnego uruchomienia QV2QS tworzy nowy podfolder projektu, zamiast ponownie wykorzystać istniejący.

Zachowanie podczas ponownego wdrożenia

QV2QS używa qlik app build, aby wdrożyć do aplikacji docelowej. Polecenie kompilacji wykonuje pełną wymianę modelu obiektowego aplikacji. Wszystkie obiekty zdefiniowane w danych wyjściowych kompilacji są zapisywane w aplikacji. Obiekty nieobecne w danych wyjściowych kompilacji są usuwane.

Przed uruchomieniem kompilacji QV2QS przygotowuje istniejące arkusze do zastąpienia. QV2QS weryfikuje mapowanie arkuszy względem aktywnej aplikacji (patrz Mapowanie identyfikatorów arkuszy), rejestruje stan publikacji oraz rangę każdego arkusza i usuwa stare arkusze z aplikacji w chmurze. Lokalny wynik kompilacji jest modyfikowany przy użyciu oryginalnych identyfikatorów arkuszy Qlik Sense, dzięki czemu zakładki i łącza odwołujące się do tych identyfikatorów nadal działają po kompilacji.

Po zakończeniu kompilacji QV2QS przywraca pierwotny stan arkusza. Arkusze, które zostały wcześniej opublikowane, są publikowane ponownie jako arkusze podstawowe, a ich pierwotna ranga (kolejność wyświetlania) zostaje przywrócona. Nowe arkusze, które nie istniały w poprzednim wdrożeniu, są publikowane jako arkusze podstawowe, gdy włączone jest ustawienie Publikuj arkusze. Wyłącz ustawienie, aby nowe arkusze pozostały nieopublikowane.

Ostrzeżenie

Zawartość utworzona przez użytkownika w aplikacji docelowej (ręcznie dodane arkusze, zakładki, narracje lub obiekty niestandardowe utworzone po poprzednim wdrożeniu) nie jest zachowywana podczas ponownego wdrożenia. Polecenie qlik app build zastępuje zawartość aplikacji danymi wyjściowymi kompilacji. Utwórz kopię zapasową lub opublikuj aplikację przed ponownym wdrożeniem, jeśli wprowadzono ręczne modyfikacje.

Kopia zapasowa przed wdrożeniem

W przypadku ponownego użycia istniejącej aplikacji QV2QS automatycznie eksportuje kopię zapasową QVF bez danych przed modyfikacją aplikacji. Kopia zapasowa przechwytuje strukturę aplikacji (arkusze, obiekty, skrypt ładowania i metadane) bez danych, dzięki czemu można ją szybko eksportować, a plik jest mały.

Kopie zapasowe są zapisywane w cloud/backups/ wewnątrz folderu wyjściowego projektu. Każdy plik kopii zapasowej ma nazwę <AppName>_<shortId>_<timestamp>_nodata.qvf. Na przykład Sales_a1b2c3d4_20260226-143025_nodata.qvf.

Jeśli nie uda się eksportować kopii zapasowej (na przykład z powodu przerwy w działaniu sieci lub niewystarczających uprawnień), QV2QS rejestruje ostrzeżenie i kontynuuje wdrożenie. Niepowodzenie nie blokuje konwersji.

Aby pominąć automatyczną kopię zapasową, podaj --noBackup w wierszu poleceń lub włącz Pomiń kopię zapasową przed wdrożeniem w kreatorze. Pominięcie tworzenia kopii zapasowej jest przydatne w potokach CI/CD, w których kopie zapasowe są zarządzane zewnętrznie.

Zachowywanie skryptu ładowania aplikacji docelowej

Domyślnie QV2QS zastępuje skrypt ładowania w aplikacji docelowej przekonwertowanym skryptem ładowania ze źródła QlikView. Użyj --preserveTargetAppScript, aby pozostawić istniejący skrypt ładowania w aplikacji docelowej bez zmian. Przekonwertowany skrypt ładowania jest zapisywany w lokalnym pliku build/script.qvs, ale nie jest stosowany w aplikacji w chmurze.

Ta opcja wymaga --appId lub --reuseAppId, ponieważ ma zastosowanie tylko w przypadku kierowania na istniejącą aplikację. Można to połączyć z --reload, aby wykonać istniejący skrypt po zaktualizowaniu UI, co jest przydatne, gdy aplikacja docelowa ma już działające połączenia danych Qlik Cloud. Można to również połączyć z --autoBinary, aby tymczasowo załadować dane z oryginalnego pliku QVW, zachowując docelowy skrypt w nienaruszonym stanie.

Zachowanie zmiennych aplikacji docelowej

Domyślnie QV2QS zastępuje zmienne w aplikacji docelowej przekonwertowanymi zmiennymi ze źródła QlikView. Użyj --preserveTargetAppVariables, aby zachować istniejące zmienne w aplikacji docelowej bez zmian. Przekonwertowane zmienne są zapisywane w lokalnym pliku variables.json, ale nie są stosowane w aplikacji w chmurze.

Ta opcja wymaga --appId lub --reuseAppId, ponieważ ma zastosowanie tylko w przypadku kierowania na istniejącą aplikację. Można to połączyć z --preserveTargetAppScript, aby zachować w stanie nienaruszonym zarówno skrypt ładowania, jak i zmienne z aplikacji docelowej.

Dowiedz się więcej

Visit the discussion forum at community.qlik.com

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać!