# 在共享空间中共同开发数据加载脚本

您可以与共享空间的其他成员协作开发应用程序和脚本加载脚本。

默认设置为：

* 只有应用程序所有者才能使用 数据管理器 和 数据加载编辑器 将数据添加到应用程序中，构建数据模型，并将数据加载到他们的应用程序中。

* 只有脚本所有者才能使用 脚本 向脚本添加数据和导出数据。

可以编辑应用程序中的数据用户角色允许共享空间中的其他用户在他们未拥有的应用程序中使用 数据加载编辑器 和 数据管理器 以及在他们未拥有的脚本中使用 脚本。

信息注释可以编辑应用程序中的数据用户角色还允许用户更改共享空间中应用程序的逻辑模型和词汇表。有关更多信息，请参阅[在共享空间中共同开发商业逻辑](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/BusinessLogic/business-logic-codevelopment.htm)。

当一个用户在 数据加载编辑器 中编辑加载脚本时，会为其他用户锁定该脚本。脚本将保持锁定状态，直到：

* 应用程序或脚本已重新加载。

* 对加载脚本进行最后一次更改后，经过了两分钟。

不同用户所做的更改将自动保存为历史记录中的版本。用户可以在历史记录中查看不同脚本版本之间的更改。有关管理脚本版本的更多信息，请参阅[管理加载脚本历史记录](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/managing-load-script-history.htm)。

数据加载编辑器 已由另一用户锁定

数据加载编辑器 已由另一用户锁定

数据加载编辑器数据加载编辑器 已由另一用户锁定 ![数据加载编辑器已锁定，以供其他用户编辑。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_app_script-coedit-rev.png)

## 数据模型联合开发和重新加载计划

如果一个应用程序被设置为按计划自动重新加载，那么当多个用户可以编辑加载脚本时，了解其重新加载计划的所有权如何变化是很重要的。这一点很重要，因为计划的重新加载代表重新加载计划所有者对应用程序及其数据源的访问权限。

如果重新加载时间表所有者以外的用户通过在 数据加载编辑器 中进行编辑（或在 数据管理器 中加载数据）来修改脚本，则在大多数情况下，重新加载时间表的所有权将转移给他们。但是，如果该用户已经是最近编辑加载脚本的用户，则计划的所有权不会转移给他们。该功能允许最新的加载脚本编辑器选择性地编辑重新加载计划。

不建议在协同开发的应用程序中使用 数据管理器。

### 报表开发人员的注意事项

在使用应用内报表时，应用程序的分发列表控制谁可以接收由应用程序报表任务生成的。当您创建或编辑分发列表时，您可以成为应用程序重新加载计划的所有者（如果有）。

要了解管理重新加载计划所有权的规则，请参阅[任务的所有权](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/reloading-apps-cloud-hub.htm#Ownershi)。

## 协作开发以及 数据管理器

建议仅在协同开发应用程序中的数据模型时使用 数据加载编辑器。

数据管理器 不会直接影响自动生成部分之外的加载脚本。对 数据管理器 中的数据模型进行的更新不会保存到加载脚本中，直到 数据管理器 中的用户单击加载数据。因此，当加载脚本被锁定时，数据管理器 不会被锁定。但是，当另一个用户正在编辑加载脚本时，会通知用户。

在共同开发场景中，如果 数据管理器 中的一个用户在另一个用户在 数据管理器 中工作时进行了更改，那么当另一用户单击加载数据时，他们的更改可能会丢失。

当 数据管理器 使用来自 数据加载编辑器 的同步表时，当用户在 数据加载编辑器 中工作时不会锁定 数据管理器。根据另一用户更改加载脚本的方式，如果在此期间编辑了加载脚本，则 数据管理器 中的更改可能会丢失。

如果您在 数据管理器 中加载数据，您可能将成为该应用程序或脚本的任何计划重新加载的新所有者。如果您已经是最近编辑加载脚本的用户，则计划的所有权不会转移给您。

## 限制

脚本联合开发有以下限制：

* 在脚本被锁定而无法进行编辑时，添加到具有重新加载数据操作的工作表中的按钮无法加载数据。