# Include

Include/Must\_Include 变量可指定一个脚本，其中包含应包含在脚本中并作为脚本代码计算的文本。 它不用于添加数据。您可以将部分脚本代码存储在单独的文本文件中，并可以在多个应用程序中重复使用它。 这是用户定义的变量。

语法：

$(Include=filename)

$(Include=script ID)

$(Must\_Include=filename)

$(Must\_Include=script ID)

变量有两个版本：

* Include 在找不到脚本的情况下不会生成错误，而会静默失败。
* Must\_Include 在找不到脚本的情况下会生成错误。

如果不指定路径，文件名将相对于 Qlik Sense 应用程序工作目录。也可以指定绝对文件路径，或者 lib:// 文件夹连接的路径。请勿在等于号前后输入空格字符。如果使用其他脚本，您可以通过在 script:// 后加上脚本 ID 来指定脚本。

信息注释结构 set Include =filename 不适用。

示例：

$(Include=abc.txt);

$(Include=script://a01b2c34-5de6-789f-g0hi-1j2k3l45m6n7);

$(Must\_Include=lib://DataFiles/abc.txt);

## 插入脚本的权限

多种脚本格式可以插入到您的脚本中。建议使用 QVF 和 QVS 格式，它们提供图形用户界面以自动生成 Include 语句语法。

根据您要插入的脚本格式，您需要为正在插入的脚本设置不同的权限级别。这些权限可能需要用于使用图形界面进行脚本插入、重新加载脚本或两者兼有。

插入脚本的空间权限

| 插入脚本的格式 | 包含插入脚本的空间中所需的角色 |
| --- | --- |
| QVF（独立脚本资产） | <ul><li><p>共享空间：<span>可以编辑</span>、<span>可以编辑应用程序中的数据</span>、<span>可管理</span>或<span>所有者</span></p></li><li><p>托管空间：<span>可以操作</span>、<span>可以管理</span>或<span>所有者</span></p></li></ul> |
| QVS 或其他文本格式 | <ul><li><p>共享空间：<span>可以使用数据</span>、<span>可以编辑</span>、<span>可以编辑应用程序中的数据</span>、<span>可管理</span>或<span>所有者</span></p></li><li><p>托管空间：<span>可以使用数据</span>、<span>可以操作</span>、<span>可管理</span>或<span>所有者</span></p></li></ul> |

## 限制

### Windows 和 Linux 下 UTF-8 编码文件之间的交叉兼容性有限。

可以选择将 UTF-8 与 BOM（字节顺序标记）一起使用。BOM 可能会干扰 UTF-8 在软件中的使用，该软件不希望在文件的开头使用非 ASCII 字节，但可以处理文本流。

* Windows 系统使用 UTF-8 中的 BOM 来标识文件是 UTF-8 编码的，尽管字节存储中没有歧义。

* Unix/Linux 对 Unicode 使用 UTF-8，但不使用 BOM，因为这会干扰命令文件的语法。

这对 Qlik Sense 有一些意义。

* 在 Windows 中，任何以 UTF-8 BOM 开头的文件都被视为 UTF-8 脚本文件。否则会假设 ANSI 编码。

* 在 Linux 中，系统默认的 8 位代码页是 UTF-8。这就是为什么 UTF-8 可以工作的原因，尽管它不包含 BOM。

因此，无法保证便携性。在 Windows 上创建一个可以被 Linux 解释的文件并非总是可能，反之亦然。由于对 BOM 的不同处理，两个系统之间对于 UTF-8 编码文件没有交叉兼容性。

有关详细信息，请参阅[字节顺序标记](https://en.wikipedia.org/wiki/Byte_order_mark)。

## 从 Qlik Cloud Analytics 中的空间插入 QVS 代码

在 Qlik Cloud Analytics 中，当加载脚本中从数据文件加载数据时，可以使用 LOAD 语句或插入 QVS 代码。在这两种情况下，都可以在脚本语句中引用分层空间文件夹结构。遵循[有效空间文件夹路径](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Spaces/manage-data-files-spaces.htm#PathRules)的规则。此外，文件和所有引用的文件夹需要已存在于指定位置。否则，重新加载失败。

示例： 在空间的顶级路径引用 QVS 文件

在此示例中，文件 test.qvs 在加载脚本中被引用。文件位于空间 TeamSharedSpace 中。该文件不位于任何特定文件夹中，而是位于空间中的顶级路径。

```
$(Must_Include=lib://TeamSharedSpace:DataFiles/test.qvs)
```

示例： 引用空间内特定文件夹路径中的 QVS 文件

在此示例中，文件 test.qvs 在加载脚本中被引用。文件位于空间 TeamSharedSpace 内的文件夹 SalesData 中。

```
$(Must_Include=lib://TeamSharedSpace:DataFiles/SalesData/test.qvs)
```

有关在加载脚本中引用空间文件夹结构的详细信息，请参阅[在应用程序和脚本开发中引用空间文件夹结构](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Spaces/manage-data-files-spaces.htm#FolderStructureRefExamples)。