按包含属性筛选

通过配置节点上的包含属性,可以指定订阅中将包含或排除该节点。

例如,可以使用此包含属性在源视点中添加节点,而无需立即将其添加到目标视点。然后,当准备将节点添加到目标视点时,可以更改源视点中的包含属性值,以生成订阅请求操作,从而将该节点添加到任何订阅目标视点。

Note:

包含属性必须是节点级别属性。

包含属性是布尔或列表数据类型属性,用于控制源视点中的节点是否作为订阅的一部分发送到目标视点。

  • 如果包含属性是布尔数据类型,则当布尔值为 True 时,节点将添加到目标视点,当该值为 False 时,节点将从目标视点移除。通常,当存在单个订阅目标视点并且您希望指定是否在该订阅中包含节点时,使用布尔包含属性。
  • 如果包含属性是列表数据类型,则必须指定包含值(通过输入值或从允许值列表中选择值)。如果有多个订阅目标视点,并且希望指定节点应针对哪些目标视点包含在订阅中,则使用列表数据类型属性。

在源视点中设置包含属性以包含节点时(即,布尔值为 True 或包含列表的包含值),订阅将为目标视点生成节点的请求操作。如果节点尚不存在于目标视点中,则添加或插入该节点。

在源视点中设置包含属性以排除节点时(即,布尔值为 False 或不包含列表的包含值),如果节点存在于目标视点中,则移除或删除该节点。如果节点不存在,则不为排除的节点生成请求操作。

最佳做法

如果要保留将从目标视点排除的节点的属性值和子关系,最佳做法是从订阅上的包含的操作筛选器中移除“删除”操作,以便仅移除该节点。请参阅“按操作筛选”。

注意事项

  • 可以使用源视点中任何节点类型的任何布尔或列表数据类型属性配置包含属性筛选器。

    Note:

    您可以将现有属性配置为包含属性,也可以创建新属性来用作此订阅的包含属性。请参阅“手动创建属性”。
  • 包含属性可以为默认类型派生和存储指定

    “指定”默认类型在以下情况下非常有用:

    • 默认情况下,您希望在订阅中包含所有节点,并将显式指定不希望包含的节点。您可以将默认值设置为包含节点(布尔值为 True 或包含列表的包含值),然后仅更改要排除的节点的属性。
    • 默认情况下,您希望在订阅中排除所有节点,并将显式指定希望包含的节点。您可以将默认值设置为排除节点(布尔值为 False 或不包含列表的包含值),然后仅更改要包含的节点的属性。

    当您要使用派生表达式来确定订阅中包含哪些节点时,“派生和存储”默认类型可能很有用。

    如果具有默认类型,则必须为每个节点指定包含属性值。

  • 默认类型不能为派生继承。将属性指定为包含属性后,不能将该属性的默认类型更改为派生或继承。

    Note:

    您可以将派生和存储属性指定为包含属性。
  • 节点表达式、顶级节点和操作筛选器应用于生成的请求操作。例如,如果节点上的包含属性设置为“包括”,但该节点位于已从订阅中筛选掉的顶级节点下,则不会为该节点生成请求操作。
  • 源视点中的某些请求操作将转换为目标视点中的等效操作:

    • 将源视点中的包含值从 False 修改为 True 时(或对于列表则含有包含值),如果节点尚不存在,则在目标视点中添加该节点(或在层次集中则插入)。

    • 将源视点中的包含值从 True 修改为 False 时(或对于列表则不含有包含值),如果节点存在于目标视点中,则删除该节点(或在层次集中则移除)。

    • 不修改源视点中的包含值时,如果包含属性设置为 True(或对于列表则含有包含值),则在源视点中执行的请求操作将传播到目标视点。

  • 对于共享节点,目标视点为层次时:
    • 如果包含属性更新为在源视点中包含或排除节点,则为该节点的所有实例生成请求操作。
    • 如果未更新包含属性,并且节点设置为包含,则仅为其中执行该操作的实例生成请求操作。
    • 如果未更新包含属性,并且节点设置为排除,则不为该节点的任何实例生成请求操作。

    例如,假设在源视点中的父节点 A、B 和 C 下有一个共享节点。

    • 如果更新包含属性以在源视点中的父节点 A 下包含一个节点,则会生成请求操作,以在目标视点中的父节点 A 下添加该节点并在父节点 B 和 C 下插入该节点。同样,如果更新包含属性以在源视点中的父节点 A 下排除一个节点,则会生成请求操作,以在目标视点中的父节点 A 下删除该节点并从父节点 B 和 C 中移除该节点。
    • 如果不更新包含属性,并且节点设置为包含,则仅为其中执行操作的节点的实例生成请求操作。因此,如果您编辑了源视点中父节点 B 下的节点的属性,则会生成一个请求操作,以仅为目标视点中父节点 B 下的节点修改该属性。
    • 如果不更新包含属性,并且节点设置为排除,则无论在源视点中的哪个实例上执行操作,都不会为节点生成请求操作。

Tip:

具有多个订阅视点时,如果只有一个用户(例如服务管理员)将确定哪些视点将接收哪些节点,则可以使用列表数据类型包含属性。如果有不同的用户各自确定是否将属性发送到其管理的视点,则可以设置多个布尔数据类型包含属性,并使用属性级数据访问来控制哪些用户可以查看或编辑其视点的布尔属性。

例如,您可以配置数据访问,以便只有 Planning 管理员能够编辑源视点中的“包含在 Planning 中?”属性,只有 Consolidation 管理员能够编辑源视点中的“包含在 Consolidation 中?”属性。请参阅“包含属性示例”中的布尔数据类型包含属性示例

Note:

如果已使用节点条件根据布尔值或列表数据类型节点级属性的值从订阅中筛选掉节点(请参阅“定义节点条件”),您应使用包含属性筛选器替换节点条件筛选器。

如果对关系级别属性使用节点条件筛选器,则应保留现有节点条件筛选器,因为无法对关系级别属性创建包含属性筛选器。

配置包含属性

  1. 检查包含要为其配置包含属性的订阅的视点,然后单击“订阅”选项卡。
  2. 创建新订阅或编辑现有订阅。请参阅“订阅视点”。
  3. 在“筛选器”选项卡上,单击编辑
  4. 包含属性下拉菜单中,选择要配置为包含属性的属性。仅具有布尔或列表数据类型的节点属性可供选择。
  5. 如果您选择的属性具有列表数据类型,则在包含值中输入包含值(或者如果属性使用“允许的值”,则选择该值)。

    Note:

    如果属性具有“允许的值”的应用程序或节点类型覆盖,则可以选择所有覆盖中所有允许值作为包含值。
  6. 单击保存