处理 pmrep 文件 > 对象导入控制文件示例
  

对象导入控制文件示例

您在控制文件代码中指定的参数可确定在 pmrep 中运行 ObjectImport 命令时执行的操作。 以下示例介绍了将 ObjectImport 命令与控制文件一起使用来导入存储库对象的实例。 对于执行描述的任务非常重要的元素和属性名称通过代码中的注释指定。
下表提供了有关对象导入控制文件示例的描述:
函数
说明
导入源对象。
使用 TYPEFILTER 元素仅导入源对象。
将多个对象导入文件夹中。
使用 IMPORTPARAMS 和 FOLDERMAP 元素导入多个对象。
检入并标记导入的对象。
使用 IMPORTPARAMS 元素的 CHECKIN_AFTER_IMPORT 和 APPLY_LABEL_NAME 属性标记导入的对象。
保留序列生成器和规范器转换值。
导入对象时,使用 IMPORTPARAMS 元素的 RETAIN_GENERATED_VALUE 属性保留序列生成器和规范器值。
将对象和本地快捷方式对象导入同一存储库。
使用 FOLDERMAP 元素的所有属性导入对象以及引用这些对象的本地快捷方式对象。
从其他存储库导入快捷方式对象。
使用 FOLDERMAP 元素的所有属性从其他存储库导入快捷方式对象。
将对象导入到多个文件夹。
使用 FOLDERMAP 元素的所有属性将对象导入到多个文件夹。
导入特定的对象。
使用 TYPEFILTER 元素导入特定的对象。
重用和替换相关对象。
使用 TYPEOBJECT 元素的 OBJECTTYPENAME 和 RESOLUTION 属性重用和替换相关对象。
替换无效的映射。
使用 QUERYOBJECT 元素替换无效的映射。
重命名对象。
使用 SPECIFICOBJECT 元素的 RESOLUTION 属性重命名对象。
复制 SAP 映射和 SAP 程序信息。
使用 IMPORTPARAMS 元素的 COPY_SAP_PROGRAM 属性复制 SAP 映射和 SAP 程序信息。
应用默认连接属性。
使用 IMPORTPARAMS 元素的 APPLY_DEFAULT_CONNECTION 属性应用默认连接属性。
解决对象冲突。
使用 RESOLVECONFLICT 元素解决对象冲突。

导入源对象

您可以导入源对象。 例如,您要替换目标文件夹中标记为“Monthend”的所有重复对象。 但是,您希望重命名对象名称中包含“Yr_End”的冲突源对象。 您使用名为“yr_end_qry”的查询来查找这些对象。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">
<IMPORTPARAMS CHECKIN_AFTER_IMPORT ="NO">
<FOLDERMAP SOURCEFOLDERNAME ="OLD_ACCOUNTING"
SOURCEREPOSITORYNAME ="OLD_REPOS"
TARGETFOLDERNAME ="NEW_ACCOUNTING"
TARGETREPOSITORYNAME ="NEW_REPOS"/>

<!-- use the TYPEFILTER element to import only source objects -->
<TYPEFILTER TYPENAME ="SOURCE"/>
<RESOLVECONFLICT>
<LABELOBJECT LABELNAME ="Monthend"
RESOLUTION = "REPLACE"/>
<QUERYOBJECT QUERYNAME ="yr_end_qry"
RESOLUTION ="RENAME"/>
</RESOLVECONFLICT>
</IMPORTPARAMS>

将多个对象导入文件夹中

您可以将多个对象导入文件夹中,检入它们,并进行标记。 例如,您要将对象导入文件夹 SRC_F1,并将标签 LABEL_IMPORT_NEW 应用于这些对象。
您可以使用以下属性创建控制文件:
<xml version="1.0" encoding="UTF-16LE"?>
<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">
<!--apply label name LABEL_IMPORT_NEW to imported objects-->
<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="NEWOBJECTS" APPLY_LABEL_NAME="LABEL_IMPORT_NEW">
<FOLDERMAP SOURCEFOLDERNAME="SRC_F1" SOURCEREPOSITORYNAME="SRC_REPO1" TARGETFOLDERNAME="TGT_F1" TARGETREPOSITORYNAME="TGT_REPO1"/>
</IMPORTPARAMS>

