请求加载文件格式

本主题介绍用于加载请求项的 Microsoft Excel 电子表格的格式。

注意事项

  • 电子表格文件中的每个工作表都对应于一个视点。

  • 可以将多个工作表加载到多个视点。

  • 工作表(及其对应的视点)必须使用等于或少于 30 个字符的标签。

    注:

    如果视点名称超过 30 个字符,则需要创建一个标签,在将请求项加载到视点时它将用于工作表。有关使用标签的信息,请参阅“检查视点”。

  • 电子表格可以包含公式来派生标准列的属性值。电子表格公式还可以用于特定于应用程序的属性(FCGL、PLN)和自定义属性。将跳过公式值等于空白的属性单元格。将跳过公式值等于 <clear> 或 <blank> 的属性单元格。

  • 工作表按从左到右的顺序进行处理。

  • 在加载过程中,不会处理导入文件中的重复行。

  • 对于支持的区域设置,日期和时间戳必须采用以下 Java 日期格式模式之一:

    • 默认

    注:

    有关 Java 日期和时间格式的信息,请参阅“使用预定义格式”。
  • 如果您的节点超过 10,000 个,请创建多个加载文件,每个文件中包含的节点不超过 10,000 个。

  • 对于在父代未知的情况下在层次视点中添加或插入的节点,在父代列中使用 <Unknown> 关键字以计算并存储每个请求项的父代值。管理员必须已定义表达式来计算父代值。请参阅“计算和存储节点的父代”。

  • 要计算正在添加或插入的节点的名称,请将名称列留空或使用 <cn><cn ####> 关键字。必须设置节点来计算名称值。请参阅“计算和存储节点的名称”。

列的注意事项

  • 电子表格必须具有与保留列名或属性名称匹配的列标题,请参阅“保留列名”。

    注:

    如果缺少“名称”列,则无法加载工作表。

  • 属性的列标题必须包含属性名称或属性的自定义显示标签(如果已设置,此选项在视点检查器的“属性”选项卡中设置)。属性名称不能包含命名空间。例如,Core.Description 无效。
  • 列可以采用任何顺序。
  • 如果某个列的标题与任何保留列名或属性名称都不匹配,则将忽略该列。这意味着,电子表格可以包含将不会加载的注释。
  • 如果加载文件具有“备用名称”属性列:
    • 如果要加载到的节点类型包含“备用名称”属性,则加载文件时将执行以下操作:
      • 如果行包含节点名称,则在“备用名称”列中加载备用名称。
      • 如果行不包含节点名称,则使用“备用名称”在视点中查找具有相同“备用名称”属性值的匹配节点。
    • 如果要加载到的节点类型不包含“备用名称”属性,则忽略该列。

行的处理顺序

从请求文件加载记录时,加载过程会对文件内容进行排序,以便父节点先于子节点添加到视点中。这样,在加载文件中,如果子节点所在的行位于父节点所在的行前面,则可以防止出现验证错误。

例如,此加载文件包含一个父代行 Analytics,在文件中该行前面有两个子代行(EmilyJack),这两个子代行都将 Analytics 作为其父代:


子节点行位于其顶级节点行前面的电子表格。

加载此文件时,加载过程会对内容进行排序,以便先添加 Analytics,然后添加 EmilyJackMary

<Blank> 和 <Clear> 处理和空字段

在处理请求文件时,在请求加载文件中输入 <blank><clear> 关键字和将单元格留空的处理方式不同:

  • <clear> 关键字将清除属性中的现有值。
  • <blank> 关键字为属性设置定义的空白值。
  • 将忽略文件中的空单元格。

所有数据类型都支持 <blank><clear> 关键字和空单元格。但是,对于列表数据类型,不支持列表的空白项。也就是说,列表本身可以为空,但是列表中的项不能为空。

下面是一些示例:

  • 列表值:支持 '<blank>'。请注意,为列表导入空白将覆盖列表中任何现有的已定义值、已继承值或默认值。
  • 列表值:支持 'A,B,C'
  • 列表值:不支持 'A,,C'

通过请求加载文件执行复制和模仿操作

使用 Copy NodeCopy Action 列,可基于现有节点的副本创建新节点,或使用请求加载文件创建现有节点的模仿节点(在层次视点中)。(有关模仿操作的更多详细信息,请参阅“通过模仿现有节点来添加节点”。)

