infacmd 控制文件 > 导入控制文件
  

导入控制文件

导入控制文件是一个与 infacmd 命令组合使用的 XML 文件。 控制文件将筛选 infacmd 从导出文件导入到域或模型存储库中的对象。
可以将导入控制文件与以下命令组合使用:
infacmd isp ImportDomainObjects
将本地用户、本地组、角色和连接从导出文件导入到域中。 为命令指定了导入控制文件后,便可以完成以下任务:
infacmd oie ImportObjects
将模型存储库对象从导出文件导入到模型存储库中。 为命令指定了导入控制文件后,便可以完成以下任务:
相关模型存储库对象可能存在于不同文件夹或项目中。 必须使用 folderMap 元素将所有相关对象加入导入控制文件中。 否则,导入可能会因目标存储库中缺少某个相关对象而失败,并显示一条错误消息。
可以在导入对象时通过命令行或控制文件定义一个冲突解决方案策略。 如果在命令行和控制文件中都定义了冲突解决方案,则控制文件优先。 如果发生冲突而您未定义冲突解决方案策略,导入则会失败。
如果定义了重命名冲突解决方案策略,则可以在控制文件中为特定对象指定一个名称。 infacmd 也可以通过在名称结尾附加一个序列号来生成一个名称。
导入控制文件根据文件配置为导入域对象还是导入模型存储库对象而使用不同的参数。

域对象的导入控制文件参数

可使用导入控制文件参数来配置要从 XML 文件导入到域中的对象。
域对象的导入控制文件可以包含下列元素:
下表列出了具有可配置属性的导入控制文件元素:
元素
属性名称
属性说明
objectList
类型
必需。 要导入的域对象的类型。 指定以下值之一:
  • - 用户
  • -
  • - 角色
  • - 连接
值不区分大小写。
objectList
选择
可选。 指示为 objectList 定义 object 元素时,infacmd 是否导入所有剩余的指定类型对象。 设置为 all 可导入所有剩余对象。 例如,下列行使用 Reuse 解决方案策略导入 Group1。 这些行使用 Merge 解决方案策略导入所有剩余组:
<objectList type="group" select="all" resolution="merge">
<object name="Group1" resolution="reuse" />
</objectList>
如果定义了 object 元素,且没有使用 select 属性,则 infacmd 会导入满足 object 元素中所定义属性的对象。 例如,下列行使用 Merge 解决方案策略导入 Group1:
<objectList type="group" resolution="merge">
<object name="Group1" />
</objectList>
如果没有为 objectList 定义 object 元素,则 select 属性的默认值是 all。 例如,下列行使用 Merge 解决方案策略导入所有组:
<objectList type="group" resolution="merge" />
有效值是 all。
objectList
resolution
可选。 名称有冲突时使用的解决方案策略。 将应用于指定类型的所有对象。 指定以下值之一:
  • - 替换。 将目标对象替换为源对象。
  • - Rename。 使用生成的名称重命名源对象,然后导入。
  • - Reuse。 重用目标域中的对象。
  • - Merge。 将多个对象合并成一个对象。 此选项适用于组。
值不区分大小写。
对象
名称
必需。 要导入的指定对象类型的特定对象名称。 值不区分大小写。
对象
resolution
可选。 此对象的名称有冲突时使用的解决方案策略。 指定以下值之一:
  • - 替换。 将目标对象替换为源对象。
  • - Rename。 重命名源对象,然后导入。
  • - Reuse。 重用目标域中的对象。
  • - Merge。 将多个对象合并成一个对象。 此选项适用于组。
值不区分大小写。
对象
renameTo
可选。 当冲突解决方案策略为 Rename 时要使用的名称。 如果没有指定名称,则 infacmd 会通过在名称结尾附加数字来生成名称。 如果没有冲突或冲突解决方案策略不是 Rename,则 Infacmd 将忽略该值。
对象
renameIdTo
可选。 在导入连接对象并且冲突解决方案策略为 Rename 时要使用的 ID 字符串。 如果没有指定连接 ID,则 infacmd 会通过在连接 ID 的结尾附加数字来生成一个 ID。 如果没有冲突或冲突解决方案策略不是 Rename,则 Infacmd 将忽略该值。