签入导入的对象并为其加标签

可以将对象导入到文件夹中、签入对象、为对象加标签以及解决会话配置对象之间的冲突。 例如,您希望从文件夹 SRC_F1 导出对象并将其导入到文件夹 TGT_F1 中。 默认情况下,存储库服务在目标文件夹中创建会话配置。 将 APPLY_LABEL_NAME 属性加入控制文件的 IMPORTPARAMS 元素中为导入的对象加标签,加入 RESOLVECONFLICT 元素中以解决冲突。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>

<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">
<!--enter VERSION1 as the comment for the object you check in-->
<!--apply label name LABEL_IMPORT_NEW to imported objects-->

<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="VERSION1" APPLY_LABEL_NAME="LABEL_IMPORT_NEW">
<FOLDERMAP SOURCEFOLDERNAME="SRC_F1" SOURCEREPOSITORYNAME="SRC_REPO1" TARGETFOLDERNAME="TGT_F1" TARGETREPOSITORYNAME="TGT_REPO1"/>
<RESOLVECONFLICT>
<TYPEOBJECT OBJECTTYPENAME="SessionConfig" RESOLUTION="REUSE"/>
</RESOLVECONFLICT>
</IMPORTPARAMS>

保留序列生成器和规范器值

导入对象并替换目标文件夹中的所有对象时,您可以保留序列生成器和规范器转换的值。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>

<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">
<!--enter YES as the value for the RETAIN_GENERATED_VALUE attribute -->
<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="VERSION1" APPLY_LABEL_NAME="LABEL_IMPORT_NEW" RETAIN_GENERATED_VALUE="YES">w
<FOLDERMAP SOURCEFOLDERNAME="SRC_F1" SOURCEREPOSITORYNAME="SRC_REPO1" TARGETFOLDERNAME="TGT_F1" TARGETREPOSITORYNAME="TGT_REPO1"/>
<RESOLVECONFLICT>
<TYPEOBJECT OBJECTTYPENAME="ALL" RESOLUTION="REPLACE"/>
</RESOLVECONFLICT>
</IMPORTPARAMS>

将对象和本地快捷方式对象导入同一存储库

您可以将对象及其各自的本地快捷方式对象导入同一存储库。 例如,您有名为 SRC_SHARED_F1 和 SRC_NONSHARED_F1 的两个文件夹。 SRC_NONSHARED_F1 文件夹未共享,并且包含引用 SRC_SHARED_F1 文件夹中的对象的本地快捷方式对象。 您要将对象导入目标存储库中的不同文件夹,并且希望文件夹 TGT_NONSHARED_F1 中的快捷方式对象指向 TGT_SHARED_F1 中的对象。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>

<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">
<IMPORTPARAMS CHECKIN_AFTER_IMPORT="NO">

<!-- import objects from SRC_SHARED_F1 to TGT_SHARED_F1, and shortcut objects from SRC_NONSHARED_F1 to TGT_NONSHARED_F1-->
<FOLDERMAP SOURCEFOLDERNAME="SRC_SHARED_F1" SOURCEREPOSITORYNAME="SRC__REPO1" TARGETFOLDERNAME="TGT_SHARED_F1" TARGETREPOSITORYNAME="TGT_REPO1"/>
<FOLDERMAP SOURCEFOLDERNAME="SRC_NONSHARED_F1" SOURCEREPOSITORYNAME="SRC_REPO1" TARGETFOLDERNAME="TGT_NONSHARED_F1" TARGETREPOSITORYNAME="TGT_REPO1"/>
</IMPORTPARAMS>

从其他存储库导入快捷方式对象

您可以从其他存储库导入对象。 例如,您本地存储库中的文件夹包含全局存储库中对象的快捷方式。 您要将全局快捷方式对象导入注册到全局存储库的存储库,并在全局存储库中保留原始对象的快捷方式。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>
<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">
<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="global objects" APPLY_LABEL_NAME="LABEL_IMPORT_GLOBAL_SHORTCUT">

