# 常见工作流

以下示例涵盖了最常见的用例。每个都基于相同的核心模式：指定一个 QVW 文件、一个输出文件夹以及一个 Qlik Cloud 上下文。在所有示例中，`--outputDir` 是输出根。QV2QS 会自动创建一个以 QVW 文件命名的子文件夹（例如，`./output/Sales/`）。所有这些工作流也可以通过基于网络的向导来执行。有关引导式方法，请参阅[向导步骤](https://help.qlik.com/zh-CN/migration/Content/Qv2qsMigration/user-interface/wizard-steps.htm)。

## 部署到 Qlik Cloud 并包含数据

标准迁移工作流。QV2QS 生成 PRJ 文件夹，转换 UI，上传 QVW 以进行二进制数据加载，在 Qlik Cloud 中重新加载应用程序，并生成 Excel 报告。上传的 QVW 已删除，重新加载后原始的加载脚本已恢复。

```
QV2QS.exe --generatePrj --qvw Sales.qvw --outputDir ./output --qsAppName "Sales" --qlikContext my-tenant --autoBinary --reload --reportXlsx
```

## 导出 QVF 文件

QV2QS 使用 Qlik Cloud 引擎构建应用程序，将结果导出为 QVF 文件，然后删除该云应用程序。导出的 QVF 可以导入到另一个 Qlik Cloud 租户。

警告注释

将 QV2QS 生成的 QVF 文件导入 Qlik Sense Enterprise Client-Managed 未在所有版本中进行测试，也未获得官方支持，因此不建议这样做。有关详细信息，请参阅 [Qlik Sense Enterprise Client-Managed 兼容性](https://help.qlik.com/zh-CN/migration/Content/Qv2qsMigration/known-limitations/qsecm-compatibility.htm)。

```
QV2QS.exe --generatePrj --qvw Sales.qvw --outputDir ./output --qlikContext my-tenant --exportQvf --reload --autoBinary --reportXlsx
```

## 批量迁移整个 QlikView 环境

扫描一个或多个文件夹以查找所有 QVW 和 PRJ 对，并行转换这些对，并将每个部署到 Qlik Cloud。使用 `--batchWorkers` 来控制并发。

```
QV2QS.exe --batchDir C:\QVApps --outputDir C:\Output --generatePrj --qlikContext my-tenant --autoBinary --reload --batchWorkers 4 --reportXlsx
```

## 保留 QlikView 像素布局

启用固定画布模式以保留精确的 QlikView 对象位置和工作表壁纸。调整缩放因子以控制布局如何映射到 Qlik Sense 屏幕尺寸。

```
QV2QS.exe --generatePrj --qvw Sales.qvw --outputDir ./output --qlikContext my-tenant --autoBinary --reload --fixedSheetCanvas --fixedSheetCanvasScale 1.5 --fixedSheetCanvasObjectScale 1.5
```

## 更新之前已转换的应用程序

针对现有 Qlik Cloud 应用程序重新运行转换，而不创建新的。QV2QS 重用上次运行的应用程序 ID。

```
QV2QS.exe --generatePrj --qvw Sales.qvw --outputDir ./output --qlikContext my-tenant --reuseAppId --autoBinary --reload --reportXlsx
```

## 更新一个应用程序，同时保留其加载脚本

重新运行转换，以更新现有应用程序的 UI 层，而不覆盖加载脚本。目标应用程序保留其现有数据连接和重新加载逻辑。更新前会自动导出一个无数据备份。添加 `--reload` 以执行现有脚本并刷新数据。

```
QV2QS.exe --generatePrj --qvw Sales.qvw --outputDir ./output --qlikContext my-tenant --reuseAppId --preserveTargetAppScript --reportXlsx
```

## 更新应用程序并保留其变量

重新运行转换以更新现有应用程序的 UI 层和加载脚本，而不覆盖变量。与 `--preserveTargetAppScript` 结合使用，以保持加载脚本和目标应用程序中的变量完整无缺。

```
QV2QS.exe --generatePrj --qvw Sales.qvw --outputDir ./output --qlikContext my-tenant --reuseAppId --preserveTargetAppVariables --reportXlsx
```

## 设置 Qlik Cloud 身份验证

在运行任何转换之前，配置 qlik-cli 上下文。交互式设置会提示输入租户 URL 和 API 密钥，并存储凭据以供后续运行使用。

```
QV2QS.exe --setupQlikAuth
```

## 程序化使用 (CI/CD)

QV2QS 支持直接身份验证，无需预先创建 qlik-cli 上下文。内联传递租户 URL 和 API 密钥。QV2QS 验证凭据，并为每个 qlik-cli 调用注入身份验证标头。未创建或修改任何上下文文件。包含 `--accept-eula` 以在没有交互式提示的情况下接受许可协议。

```
QV2QS.exe --accept-eula --generatePrj --qvw Sales.qvw --outputDir ./output --qlikTenantUrl https://my-tenant.us.qlikcloud.com --qlikApiKey eyJhbG... --qsAppName "Sales" --autoBinary --reload --plain
```

此模式可安全地跨多个租户和用户并发执行。API 密钥不会写入磁盘，也不会出现在日志文件中。

凭据也可以设置为环境变量：

```
set QV2QS_QLIK_TENANT_URL=https://my-tenant.us.qlikcloud.com
set QV2QS_QLIK_API_KEY=eyJhbG...
QV2QS.exe --generatePrj --qvw Sales.qvw --outputDir ./output --qsAppName "Sales" --autoBinary --reload --plain
```

## 不使用 Qlik Cloud 的本地构建

在磁盘上生成转换后的输出和转换报告，无需连接到 Qlik Cloud。仅本地模式旨在用于迁移评估、部署前审查和离线环境。本地构建输出不包括媒体上传、背景图像分辨率、备用状态创建或工作表发布。对于完整的部署，请使用构建到 Qlik Cloud 或导出 QVF 模式。有关仅限本地的限制和用例的详细信息，请参阅[转换的工作原理](https://help.qlik.com/zh-CN/migration/Content/Qv2qsMigration/getting-started/how-conversion-works.htm#local-only-mode)。

```
QV2QS.exe --generatePrj --qvw Sales.qvw --outputDir ./output --unbuildOnly
```

## 了解更多

* [参数引用](https://help.qlik.com/zh-CN/migration/Content/Qv2qsMigration/command-line-interface/argument-reference.htm)
* [用户界面](https://help.qlik.com/zh-CN/migration/Content/Qv2qsMigration/user-interface/index.htm)