域对象的导入控制文件样本

下列代码显示了域对象的一个示例导入控制文件:
<?xml version="1.0" encoding="UTF-16LE" standalone="yes" ?>
<importParams xmlns="http://www.informatica.com/oie/importControl/9">

<! -- Import all connections, roles, and users. -->
<objectList type="connection" resolution="replace" />
<objectList type="role" resolution="reuse" />
<objectList type="user" resolution="rename" />

<! -- Import specific groups. -->
<objectList type="group">
<object name="g1" resolution="replace" />
<object name="g2" resolution="merge" />
</objectList>
</importParams>

模型存储库对象的导入控制文件参数

可使用导入控制文件参数来配置要从 XML 文件导入到模型存储库的对象。
模型存储库对象的导入控制文件可以包含下列元素:
下表介绍了导入控制文件中 folderMap 元素的可配置属性:
属性名称
属性说明
sourceProject
必需。 导出文件中包含要导入对象的源项目的名称。 值不区分大小写。
sourceFolderPath
可选。 导出文件中包含要导入对象的源文件夹的路径。 使用以下格式:
"/<folder_name>/<folder_name>"
例如,如果项目包含一个名为 F1 的文件夹,则 F1 的文件夹路径为“/F1”。 要导入项目中的所有对象,请指定“/”。 值不区分大小写。 默认值为“/”。
targetProject
必需。 目标存储库中要将对象导入到的项目的名称。 此项目必须在导入对象之前就已存在于存储库中。 值不区分大小写。
targetFolderPath
可选。 目标存储库中要将对象导入到的文件夹的路径。 使用以下格式:
"/<folder_name>/<folder_name>"
例如,如果项目包含一个名为 F1 的文件夹,则 F1 的文件夹路径为“/F1”。 要将所有对象导入到目标项目中,请指定“/”。 此文件夹必须在导入对象之前就已存在于存储库中。 值不区分大小写。 默认值为“/”。
递归
可选。 指示是否导入指定文件夹的子文件夹中的对象。 设置为 true 可导入子文件夹中的对象。 有效值为 true 和 false。 值区分大小写。 默认值为 true。
选择
可选。 指示为 folderMap 定义 objectList 元素时,infacmd 是否导入指定项目中的所有剩余对象。 设置为 all 可导入所有剩余对象。 例如,下列行使用 Reuse 解决方案策略导入映射。 这些行使用 Replace 解决方案策略导入所有剩余对象:
<folderMap sourceProject="p1" targetProject="p2" select="all" resolution="replace">
<objectList type="Mapping" resolution="reuse" />
</folderMap>
如果定义了 objectList 元素,且没有使用 select 属性,则 infacmd 会导入满足 objectList 中所定义属性的对象。 例如,下列行使用 Replace 解决方案策略导入映射:
<folderMap sourceProject="p1" targetProject="p2" resolution="replace">
<objectList type="Mapping" />
</folderMap>
如果没有为 folderMap 定义 objectList 元素,则默认值为 all。 例如,下列行使用 Replace 解决方案策略导入所有对象:
<folderMap sourceProject="p1" targetProject="p2" resolution="replace" />
有效值是 all。
resolution
可选。 名称有冲突时使用的解决方案策略。 应用于此文件夹中的所有对象。 指定以下值之一:
  • - Rename。 使用生成的名称重命名源对象,然后导入。
  • - 替换。 将目标对象替换为源对象。
  • - Reuse。 重用目标模型存储库中的对象。
  • - 无。