<!--import the shortcut objects from source folder SRC_SHARED_F1 in source repository SRC_GDR_REPO1 to source folder SRC_SHARED_F1 in target repository SRC_GDR_REPO2 -->

<FOLDERMAP SOURCEFOLDERNAME="SRC_SHARED_F1" SOURCEREPOSITORYNAME="SRC_GDR_REPO1" TARGETFOLDERNAME="SRC_SHARED_F1" TARGETREPOSITORYNAME="SRC_GDR_REPO2"/>
<FOLDERMAP SOURCEFOLDERNAME="SRC_NONSHARED_F1" SOURCEREPOSITORYNAME="SRC_LDR_REPO1" TARGETFOLDERNAME="TGT_NONSHARED_F1" TARGETREPOSITORYNAME="SRC_LDR_REPO2"/>
</IMPORTPARAMS>

将对象导入到多个文件夹

您可以将对象导入到从多个文件夹导出的多个文件夹。 例如,您从文件夹 SRC_F1、SRC_F2 和 SRC_F3 导出了对象,并且希望将它们导入存储库 TGT_REPO1 中的目标文件夹 TGT_F1、TGT_F2、TGT_F3。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>

<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">
<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="mulfolders" APPLY_LABEL_NAME="L1">

<!-- import objects from source folders SRC_F1, SRC_F2, and SRC_F3 to target folders TGT_F1, TGT_F2, and TGT_F3 in repository TGT_REPO1 -->
<FOLDERMAP SOURCEFOLDERNAME="SRC_F1" SOURCEREPOSITORYNAME="SRC_REPO1" TARGETFOLDERNAME="TGT_F1 TARGETREPOSITORYNAME="TGT_REPO1"/>
<FOLDERMAP SOURCEFOLDERNAME="SRC_F2" SOURCEREPOSITORYNAME="SRC_REPO2" TARGETFOLDERNAME="TGT_F2" TARGETREPOSITORYNAME="TGT_REPO1"/>
<FOLDERMAP SOURCEFOLDERNAME="SRC_F3" SOURCEREPOSITORYNAME="SRC_REPO3" TARGETFOLDERNAME="TGT_F3" TARGETREPOSITORYNAME="TGT_REPO1"/>
<RESOLVECONFLICT>
<TYPEOBJECT OBJECTTYPENAME = "SESSIONCONFIG" RESOLUTION="REUSE"/>
</RESOLVECONFLICT>

</IMPORTPARAMS>

导入特定对象

您可以选择要导入的对象。 例如,您将多种对象类型导出到一个 XML 文件。 您希望只将映射及各自的源和目标导入到文件夹。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>

<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">
<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="PMREP_IMPORT_TYPEFILTER" APPLY_LABEL_NAME="LABEL_MAPPING_TYPEFILTER">
<FOLDERMAP SOURCEFOLDERNAME="SRC_F1" SOURCEREPOSITORYNAME="REPO_EX_1" TARGETFOLDERNAME="TGT_F1" TARGETREPOSITORYNAME="REPO_EX1_"/>

<!-- use the TYPENAME attribute to import only mappings -->
<TYPEFILTER TYPENAME="MAPPING"/>
</IMPORTPARAMS>

重用和替换相关对象

可以导入会话、替换映射以及重用目标文件夹中的现有源和目标。 例如,您希望替换映射并重用源定义、目标定义和会话配置对象。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>
<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">

<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="PMREP_IMPORT_TYPEFILTER" APPLY_LABEL_NAME="LABEL_SESSION_TYPEFILTER">
<FOLDERMAP SOURCEFOLDERNAME="PMREP_CHECKED_OUT" SOURCEREPOSITORYNAME="REPO_EX_1" TARGETFOLDERNAME="PMREP_CHECKED_OUT_IMPORT_TYPEFILTER_SESSION" TARGETREPOSITORYNAME="REPO_EX_1"/>
<TYPEFILTER TYPENAME="SESSION"/>
<RESOLVECONFLICT>

