# 为您的报表创建分发列表

在创建报表任务之前，您必须为作为报表基础的Qlik Sense应用程序定义分发列表。分发列表包含所有可以作为应用程序报表任务接收者的接收者和接收者组。

[Defining report recipients and groups - Qlik Cloud Analytics](https://play.vidyard.com/vrBdZdamAKKp8VtSvhEQ7w)

使用分发列表配置报表发送到的个人。配置报表任务时，您可以从分发列表中选择将接收该特定报表任务输出的接收者和组。

分发列表提供以下详细信息：

* 从应用程序生成的报表的所有接收者，包括他们的姓名、电子邮件地址、适用于他们的筛选器以及他们所属的组。

* 可以接收从应用程序生成的报表的所有组（一个或多个接收者的集合）。

如果您上传源文件作为分发列表，它将显示在应用程序的报告部分的接收者和组选项卡中。

接收者和组选项卡

接收者和组选项卡

接收者接收者和组组选项卡 ![应用程序报告部分中的“接收者”和“组”选项卡](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_CloudExcelReportRecGroups_rev.png)

一个应用程序只能添加一个源文件。如果需要对源文件进行更改，请编辑最初上传的文件（或数据源）并重新上传。如果您改为使用数据连接来定义分发列表，请根据需要对脚本进行编辑。请注意，执行此操作时，必须根据需要对报表任务配置和筛选器进行等效更改。

## 谁可以接收报告？

结合 Qlik Cloud 分析 使用应用内报告，您可以向内部和外部收件人发送电子邮件报告。

### 输出和区域权限

下表介绍了每种类型的收件人以及他们希望在报表中看到的内容。此表概述了具有和不具有区域权限的应用程序的行为。有关应用内报告和区域权限的更多信息，请参阅[应用内报告和区域权限](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Generate/cloud-in-app-reports-section-access.htm)。

应用程序报表任务的电子邮件输出的可能收件人

| 收件人类型 | 描述 | 行为 |
| --- | --- | --- |
| 内部 | Qlik Cloud 租户中的用户，由匹配的电子邮件地址标识（匹配不区分大小写）。<br><br>要了解如何将用户添加到 Qlik Cloud 租户，请参阅：<br><br><ul> <li> <p> 基于容量的订阅： <a href="https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/SaaS-invite-users-capacity-model.htm">将用户添加至 Qlik Cloud</a></p> </li> <li> <p> 基于用户的订阅： <a href="https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/SaaS-invite-users.htm">将用户添加至 Qlik Cloud</a></p> </li> <li> <p><span>Qlik Anonymous Access</span> 订阅： <a href="https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/SaaS-invite-users-anonymous.htm">将用户添加至 Qlik Anonymous Access 租户</a></p> </li> </ul> | 除非应用程序使用区域权限，否则此收件人报告中包含的数据将基于报告任务所有者对应用程序的访问权限。 |
| 外部 | 未在 Qlik Cloud 租户中的用户。 | 报表中包含的数据始终基于报表任务所有者的访问权限，无论应用程序是否使用区域权限。 |

### Microsoft SharePoint 报告分发

如果您改为通过分发文件夹 (Microsoft SharePoint) 分发报告，则任何有权访问相应连接中指定位置的人都可以访问这些报告。内部收件人的标识与电子邮件输出的标识相同。

如果应用程序使用区域权限，则无法通过 Microsoft SharePoint 分发文件夹传递报表。

通过分发文件夹发送报表时，您仍必须为应用程序定义分发列表以生成报表输出。分发列表仍有助于确定在报表任务运行时生成多少个版本的报表输出（通常，每个单独的接收者筛选器对应一个文件）。有关将报表存储到分发文件夹的更多信息，请参阅[将报告传递到分发文件夹](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Generate/cloud-in-app-reports-output-folder.htm)。

## 分发列表、接收者筛选器和任务输出

分发列表控制单独应用于每个接收者的报表筛选器。将分发列表添加到应用程序时，将为您应用于他们的每个筛选器创建一个单独的接收者。配置报表任务时，您将每个接收者添加为对应于单个筛选器的用户-筛选器配对。

例如，如果您将筛选器 A 和 B 应用于名为 User1 的接收者，则会将两个接收者添加到应用程序中 – 具有筛选器 A 的 User1 和具有筛选器 B 的 User1。

有关如何配置报表任务以生成所需输出的更多信息，请参阅：

* [使用报表任务](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Generate/cloud-in-app-reports-tasks.htm)

* [使用报表筛选器](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Generate/cloud-in-app-reports-filters.htm)

* [将报告传递到分发文件夹](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Generate/cloud-in-app-reports-output-folder.htm)

## 关于计划重新加载任务所有权的注意事项

分发列表通过自动或手动修改应用程序的加载脚本来工作。创建或修改应用程序的分发列表，无论是通过在报告部分上传源文件，还是通过手动编辑加载脚本，都可以使您成为针对应用程序计划重新加载创建的所有任务的新所有者。

有关更多信息，请参阅[任务的所有权](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/reloading-apps-cloud-hub.htm#Ownershi)。

## 添加分发列表

使用以下两种方法之一添加分发列表：

* 上传源文件

* 在加载脚本中手动定义接收者和组

以下各部分对每种方法进行了解释。

## 通过上传源文件添加分发列表

您可以通过上传包含所需信息的源文件来定义分发列表。此文件必须包含特定的格式和结构。创建源文件的最简单方法是下载示例文件并使用您的接收者和组信息对其进行修改。

上传源文件作为分发列表将替换现有的源文件（如果有）。一个应用程序只能应用一个源文件。如果您上传源文件，此文件将替换以前上传到应用程序的源文件（如果有）。如果旧文件和新文件之间存在不匹配，这可能会导致现有的报表任务失败。

当您通过上传源文件添加分发列表时，将在应用程序的加载脚本中自动生成一个新部分（Distribution List），并且应用程序将重新加载。此脚本段列出了应用程序的接收者和组。然后，可以在应用程序的数据模型中访问分发文件中的详细信息。

当您上传源文件作为分发列表时，该文件也会作为数据文件添加到包含应用程序的空间中。Distribution List脚本段将此文件引用为空间内的一个项目。

提示注释如果您不希望在应用程序用户创建可视化和报表筛选器时可以访问上传的分发文件列表中的字段，请在脚本中使用HidePrefix系统变量。使用此选项可隐藏字段，同时将它们保留在数据模型中。有关更多信息，请参阅[HidePrefix](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/HidePrefix.htm)。

### 注意事项

在上传源文件之前，请考虑以下需要了解的重要详细信息：

* 新的Distribution List脚本段将作为脚本中的最后一部分添加。因此，在Distribution List之前的最后一部分上的任何脚本格式问题都将导致重新加载失败。例如，这可能是要加载的最后一个表末尾没有分号之类的问题。

* 不要修改自动生成的`Distribution List`脚本段中的SubField函数表达式。需要这些表达式来支持筛选器和组的逗号分隔值。

  ```
  SubField([Filters],',') AS [DL_DISTRIBUTION_FILTERS],
  SubField([Groups],',') AS [DL_DISTRIBUTION_GROUP_NAMES]
  ```

* 由于上传源文件是通过将数据加载到应用程序中来工作的，因此它也计入Qlik Cloud订阅中定义的已购买数据加载量（仅适用于基于容量的订阅）。请参阅[Qlik Cloud 基于容量的订阅](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/subscription-options-qlik-cloud.htm)。

### 下载示例文件

示例源文件是一个Excel工作簿，您可以在将其上传到应用程序之前对其进行修改。

执行以下操作：

1. 打开应用程序的报告部分中的接收者或组选项卡。

2. 单击添加接收者和组。

3. 选择the 下载示例 icon 。

下载示例分发列表文件

下载示例分发列表文件

下载示例分发列表文件 ![单击“接收者”选项卡中的按钮以下载示例源文件](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_CloudExcelReportDistExample.png)

下载示例文件后，您可以对其进行修改以添加应用程序的接收者和组。

### 添加接收者

打开您刚刚下载的示例文件，并确保您已打开以下工作表：

DL\_DISTRIBUTION\_SVC\_USERS\_QCS

接下来，您可以替换工作表中的数据以添加您自己的接收者。不要更改或删除显示列标题的第一行。

执行以下操作：

1. 在名称列中，添加接收者的名称。

2. 在电子邮件列中，添加接收者的电子邮件地址。请注意，此列会自动格式化为带有电子邮件地址目标的超链接。

3. 在筛选器列中，添加与应用程序的报告部分中的筛选器选项卡中添加的筛选器组相对应的筛选器组。用逗号分隔筛选器组。

4. 在组列中，添加接收者所属的组。用逗号分隔每个组。

### 添加组

在源文件中，组在具有此标题的工作表中定义：

DL\_DISTRIBUTION\_SVC\_GROUPS\_QCS

打开此工作表并替换数据以在分发列表中创建组。不要更改或删除显示列标题的第一行。

执行以下操作：

1. 在名称列中，添加组的名称。

2. 在描述列中，添加组的描述。

### 上传分发列表文件

创建源文件后，将其上传到应用程序的报告部分中的接收者或组选项卡中。执行此操作时，应用程序将重新加载，并且接收者和组将填充在各自的部分中。

执行以下操作：

1. 打开接收者或组选项卡。

2. 单击添加接收者和组。

3. 选择上传新版本 (.xlsx)。

上传源文件

上传源文件

上传源文件 ![单击“接收者”选项卡中的按钮以上传新创建的源文件](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_CloudExcelReportUploadDist.png)

## 在加载脚本中手动定义分发列表

通过文件上传添加分发列表会间接修改应用程序的加载脚本。或者，直接使用加载脚本添加接收者和组。这是高级用户的合适选项，如果您想使用数据源连接来提供接收者和组信息，则特别有帮助。

例如，如果您的接收者和组在外部源文件中定义，或者位于数据库或人力资源系统（例如，Workday）中，此选项允许应用程序中的接收者和组根据连接的源动态更新。

### 要求

为了使脚本中的字段被识别为属于应用程序的分发列表，您必须将标签应用于与分发列表的所需元素相对应的每个必填字段。有关更多信息，请参见下表。

配置报表筛选器时的选项

| 需要标签的字段 | 必需的标签 | 示例 |  |
| --- | --- | --- | --- |
| 接收者名称 | DL\_DISTRIBUTION\_SVC\_\_recipientName | `tag field [GetSheetValues.Name] with 'DL_DISTRIBUTION_SVC__recipientName'` |  |
| 接收者电子邮件地址 | DL\_DISTRIBUTION\_SVC\_\_recipientEmail | `tag field [GetSheetValues.Email] with 'DL_DISTRIBUTION_SVC__recipientEmail'` |  |
| 接收者筛选器 | DL\_DISTRIBUTION\_SVC\_\_recipientFilters | `tag field [GetSheetValues.Filters] with 'DL_DISTRIBUTION_SVC__recipientFilters'` |  |
| 组名称 | DL\_DISTRIBUTION\_SVC\_\_groupsName | `tag field [GetSheetValues.Groups] with 'DL_DISTRIBUTION_SVC__groupsName'` |  |
| 组描述 | DL\_DISTRIBUTION\_SVC\_\_groupDescription | `tag field [GetSheetValues.GroupDescription] with 'DL_DISTRIBUTION_SVC__groupDescription'` |  |

### 示例脚本

以下是连接到接收者和组的脚本段示例：

```
LIB CONNECT TO 'My_Sample_Connection';
 
LOAD Name as [GetSheetValues.Name], 
Email as [GetSheetValues.Email],
	SubField([Filters],',')AS [GetSheetValues.Filters],
	SubField([Groups],',') AS [GetSheetValues.Groups];
 
SELECT Name,
Email,
Filters,
Groups
FROM GetSheetValues
WITH PROPERTIES (
spreadsheetKey='abc',
range='DL_DISTRIBUTION_SVC_USERS_QCS!A1:D100',
valueRenderOption='FORMATTED_VALUE',
dateTimeRenderOption='FORMATTED_STRING',
generatedNumberedColumns='false',
skipRows=''
);
 
tag field [GetSheetValues.Name] with 'DL_DISTRIBUTION_SVC__recipientName';
tag field [GetSheetValues.Email] with 'DL_DISTRIBUTION_SVC__recipientEmail';
tag field [GetSheetValues.Filters] with 'DL_DISTRIBUTION_SVC__recipientFilters';
 
LOAD GroupName as [GetSheetValues.Groups],
GroupDescription as [GetSheetValues.GroupDescription];
    
SELECT GroupName,
GroupDescription
FROM GetSheetValues
WITH PROPERTIES (
spreadsheetKey='abc’,
range='DL_DISTRIBUTION_SVC_GROUPS_QCS!A1:B100',
valueRenderOption='FORMATTED_VALUE',
dateTimeRenderOption='FORMATTED_STRING',
generatedNumberedColumns='false',
skipRows=''
);
 
tag field [GetSheetValues.Groups] with 'DL_DISTRIBUTION_SVC__groupsName';
tag field [GetSheetValues.GroupDescription] with 'DL_DISTRIBUTION_SVC__groupDescription';
```

## 删除分发列表

如果需要，您可以从应用程序中删除所有接收者和组。

执行以下操作：

1. 打开接收者或组选项卡。

2. 单击任何接收者或组旁边的the 三点菜单 icon，然后选择the 全部删除 icon 。

信息注释上述过程仅在您上传了源文件作为分发列表时才有效。如果您使用替代脚本工作流定义了接收者和组，则必须从字段中删除标签，以取消将其标识为与分发列表相关。

## 应用程序内报告和部分访问

如果应用程序使用区域权限，则报告生成的工作方式会有所不同。有关更多信息，请参阅[应用内报告和区域权限](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Generate/cloud-in-app-reports-section-access.htm)。

## 托管空间中的分发列表

对于托管空间中的应用程序，无法从应用程序的报告部分编辑分发列表。在将应用程序发布到托管空间之前，请上传模拟分发列表文件，或在脚本中手动引用所需的远程源。建议在加载脚本中使用空间感知语法。换句话说，对数据源的引用应指向应用程序所在的当前空间。根据您添加分发列表的方式，可能会自动使用此语法。

提供分发列表的数据源必须包含与源应用程序的加载脚本中使用的分发列表源相同的参数名称（连接、文件和字段的名称）。

您将分发列表的实际数据源上传到托管空间。

有关更多信息，请参阅以下指南：

* [托管空间中的应用程序内报表](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/InAppGeneral/cloud-in-app-reports-managed-space.htm)

* [受管空间中应用程序的数据源](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Spaces/app-data-managed-spaces.htm)

## 分发列表的权限

要管理应用程序的分发列表，您需要：

* 租户管理员分配给您的权限。有关详细信息，管理员可以参考[设置计量报告特性的权限](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-permissions-reporting.htm)。

* [空间权限](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/Generate/cloud-in-app-reports-distribution.htm#Space)

  有关报告的空间权限的更多信息，请参阅[Qlik 报告服务 权限](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/reporting-permissions.htm)。

### 空间权限

在Qlik Sense应用程序中管理分发列表需要特定的空间角色。要求取决于您的应用程序所在的空间类型。

#### 共享空间中应用程序的要求

以下要求适用于共享空间中的应用程序：

* 要在应用程序的报告部分中查看分发列表，您需要对空间的可编辑访问权限。

* 要编辑、重新上传和删除分发列表，您必须在空间中具有可编辑应用程序中的数据访问权限。

有关更多信息，请参阅[管理共享空间中的权限](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Spaces/managing-shared-spaces.htm)。

#### 托管空间中应用程序的要求

分发列表不能在托管空间中直接配置。加载脚本引用将用于加载分发列表的数据源。要将这些数据源添加到空间，您必须具有在托管空间中添加和管理数据源所需的权限。有关更多信息，请参阅[管理受管空间中的权限](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Spaces/managing-managed-spaces.htm)。

有关托管空间中应用程序内报告的更多信息，请参阅[托管空间中的应用程序内报表](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/InAppGeneral/cloud-in-app-reports-managed-space.htm)。

#### 个人空间中应用程序的要求

您必须在租户中具有Private Analytics Content Creator用户角色才能完全控制分发列表。

## 分发列表限制

* 您不能在包含接收者和组名称以及接收者电子邮件地址的字段中使用逗号。此限制既适用于将分发列表作为文件上传，也适用于在加载脚本中手动定义它。

* 您最多可以向应用程序的分发列表中添加 1000 个收件人和 1000 个组。收件人总数（无论是否在组中）不能超过 1000。

## 了解详情

* [故障排除 - 应用程序中报告](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Troubleshooting/troubleshooting-reporting.htm)