---
schema_version: "1"
id: b4aa82873ae08403f05e83f5d9b9e14ccadc475072e8465814cf0cf6c3c90f23
title: 使用自定义视图维护内容
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/server/customview_update.md
canonical_url: https://help.tableau.com/v0.0/server/zh-cn/customview_update.htm
source_site: help.tableau.com
content_type: documentation
content_hash: ce3fcac641d39271fbd087e75e4370b752aff402a3cf1ee8aeaafcabf7be64f2
description: Avoid breaking custom views when editing workbooks or data sources.
---
[跳转到主要内容](#main-content)

# 使用自定义视图维护内容

作为内容创建者，务必要了解对工作簿和数据源进行的更新会对最终用户产生怎样的影响。自定义视图是实现可视化项使用方式个性化的普遍方法，但如果源内容发生更改，自定义视图可能会损坏。如果可能，请避免进行已知会影响自定义视图的更改。需要进行更改时，请按照本主题后面概述的步骤进行操作。

一般来说，在处理已知使用自定义视图的内容时，有一些最佳实践。

- 建议最终用户仅基于稳定内容创建自定义视图。
    - 使用项目或命名系统来识别正在修改的工作簿，并建议用户不要在其上创建自定义视图。
- 在暂存或开发环境中测试更改。测试代表预期筛选器、用户操作、参数设置和其他自定义项的自定义视图。
- 在发布可能破坏自定义视图的更改之前主动通知用户。（[使用 Tableau 的 REST API 中的自定义视图方法](https://help.tableau.com/current/api/rest_api/zh-cn/REST/rest_api_ref_workbooks_and_views.htm#list_custom_views)检索应用于工作簿的所有自定义视图的列表。）

## 已知会影响自定义视图的更改

虽然最好测试任何更改以验证其对自定义视图的影响，但已知有一些更新会影响自定义视图。

此列表并不全面，仅供参考。

### 工作簿更改

- **名称更改**。更改工作簿（或与自定义视图关联的工作表）的名称会破坏自定义视图。
- **参数**。添加或移除参数可能会导致自定义视图损坏或无法按预期更新。
    - 如果在原始内容中添加参数，自定义视图可能会损坏。
    - 如果移除参数控件，则使用其输入的计算字段将保留其最后的值并且不再可调整。
- **筛选器**。移除筛选器会移除筛选器控件，但会将数据保留为已筛选状态。
    - 通常，如果删除原始内容中的筛选器，使用该筛选器的自定义视图将继续工作。但是，数据仍处于已筛选状态，且不存在筛选器控件。这意味着用户无法从自定义视图中更改筛选器选择。
    - 将筛选器控件从滑块更改为相对日期不会调整筛选器以准确反映预期的相对日期。
    - 如果使用自定义视图来控制筛选器选择，请考虑在共享 URL 中使用嵌入筛选器参数。
- **隐藏工作表**。将工作表设置为隐藏，即使后来取消隐藏，也会破坏该工作表上的自定义视图。
- **重新发布**。删除并重新发布工作簿会破坏其自定义视图。
- **默认值**。如果自定义视图由默认值（例如参数、集或筛选器）定义，并且默认值发生更改，则自定义视图会更新以反映新值。如果自定义视图需要绑定到特定值，请使用它而不是依赖于<默认值 >。

### 数据源更改

- **数据源更改**。使用“替换数据源”功能替换数据源或使用同一数据源的已发布副本替换嵌入式数据源会破坏自定义视图。
- **数据类型**。更改与自定义视图相关的字段的数据类型会破坏自定义视图。
- **移除字段**。移除自定义视图所依赖的字段、计算、组或集会破坏自定义视图。

## 安全更新内容

以下是一组最佳实践，可最大限度地降低破坏现有自定义视图的风险。

- 分别编辑工作簿和对数据源的更改。
- 不要重新发布具有已替换数据源的工作簿。
- 编辑工作簿或数据源的本地版本并使用相同名称重新发布。

### 修改工作簿

这些步骤假设工作簿使用与单独发布的数据源的实时连接，并且具有现有的自定义视图。

#### 使用 Web 编辑修改工作簿

Web 编辑是修改工作簿的首选方法。如有必要，请仅使用 Tableau Desktop。

1. 在浏览器中编辑工作簿，避免前面提到的已知会破坏自定义视图的各项操作。
    - 如果需要对数据进行更改，请不要立即进行更改。请参见有关修改数据源的部分。
2. 使用相同的名称将工作簿发布到同一位置，并覆盖现有版本进行保存。

#### 使用 Tableau Desktop 修改工作簿

如果可能，请在浏览器中修改工作簿。如有必要，请仅使用 Tableau Desktop。

1. 打开工作簿的本地版本（如有必要，请先下载工作簿）。
2. 编辑工作簿，避免前面提到的已知会破坏自定义视图的各项操作。
    - 如果需要对数据进行更改，请不要立即进行更改。请参见有关修改数据源的部分。
3. 使用相同的名称将工作簿发布到同一位置，替换现有版本。
    - _不要_选择“更新工作簿以使用已发布数据源”选项。

### 修改数据源

1. 通过下载工作簿并创建数据源的本地副本，在 Tableau Desktop 中打开数据源的本地版本：
    
    1. 下载工作簿，并在 Tableau Desktop 中打开。
    2. 右键单击数据源并选择“创建本地副本”。
    3. 右键单击新数据源并选择“替换数据源...”
    4. 将与已发布数据源的现有连接交换为新创建的本地副本。
    
    **注意**：在工作簿中使用本地版本是首选方法，因为它允许您直接在工作簿中验证数据源更改。或者，您可以下载数据源或使用本地存储的副本。
2. 编辑数据源，避免前面提到的已知会破坏自定义视图的各项操作。
3. 发布数据源。
    1. 使用相同的名称并覆盖现有数据源进行保存。
    2. 不要选择“更新工作簿以使用已发布数据源”选项。
    3. 不要发布包含已修改数据源的工作簿。如果需要更改工作簿内容，请参见有关修改工作簿的部分。

## 调查损坏的自定义视图

**注意**：本节假设您熟悉 XML 和基本的命令行交互。

在 .twb 工作簿文件中，工作簿的 XML 包含工作簿元素的标识标记。创建自定义视图时，会拍摄交互式元素（例如筛选器或设定值、参数或选定标记）及其值的快照。访问自定义视图时，Tableau 会将随自定义视图一起存储的属性值应用到相关元素 ID。如果元素 ID 发生更改或无法加载属性值，自定义视图就会损坏。

通过比较更改前后的 .twb，可以确定哪些更改破坏了自定义视图。

1. 当自定义视图运行时，您需要工作簿的 .twb 文件（在进行任何更改之前保存内容副本）。
2. 在工作簿的另一个副本中，进行更改以导致自定义视图损坏，并将其另存为不同的 .twb。
3. 在命令行中，运行以下命令（将第一步中的文件替换为 file1.twb，将第二步中的文件替换为 file2.twb）。
    
    vimdiff file1.twb file2.twb
4. 结果突出显示文件之间的更改。

已知某些 ID 或属性值（在 **\[方括号\]** 中）如果更改会破坏自定义视图：

```
<datasources>
	<datasource name='[ID]'>

<worksheets>
	<worksheet name='[ID]'>
<table>
<view>
<datasource-dependencies datasource='[ID]'>
<column datatype='[Value]' name='[Value]'>

<dashboards>
	<dashboard name='[ID]'>
```