值不区分大小写。 默认值为“无”。
下表介绍了导入控制文件中 objectList 元素的可配置属性:
属性名称
属性说明
类型
必需。 要导入到指定文件夹路径的模型存储库对象的类型。有效值包括模型存储库中存在的所有对象类型。您可以在 Developer 工具的“属性”视图中查看对象类型。例如,可以输入“Relational Data Object”或“Profile”。 值不区分大小写。
选择
可选。 指示为 objectList 定义 object 元素时,infacmd 是否导入所有剩余的指定类型对象。 设置为 all 可导入所有剩余对象。 例如,下列行使用 Reuse 解决方案策略导入 MyMapping。 这些行使用 Replace 解决方案策略导入所有剩余映射:
<folderMap sourceProject="p1" targetProject="p2">
<objectList type="Mapping" select="all" resolution="replace">
<object name="MyMapping" resolution="reuse" />
</objectList>
</folderMap>
如果定义了 object 元素,且没有使用 select 属性,则 infacmd 会导入满足 object 元素中所定义属性的对象。 例如,下列行使用 Replace 解决方案策略导入名为 MyMapping 的映射:
<folderMap sourceProject="p1" targetProject="p2">
<objectList type="Mapping" resolution="replace">
<object name="MyMapping"/>
</objectList>
</folderMap>
如果没有为 objectList 定义 object 元素,则默认值为 all。 例如,下列行使用 Replace 解决方案策略导入所有映射:
<folderMap sourceProject="p1" targetProject="p2">
<objectList type="Mapping" resolution="replace" />
</folderMap>
有效值是 all。
resolution
可选。 名称有冲突时使用的解决方案策略。 将应用于指定类型的所有对象。 指定以下值之一:
  • - Rename。 使用生成的名称重命名源对象,然后导入。
  • - 替换。 将目标对象替换为源对象。
  • - Reuse。 重用目标模型存储库中的对象。
  • - 无。
值不区分大小写。 默认值为“无”。
下表介绍了导入控制文件中 object 元素的可配置属性:
属性名称
属性说明
名称
必需。 要导入的指定对象类型的特定对象名称。 值不区分大小写。
resolution
可选。 此对象的名称有冲突时使用的解决方案策略。 指定以下值之一:
  • - Rename。 重命名源对象,然后导入。
  • - 替换。 将目标对象替换为源对象。
  • - Reuse。 重用目标模型存储库中的对象。
  • - 无。
值不区分大小写。 默认值为“无”。
renameTo
可选。 当冲突解决方案策略为 Rename 时要使用的名称。 如果没有指定名称,则 infacmd 会通过在名称结尾附加数字来生成名称。 如果没有冲突或冲突解决方案策略不是 Rename,则 Infacmd 将忽略该值。
renameIdTo
可选。 在导入连接对象并且冲突解决方案策略为 Rename 时要使用的 ID 字符串。 如果没有指定连接 ID,则 infacmd 会通过在连接 ID 的结尾附加数字来生成一个 ID。 如果没有冲突或冲突解决方案策略不是 Rename,则 Infacmd 将忽略该值。
下表介绍了导入控制文件中 rebind 元素的可配置属性:
属性名称
属性说明
必需。 要导入的文件中的源连接名称。 值不区分大小写。
目标
必需。 目标模型存储库中要映射到源连接的连接的名称。 默认情况下,此连接必须在导入对象前就已存在于目标存储库中。 如果此连接不存在,则导入会失败。 在运行 infacmd 时,可以选择在导入期间跳过目标连接验证。 跳过目标连接验证时,如果某个连接在目标存储库中不存在,导入也会成功。 值不区分大小写。

模型存储库对象的导入控制文件样本

下列代码显示了模型存储库对象的一个示例导入控制文件:
<?xml version="1.0" encoding="UTF-16LE" standalone="yes" ?>
<importParams xmlns="http://www.informatica.com/oie/importControl/9">
<folderMaps>
<folderMap sourceProject="project1" sourceFolderPath="/f1" targetProject="project2" targetFolderPath="/f1" recursive="true">

<! -- Import mapping1 with the Rename resolution strategy. -->
<objectList type="Mapping" select="all" resolution="replace">
<object name="mapping1" resolution="rename" renameTo="mapping1_new"/>

<! -- Import all remaining mappings with the Replace resolution strategy. -->
</objectList>

<! -- Import all Aggregator transformations with the Replace resolution strategy. -->
<objectList type="Aggregator" resolution="replace"/>

<! -- Import all Filter transformations with no resolution strategy. -->
<objectList type="Filter" resolution="none"/>
</folderMap>
</folderMaps>

<! -- Map connections in the source repository to connections in the target repository. -->
<connectionInfo>
<rebindMap>
<rebind source="src_Conn1" target="tgt_Conn1"/>
<rebind source="src_Conn2" target="tgt_Conn2"/>
</rebindMap>
</connectionInfo>
</importParams>