<!-- replace all mappings -->
<TYPEOBJECT OBJECTTYPENAME = "MAPPING" RESOLUTION="REPLACE"/>

<!-- reuse source definitions, target definitions, and sessionconfigs -->
<TYPEOBJECT OBJECTTYPENAME = "SOURCE DEFINITION" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME = "TARGET DEFINITION" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME = "SESSIONCONFIG" RESOLUTION="REUSE"/>

<!-- replace some object types and reuse remaining objects-->
<TYPEOBJECT OBJECTTYPENAME = "ALL" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME = "SOURCE DEFINITION" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME = "MAPPING" RESOLUTION="REPLACE"/>

</RESOLVECONFLICT>
</IMPORTPARAMS>

替换无效映射

可以替换查询所返回的无效映射以及相关子对象。 例如,可以替换查询 QUERY_PARENT_RENAME 所返回的对象。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>
<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">

<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES"

CHECKIN_COMMENTS="PMREP_IMPORT_QUERY_PARENT_REPLACE_CHILD_REUSE" APPLY_LABEL_NAME="LABEL_QUERY_PARENT_RENAME_CHILD_REUSE">
<FOLDERMAP SOURCEFOLDERNAME="PMREP_CHECKED_OUT" SOURCEREPOSITORYNAME="REPO_EX_1" TARGETFOLDERNAME="PMREP_CHECKED_OUT" TARGETREPOSITORYNAME="REPO_EX_1"/>
<RESOLVECONFLICT>

<!--replace the objects returned by the query QUERY_PARENT_RENAME -->
<QUERYOBJECT QUERYNAME="QUERY_PARENT_RENAME" RESOLUTION="REPLACE"/>
</RESOLVECONFLICT>
</IMPORTPARAMS>

重命名对象

您可以在发生对象冲突时重命名特定对象。 例如,您要重命名对象 ADDRESS、ADDRESS1、R_LKP、MAP_MLET、R_S3、WF_RS1。 存储库服务会为对象名称附加编号。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>

<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">

<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="PMREP_IMPORT_SPECIFICOBJECT_RENAME" APPLY_LABEL_NAME="LABEL_IMPORT_SPECIFIC_OBJECT_RENAME">
<FOLDERMAP SOURCEFOLDERNAME="SRC_FOLDER1" SOURCEREPOSITORYNAME="REPO_EX_1" TARGETFOLDERNAME="TGT_FOLDER1" TARGETREPOSITORYNAME="REPO_EX_1"/>

<RESOLVECONFLICT>

<!-- rename the objects ADDRESS, ADDRESS1, R_LKP, MAP_MLET, R_S3, WF_RS1 -->

<SPECIFICOBJECT NAME="ADDRESS" DBDNAME="sol805" OBJECTTYPENAME="Source Definition" FOLDERNAME="PMREP_CHECKED_OUT" REPOSITORYNAME="REPO_EX_1" RESOLUTION="RENAME"/>
<SPECIFICOBJECT NAME="ADDRESS1" OBJECTTYPENAME="Target Definition" FOLDERNAME="PMREP_CHECKED_OUT" REPOSITORYNAME="REPO_EX_1" RESOLUTION="RENAME"/>
<SPECIFICOBJECT NAME="R_LKP" OBJECTTYPENAME="Lookup Procedure" FOLDERNAME="PMREP_CHECKED_OUT" REPOSITORYNAME="REPO_EX_1" RESOLUTION="RENAME"/>
<SPECIFICOBJECT NAME="MAP_MLET" OBJECTTYPENAME="Mapping" FOLDERNAME="PMREP_CHECKED_OUT" REPOSITORYNAME="REPO_EX_1" RESOLUTION="RENAME"/>
<SPECIFICOBJECT NAME="R_S3" OBJECTTYPENAME="Session" FOLDERNAME="PMREP_CHECKED_OUT" REPOSITORYNAME="REPO_EX_1" RESOLUTION="RENAME"/>
<SPECIFICOBJECT NAME="WF_RS1" OBJECTTYPENAME="Workflow" FOLDERNAME="PMREP_CHECKED_OUT" REPOSITORYNAME="REPO_EX_1" RESOLUTION="RENAME"/>
</RESOLVECONFLICT></IMPORTPARAMS>

