Reutilizar una aplicación existente
Última actualización: 14/10/2026QV2QS puede apuntar a una aplicación de Qlik Sense existente en lugar de crear una nueva aplicación en cada despliegue, lo que permite el desarrollo iterativo y conserva el ID de la aplicación.
De forma predeterminada, QV2QS crea una nueva aplicación en cada despliegue. En su lugar, elija como destino una aplicación existente para actualizar la aplicación in situ y conservar el id. de la aplicación. Este enfoque permite el desarrollo iterativo y mantiene los marcadores y enlaces que hacen referencia a un ID de aplicación específico.
Tres argumentos respaldan la reutilización:
--appId APP_ID— Especifique el ID de la aplicación directamente.--appIdFile PATH— Lee el ID de la aplicación de la primera línea de un archivo de texto.--reuseAppId— Lee el ID de la aplicación desdecloud/cloud_state.jsonen la subcarpeta del proyecto. Este archivo se escribe automáticamente después de cada despliegue.
El archivo cloud/cloud_state.json se almacena en la subcarpeta del proyecto (por ejemplo, <outputDir>/Sales/cloud/cloud_state.json). El archivo registra el ID de la aplicación, el hash multimedia, la asignación de ID de hoja, la ruta del archivo de origen y una marca de tiempo. La opción --reuseAppId lee este archivo automáticamente, por lo que las ejecuciones posteriores actualizan la misma aplicación sin necesidad de introducir manualmente el ID de la aplicación. En el modo por lotes, --reuseAppId funciona por proyecto — cada proyecto lee el cloud_state.json de su propia subcarpeta de salida.
Asignación de ID de hoja
Cada documento de QlikView identifica las hojas mediante nombres internos como Document\SH01, Document\SH02 y así sucesivamente. Qlik Sense utiliza UUID para identificar hojas. Cuando QV2QS despliega una aplicación por primera vez, cada hoja convertida recibe un nuevo UUID. QV2QS almacena el mapeo entre el nombre de la hoja de QlikView y el UUID de Qlik Sense dentro de la aplicación de destino para que la relación se conserve entre despliegues.
En despliegues posteriores en la misma aplicación, QV2QS lee el mapeo almacenado y asigna los UUID originales de Qlik Sense a las hojas convertidas correspondientes. La asignación evita que aparezcan hojas duplicadas en la aplicación y conserva los marcadores, los favoritos y los enlaces directos que hacen referencia a un ID de hoja específico.
El mapeo se almacena en dos ubicaciones:
- Dentro de la aplicación de Qlik Cloud — Un objeto dedicado dentro de la aplicación contiene la asignación. El mapeo se traslada con la app si la app se mueve a un espacio diferente o se exporta como QVF.
- En la carpeta local del proyecto — El archivo
cloud/cloud_state.jsoncontiene una copia de la misma asignación. La opción--reuseAppIdlee el ID de la aplicación y la asignación de este archivo.
QV2QS siempre lee la asignación de la aplicación en la nube (no del archivo local) al preparar un redespliegue. El archivo local es una opción práctica para que el indicador --reuseAppId localice el ID de la aplicación.
Optimización del hash multimedia
QV2QS calcula un hash de todos los archivos multimedia (fondos de hojas, fondos de objetos, imágenes de botones) y almacena el hash junto con el mapeo de hojas. En despliegues posteriores, QV2QS compara el hash actual con el valor almacenado. Si el contenido multimedia no ha cambiado, el paso de subida se omite por completo.
Validación de correspondencia
Antes de preparar las hojas para su sustitución, QV2QS valida la asignación almacenada frente a la aplicación activa. Si se ha eliminado manualmente una hoja de la aplicación de Qlik Cloud entre despliegues, QV2QS detecta que la hoja ya no existe, elimina la entrada obsoleta del mapeo y trata la hoja de QlikView correspondiente como nueva en la siguiente compilación. El mapeo actualizado se vuelve a escribir en la aplicación una vez completada la compilación.
Hojas añadidas o eliminadas en el origen de QlikView
Cuando se añade una hoja al origen de QlikView después del despliegue inicial, QV2QS asigna un nuevo UUID a la hoja y añade la entrada al mapeo. Cuando se elimina una hoja del origen de QlikView, la hoja ya no está presente en el resultado de la compilación y se elimina de la aplicación de Qlik Cloud durante la compilación. La entrada de asignación de la hoja eliminada no se traslada.
Coincidencia de carpetas de proyectos
QV2QS escribe un archivo marcador .qv2qs_source en cada carpeta de salida del proyecto tras la primera conversión. El marcador registra la ruta completa del archivo QVW de origen. En ejecuciones posteriores, QV2QS utiliza el marcador para localizar la carpeta de proyecto correcta para un archivo QVW determinado, incluso cuando varias carpetas comparten el mismo nombre base (por ejemplo, Sales/, Sales_2/, Sales_3/).
El marcador garantiza que cada archivo QVW se asigne exactamente a una carpeta de salida. Al convertir un archivo QVW que ya se había convertido previamente, QV2QS busca en la raíz de salida una subcarpeta cuyo marcador coincida con la ruta de origen. Si se encuentra una coincidencia, QV2QS reutiliza esa carpeta y lee el cloud_state.json que contiene. Si no se encuentra ninguna coincidencia, QV2QS crea una nueva subcarpeta con un sufijo numérico.
En el asistente, se aplica la misma lógica de coincidencia. Cuando Reutilizar aplicación existente está habilitado, el asistente comprueba la carpeta de salida en busca de un proyecto coincidente y rellena automáticamente el campo AppId a partir de la implementación anterior. Si no se encuentra ningún despliegue anterior, el campo permanece vacío y admite la entrada manual o el selector para examinar.
El archivo marcador .qv2qs_source se crea automáticamente. No edite ni elimine el archivo. Eliminar el marcador hace que QV2QS cree una nueva subcarpeta de proyecto en la siguiente ejecución en lugar de reutilizar la existente.
Comportamiento del redespliegue
QV2QS utiliza qlik app build para desplegar en la aplicación de destino. El comando de compilación realiza un reemplazo completo del modelo de objetos de la aplicación. Todos los objetos definidos en la salida de compilación se escriben en la aplicación. Los objetos que no están presentes en la salida de la compilación se eliminan.
Antes de ejecutar la compilación, QV2QS prepara las hojas existentes para su sustitución. QV2QS valida la asignación de hojas con respecto a la aplicación activa (consulte Asignación de ID de hoja), registra el estado de publicación y el rango de cada hoja, y elimina las hojas antiguas de la aplicación en la nube. La salida de la compilación local se parchea con los ID de hoja originales de Qlik Sense para que los marcadores y enlaces que hacen referencia a esos ID sigan funcionando después de la compilación.
Una vez finalizada la compilación, QV2QS restaura el estado original de la hoja. Las hojas que se publicaron anteriormente se vuelven a publicar como hojas base y se restaura el rango original (orden de visualización). Las hojas nuevas que no existían en el despliegue anterior se publican como hojas base cuando la opción Publicar hojas está activada. Desactive la opción para dejar las hojas nuevas sin publicar.
El contenido creado por el usuario en la aplicación de destino (hojas añadidas manualmente, marcadores, historias u objetos personalizados creados tras el despliegue anterior) no se conserva durante el redespliegue. El comando qlik app build reemplaza el contenido de la aplicación por el resultado de la compilación. Haga una copia de seguridad de la aplicación o publíquela antes de volver a implementarla si se han realizado ajustes manuales.
Copia de seguridad previa al despliegue
Al reutilizar una aplicación existente, QV2QS exporta automáticamente una copia de seguridad QVF sin datos antes de modificar la aplicación. La copia de seguridad captura la estructura de la aplicación (hojas, objetos, script de carga y metadatos) sin datos, por lo que la exportación es rápida y el archivo es pequeño.
Las copias de seguridad se guardan en cloud/backups/ dentro de la carpeta de salida del proyecto. Cada archivo de copia de seguridad se denomina <AppName>_<shortId>_<timestamp>_nodata.qvf. Por ejemplo, Sales_a1b2c3d4_20260226-143025_nodata.qvf.
Si falla la exportación de la copia de seguridad (por ejemplo, debido a una interrupción de la red o a permisos insuficientes), QV2QS registra una advertencia y continúa con el despliegue. El fallo no bloquea la conversión.
Para omitir la copia de seguridad automática, especifique --noBackup en la línea de comandos o active Omitir la copia de seguridad previa al despliegue en el asistente. Omitir la copia de seguridad es útil en pipelines de CI/CD donde las copias de seguridad se gestionan externamente.
Conservar el script de carga de la aplicación de destino
De forma predeterminada, QV2QS reemplaza el script de carga de la aplicación de destino por el script de carga convertido del origen de QlikView. Utilice --preserveTargetAppScript para mantener sin cambios el script de carga existente en la aplicación de destino. El script de carga convertido se escribe en el archivo local build/script.qvs, pero no se aplica a la aplicación en la nube.
Esta opción requiere --appId o --reuseAppId porque solo se aplica cuando se tiene como destino una aplicación existente. Se puede combinar con --reload para ejecutar el script existente tras actualizar la interfaz de usuario, lo cual resulta útil cuando la aplicación de destino ya cuenta con conexiones de datos de Qlik Cloud operativas. También se puede combinar con --autoBinary para cargar temporalmente datos del archivo QVW original mientras se mantiene intacto el script de destino.
Conservar las variables de la aplicación de destino
De forma predeterminada, QV2QS sustituye las variables de la aplicación de destino por las variables convertidas del origen de QlikView. Use --preserveTargetAppVariables para mantener sin cambios las variables existentes en la aplicación de destino. Las variables convertidas se escriben en el archivo local variables.json, pero no se aplican a la aplicación en la nube.
Esta opción requiere --appId o --reuseAppId porque solo se aplica cuando se tiene como destino una aplicación existente. Se puede combinar con --preserveTargetAppScript para mantener intactos tanto el script de carga como las variables de la aplicación de destino.