注意事项

  • Copy NodeCopy Action 列只能用于添加或更新操作。如果 Action Code 列包含任何其他操作,则 Copy NodeCopy Action 列会被忽略。
  • 如果 Copy Node 列包含的节点在加载文件中已有相应请求项,则该节点的 Copy NodeCopy Action 列会被忽略。
  • 如果通过复制或模仿操作添加的节点所属节点类型的 Core.Name 属性被配置为计算和存储类型的属性(请参阅“计算和存储属性”),则系统会自动计算新节点的名称。
  • 在父代列中使用 <Ignore> 关键字以指示在模仿操作期间应忽略父代。仅在要复制节点的父节点下插入新节点。

要通过请求加载文件执行复制或模仿操作:

  • 使用 Copy Node 列可指定要复制或模仿的节点。
  • 使用 Copy Action 列可指定复制操作类型。请指定下列值之一:
    • Properties:对在 Copy Node 列中指定的节点执行复制操作。复制操作从指定节点复制定义的节点和关系级别属性值,并将其作为请求项的更新操作。(如果未指定复制操作类型,此值为默认值。)
    • Model After(仅限层次视点):对在 Copy Node 列中指定的节点执行模仿操作。模仿操作会进行以下处理:
      • 从指定节点复制父代关系,并将其作为请求项的插入操作
      • 复制每个父代的已定义关系级别属性值,并将其作为请求项的更新操作

      注:

      在请求文件上传期间不支持使用相关视点的模仿。因此,在列表视点中上传请求文件时,您无法执行模仿操作。

在请求加载文件中使用数据源

最佳做法

虽然可以在单个加载文件中添加来自多个数据源的请求项,但最佳做法是为每个数据源创建单独的加载文件。加载文件中的一个请求项只能有一个数据源,因此如果所加载的请求文件有一个包含在多个数据源中的同名节点,则只保留文件中的第一个数据源。通过为每个数据源创建单独的加载文件,可以对所有数据源的该节点运行匹配。

数据源列

加载文件中的请求项使用在数据源列中指定的数据源进行更新(请参阅“了解数据源”)。这样,便可以将它们链接或匹配并合并到视点中的现有节点(请参阅“关于节点链接”和“匹配和合并请求项”)。

注:

必须启用数据源,才能更新文件中的请求项。

注意事项

  • 您可以使用数据源代码名称在加载文件中标识数据源。最佳做法是使用数据源代码,因为名称可能会随着时间的推移而改变。
  • 只有当加载文件最初从已注册数据源生成时(例如,重新加载生成的订阅请求文件),才能从已注册数据源加载节点。加载文件中的行必须包含从已注册数据源生成的源节点 ID 和源节点类型,这样才能加载。
  • 如果请求项引用的数据源与行中的数据源不同,则会跳过该行。

保留列名

注意事项

  • 如果某个属性的名称与某个保留列名相同,则您可以使用备用列名。例如,如果有一个名为 Data Source 的属性,则您可以使用备用名称,如 Data_SourceDataSource{Data Source}

  • 如果电子表格要加载到用于列表的视点中,则将会忽略用于层次的列和操作。例如,在列表视点中将会忽略移动和插入操作。

表 10-2 标准列

列名 描述
Action Code

注意:如果加载文件不包含具有此名称或者“操作代码”列的备用名称之一的列,则该文件中所有请求项的操作代码将设置为 Update

指定节点处理方式。例如,提供了用于添加、移动和删除节点的操作代码。有关操作代码的信息,请参阅“表 10-3”。
Copy Action 如果 Copy Node 列包含节点,则此列指定要执行的复制操作类型。输入下列值之一:
  • Properties:对在 Copy Node 列中指定的节点执行复制操作。
  • Model After(仅限层次视点):对在 Copy Node 列中指定的节点执行模仿操作。

请参阅“通过请求加载文件执行复制和模仿操作”。

Copy Node 指定要复制或模仿的节点的名称。使用 Copy Action 列可指定复制操作类型。

请参阅“通过请求加载文件执行复制和模仿操作”。

Data Source 为节点指定数据源。您可以使用数据源代码名称。然而,最佳做法是使用数据源代码,因为名称可能会随着时间的推移而改变。
Description 节点描述。
Name 节点名称。节点名称和节点类型组合必须唯一。

此列是必需的。

New Name 如果要重命名节点,则此单元格包含新节点名称。
Node Type 节点的节点类型。