复制 SAP 映射和 SAP 程序信息

您可以在导入 SAP 映射时复制 SAP 程序信息。 例如,您要导入 SAP 映射,并复制与您要导入文件夹 TGT_F1 中的对象相关联的程序信息。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>

<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">

<!-- enter YES as the value for the COPY_SAP_PROGRAM attribute to copy SAP mappings and SAP program information -->

<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="Version2 of objects" APPLY_LABEL_NAME="LABEL71_REPLACE_FOLDER" COPY_SAP_PROGRAM="YES">
<FOLDERMAP SOURCEFOLDERNAME="SRC_F1" SOURCEREPOSITORYNAME="REPO_EX_1" TARGETFOLDERNAME="TGT_F1" TARGETREPOSITORYNAME="REPO_EX_1"/>
</IMPORTPARAMS>

应用默认连接属性

如果连接在目标存储库中不存在,可以将默认连接属性应用到会话。 例如,目标存储库 REPO_EX_1 中不存在任何连接。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>
<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">

<!-- enter YES as the value of the APPLY_DEFAULT_CONNECTION element to apply a default connection attribute -->
<IMPORTPARAMS CHECKIN_AFTER_IMPORT="NO" APPLY_DEFAULT_CONNECTION="YES">
<FOLDERMAP SOURCEFOLDERNAME="SRC_F1" SOURCEREPOSITORYNAME="REPO_EX_1" TARGETFOLDERNAME="TGT_F1" TARGETREPOSITORYNAME="REPO_EX_1"/>
<RESOLVECONFLICT>
<SPECIFICOBJECT NAME="R_S3" OBJECTTYPENAME="Session" FOLDERNAME="PMREP_CHECKED_OUT" REPOSITORYNAME="REPO_EX_1" RESOLUTION="REPLACE"/>
<RESOLVECONFLICT>
</IMPORTPARAMS>

解决对象冲突

可以为目标存储库中已应用标签的对象解决对象冲突。 例如,已经对映射、Mapplet、源和目标应用了标签 LBL_MPNG_MPLTS_SRCS_TGTS, 但希望替换这些对象并对其应用标签 REPLACE_LBL_MPNG_MPLTS_SRCS_TGTS,然后重复使用所有转换。
您可以使用以下属性创建控制文件:
<?xml version="1.0" encoding="UTF-16LE"?>

<!DOCTYPE IMPORTPARAMS SYSTEM "impcntl.dtd">
<IMPORTPARAMS CHECKIN_AFTER_IMPORT="YES" CHECKIN_COMMENTS="PMREP_IMPORT_LABEL_REPLACE" APPLY_LABEL_NAME="REPLACE_LBL_MPNG_MPLTS_SRCS_TGTS" >
<FOLDERMAP SOURCEFOLDERNAME="SRC_F1" SOURCEREPOSITORYNAME="REPO_EX_1" TARGETFOLDERNAME="TGT_F1" TARGETREPOSITORYNAME="REPO_EX_1"/>

<!-- use the RESOLVECONFLICT element in conjunction with the RESOLUTION attribute of the OBJECTTYPENAME element to resolve conflicts when you import objects -->
<RESOLVECONFLICT>
<LABELOBJECT LABELNAME="LBL_MPNG_MPLTS_SRCS_TGTS" RESOLUTION="REPLACE"/>
<TYPEOBJECT OBJECTTYPENAME="Lookup Procedure" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Stored Procedure" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Expression" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Filter" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Aggregator" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Rank" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Normalizer" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Router" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Sequence" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Sorter" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="update strategy" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Custom Transformation" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Transaction control" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="External Procedure" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="Joiner" RESOLUTION="REUSE"/>
<TYPEOBJECT OBJECTTYPENAME="SessionConfig" RESOLUTION="REUSE"/>
</RESOLVECONFLICT>

</IMPORTPARAMS>