使用节点类型转换器

可以创建节点类型转换器,将一个节点类型转换为其他节点类型。

注:

要在并排式布局中的两个视点之间比较、定位、对齐和拖放不同节点类型的节点,需要使用节点类型转换器。

首先选择要转换为的目标节点类型,然后选择要从其执行转换的源节点类型以创建转换器。假设您要对使用“收购部门”节点类型的视点中的节点与使用“所有部门”节点类型的另一个视点中的节点进行比较。您需要创建用于将“收购部门”节点类型转换为“所有部门”节点类型的节点类型转换器。

视频

目标 观看此视频

了解如何转换节点类型。

视频图标 转换节点类型

教程

教程提供按顺序排列的视频和文档的说明以帮助您学习每个主题。

目标 学习要点

在节点类型转换器中构建表达式来派生节点的父代

视频图形 使用节点类型转换器表达式查找父节点

在两个应用程序之间设置了节点类型转换器后:

  • 如果节点在视点使用的目标节点类型中不存在,则该节点会转换为目标节点类型并添加到其中。如果节点添加到目标节点类型中,则节点类型转换器中指定的属性会复制到目标节点。

  • 如果在节点类型转换器中指定要复制的属性在目标视点中为只读,则不会将该属性的任何值复制到目标节点。

提示:

如果需要为转换器设置节点类型限定符,请参阅“使用节点类型限定符”。

创建节点类型转换器

要创建节点类型转换器:

  1. 检查将成为“目标”节点类型的节点类型。

  2. 选择转换器选项卡。

  3. 依次单击编辑添加

  4. 选择要执行转换的节点类型。这是“源”节点类型。

  5. 要复制的属性屏幕上,系统会自动填充相同或相似的属性。在操作列,从以下选项中选择适用于属性的操作:

    • 复制:复制源中的现有属性。从列下拉列表中选择属性。系统会自动选择相同或相似的属性,但可以更改。

    • 转换:定义计算目标属性值的表达式。在列中,单击定义表达式 定义表达式,定义一个表达式,然后单击应用。有关如何定义表达式的信息,请参阅“使用表达式定义自定义业务逻辑”。


      转换节点类型转换器的属性

    提示:

    单击 “搜索”图标 并输入要在属性列表中搜索的文本。将针对属性名称和描述执行搜索。

    注:

    • 如果一个属性的操作列为空白,则该属性不可编辑。
    • 如果操作列为空白,且包含一个下拉列表,则可以从上述选项中进行选择。
    • 如果属性所在行有警告 “警告”图标 图标,表示源属性已映射到只读目标属性。对源属性所做的任何更改都不会传播到目标属性。
  6. 可选:要从节点类型转换器中移除属性转换,请将属性的“操作”更改为“复制”或空白。
  7. 单击保存

有关详细信息,请参阅以下主题:

属性转换

属性转换会计算节点类型转换器中目标属性的定义值,只有当在视点之间共享、映射或同步数据时才运行属性转换。可以使用表达式为节点类型转换器属性配置转换功能。

注:

您可以转换这些数据类型的属性。

  • 布尔
  • 日期
  • 整数
  • 列表
  • 节点
  • 字符串

执行以下操作时,会计算属性转换:

  • 在视点之间添加或插入节点

  • 根据比较差异创建请求项

  • 生成订阅请求

注:

定位或对齐属性时无法使用属性名称转换。但可以向节点类型添加备用限定符,以便在无法使用默认限定符定位节点时,可以使用备用限定符搜索它们。请参阅“使用节点类型限定符”中的默认限定符和备用限定符

注意事项

使用表达式配置属性转换时,请谨记以下信息:

  • 可以使用 SourceNode 对象访问源节点中的信息。

  • 无法访问目标节点中的信息。

  • 可以访问源节点派生的属性。

转换节点父代

默认情况下,当您为名称属性设置转换时,该转换也将用于交互式请求中的父代、视点比较和订阅请求的生成。例如,如果要将某个后缀与转换表达式中的名称串联起来,则该后缀也会添加到任何父代引用。

但是,您可以为源节点的父代设置不同于名称属性的转换。父代转换针对源父代运行,在源节点已移至其他父代时,父代转换也用于旧父代。

如果为节点名称和父代分别设置了单独的转换,则当手动在视点之间插入节点并且还插入节点的后代时,在基于比较结果创建请求项时,或者在订阅生成请求项时,父代发生以下情况:

  • 如果在节点类型转换器中为父代设置了转换操作,则对每个源父代运行父代转换,并且生成的值用作每个层次操作的父代。对于订阅请求,父代转换也用于旧父代(如果适用)。

    注:

    如果源视点是列表视点,则不会运行父代转换(因为没有源父代)。而是,对订阅请求项中的父代使用 [unknown] 关键字。
  • 如果在节点类型转换器中为名称设置了转换操作但没有为父代设置,则对每个源名称和源父代运行名称转换,并且为源父代生成的值用作每个层次操作的父代。对于订阅请求,名称转换也用于旧父代(如果适用)。
  • 如果在节点类型转换器中对父代使用复制操作,则源父代(具有节点类型限定符,如果适用)用作每个层次操作的父代。对于订阅请求,源父代(具有节点类型限定符,如果适用)也用于旧父代(如果适用)。

注:

对于订阅,在生成订阅请求的请求项时,将对源层次视点中的顶级节点运行节点类型转换器中的父代转换。这样,就可以将源视点中添加的顶级节点放置在目标层次视点中的不同父代下。

提示:

测试用于转换节点父代的表达式时,确保在父节点而不是子节点上对表达式求值。

筛选目标节点类型

对于具有多个节点类型的目标视点,您可以对可用节点类型列表进行筛选,以便仅显示您要允许更改的那些节点类型。在以下情况下会应用节点类型筛选:

  • 您在视点之间拖放节点

  • 您插入来自另一视点的节点

  • 生成订阅请求时

要从可用节点类型列表中筛选出节点类型,请对节点类型进行配置,以使其没有允许的操作或可编辑的属性:

  1. 检查目标视点。

  2. 定义选项卡上,单击编辑

  3. 选择一个节点类型,并清除所有允许的操作和可编辑的属性。

  4. 单击保存