如果视点仅包含一个节点类型,则该列是可选的。如果 Node Type 单元格为空,则加载过程使用该节点类型;但是,如果视点包含多个节点类型,则必须在每行指定一个节点类型。

Old Parent Name 如果节点要移动到其他父节点下,则此单元格包含旧父节点的名称。

如果要移动的节点只存在于一个父节点下,则此单元格可以为空。如果节点存在于多个父节点下,则必须指定应从其移除节点的父节点的名称。

Old Parent Node Type 如果节点要移动到其他父节点下,则此单元格包含旧父节点的节点类型的名称。

如果要移动的节点只存在于一个父节点下,则此单元格可以为空。如果节点存在于多个父节点下,则必须指定应从其移除节点的父节点的节点类型。

Parent 父节点的名称(如果有)。如果此单元格为空,则节点作为顶级节点导入。

注意:在父代列中使用 <Unknown> 关键字来计算和存储请求项的父代值。

Parent Node Type 父节点的节点类型(如果有)。
Sibling

指定的父代下应当将该节点置于其后的同级节点的名称。或者,如果要排序的节点将成为父代下的第一个同级节点,请输入 <First>。

与重新排序、添加、插入和移动操作一起使用。

Sibling Node Type

同级的节点类型。

与重新排序、添加、插入和移动操作一起使用。

Source Node ID 来自已注册数据源的源节点的 ID。此列只能用于由订阅、通过比较结果或通过跨视点复制节点生成的请求文件行。
Source Node Name

来自已注册数据源的源节点的名称。此列只能用于由订阅、通过比较结果或通过跨视点复制节点生成的请求文件行。

Source Node Type

来自已注册数据源的源节点类型的 ID。此列只能用于由订阅、通过比较结果或通过跨视点复制节点生成的请求文件行。

表 10-3 操作代码

操作代码 描述
Add 创建新节点。
Delete 删除节点。
<空单元格>

如果 Action Code 单元格为空,则将使用 Update 操作代码处理相应行。

Insert 将现有节点插入层次中由 ParentParent Node Type 单元格指定的节点下。
Move 将现有节点移至层次中的一个新位置,同时将其从现有位置删除。
Prop_Update

仅更新现有节点的属性值。要执行其他操作,请使用更新操作节点。

可以清除已定义属性的属性值。清除属性值会删除存储的值,并将值恢复为默认值或继承的值。例如,下面的 Prop_Update 操作将清除“描述”值。


清除属性示例
Rename 重命名现有节点。
Reorder

在层次视点中对节点重新排序。

只能在所使用的层次集允许对相应类型的节点(父节点或底层节点)进行重新排序的视点中对节点重新排序。有关详细信息,请参阅“对节点进行重新排序”。

Remove 从指定的父节点中移除节点。
Update 更新现有节点的属性值。

如果行中的单元格指示需要其他操作,则 Update 操作还会执行此类操作。以下列表介绍了此操作的工作方式:

  • 如果节点不存在,则将会添加节点。如果视点是层次视点,则将在 ParentParent Node Type 单元格指定的层次位置插入节点。
  • 如果视点是层次视点且节点存在但不在指定父节点下,则结果操作取决于层次集是否允许共享节点:
    • 如果允许共享节点,则将在指定的父节点下插入节点。
    • 如果不允许共享节点,则将节点移至指定的父节点下。

如果属性允许空白,则可以将属性更新为空白值。在单元格中必须使用 <blank> 指示符;空单元格不会产生相同的结果。

例如,下面的更新操作将“法人实体”属性设置为空白值。即使描述的单元格为空,EMA 的现有描述也不会更改。


加载空白属性值

示例 10-1 示例

以下示例显示了要在层次视点中添加、更新和插入的几个节点:


图中显示了一个电子表格,其中包含用于添加、更新和插入节点的行。

以下列表介绍了该示例的关键点:

  • 所有节点的节点类型都为 Employees。
  • Business Unit 列指示该节点类型具有名为 Business Unit 的属性。
  • 第二行表示添加一个名为 Bill 的节点。ParentParent Node Type 单元格为空,表示这是顶级节点。
  • 第三行和第四行表示在 Bill 节点下添加子节点。
  • 第五行表示通过将现有节点的 Business Unit 属性值设置为 Support 来对其进行更新。
  • 第六行表示将名为 James 的现有节点插入到名为 Joe 的父节点下。