本章包含:
了解显示的数据集和记录类型
左侧面板将显示数据集。任何在指定资源库中已存在的数据集都将用(existing)标签标记。
右侧面板将显示组的记录类型和字段。任何匹配现有数据资源库的记录类型或字段都将用(matching)标签标记。
- Data Set Import 选项应用于左侧面板中列出的数据集。如 Understanding Data Set Import Options中所描述。
- Record Import 选项应用于右侧面板中显示的记录类型。如 Understanding Record Import Options中所描述。
- Record Types tree 变更选项如 Modifying Record Type and Field Names and Mappings 和 Specifying Record Identities from the Wizard中所描述。
推断约束
如果使用 CTP,还可以选择推断约束的选项。约束是与数据相关的附加属性,它允许您创建模型并生成测试数据(请查阅 Data Modeling)。例如,数据会受到字符串、数量、日期或布尔类型的约束。
- 如果不希望约束受到定义,则选择 None 。
- 如果希望根据数据自动设置约束,则选择 Data 。您可以选择将数据中的元数据填充到数据存储库中。例如,如果数据集包括 U.S. 电话号码,则以下约束可能设置为:
Constraint:String
Pattern:(###) ###-####
Char map:0123456789
有关其他信息,请查阅 Inferring Data Constraints 。
- 如果希望根据服务定义文件(WSDL/schma)定义约束,则选择 Definition 。如果未提供在通讯报文向导中指定的定义文件,则该选项是禁用的。
如果选择通讯报文向导中的现有资源库,则将重写约束。您可以在 CTP 中的约束汇总查看并更改。请查阅 Data Modeling。
了解记录身份
记录身份是记录类型字段的子集,该字段唯一标识该记录类型。例如,银行客户记录类型可能有 15 个不同的字段,而其身份可能仅使用社会保险号和账号。 或者,书店记录可能将 ISBN 作为其身份。
身份可以让您将导入的通讯报文数据与现有数据资源库记录联系在一起。这种匹配有助于确定来自通讯报文文件的哪个数据是新的,以及哪个匹配现有数据。当检测匹配数据时,记录导入设置将确定是否引用/共享现有记录,或是否更新它。
有关记录身份的更多详情,请查阅 Specifying Record Identities。
从向导中指定记录身份
如果没有为与通讯报文文件相关联的数据集指定记录身份,则可以在向导中显示的记录类型树设置。
用黄色图标标记已经过身份验证的字段。现有记录类型(使用树中的(existing)标签注释)无法在向导中对它们的身份进行调整(无法删除身份验证或添加新的身份验证)。如果希望调整现有数据上的身份,则需要使用数据资源库编辑器(如 Specifying Record Identities中所描述的那样)来实现这一点。
如果没有现有的身份,并且希望指定要用作身份识别的字段:
- 右键单击该字段,然后选择 Add to Identity。图标将会改变,以表示在向导完成时它将成为一个标识:
若要删除标识的字段:
- 右键单击该字段,然后选择 Remove from Identity。
修改记录类型、字段名称和映射
为了更好地控制正导入数据的模式,可以重命名记录类型和将创建的字段。这允许您自定义名称,并指示使用不同名称标记的项实际上是相同的。
无法重命名现有记录和字段,但可以创建一个新的且重复的。
若要重命名字段的记录类型:
- 右键单击合适的树节点,选择 Rename,然后输入希望的名称。
新名称将显示在树(箭头右侧)中,并且图标将用红色的星号(*)标记。
如果选择了对现有记录类型或字段进行重命名,请注意,原始条目将保持不变,并将在其下方添加一个新条目。来自通讯报文文件的数据将使用新的记录类型或字段。
例如
假定记录的通讯报文引用这些实际上是的相同地址类型的多元素(如:address、work_address、home_address)。默认情况下,向导将会视其为不同类型(因为它们具有不同名称)。通过对它们进行重命名,可以指示其视为相同类型。
如果右键单击 work_address,并将其重命名为 address,则 address 子节点如果不在 work_address 中,则将添加到 work_address。此外, work_address 子节点如果不在 address 也将添加到 address中。
如果将 home_address 重命名为 address,则 home_address、 work_address和 address 将合并在一起。节点文本表示正在合并的类型。任何合并后应用的重命名和身份设置都将应用到所有三种类型。
当重命名一个合并类型时,您将被询问重命名是否应用于所有合并类型,或只应用与所选定类型。例如,将任何一个合并类型重命名为 addr ,并将其应用于所有合并类型将导致以下情况:
如果将 work_address 重命名为 secondary_address ,并将改变更仅用于所选节点,则它将从其他列表中“拆分”,将其子列表还原为原始列表,然后重命名。向导将其视为不同于 addr的类型。
注意
- 重命名为其他类型的节点上的任何标识设置都将通过重命名删除。可以在重命名后设置标识:
- 两个记录类型具有相同的子字段,但那些子字段具有不同的类型,无法对其进行重命名。例如,无法合并 addressWithList 和 work_address ,因为它们同时具有一个名为 misc_info 的子节点,而它们具有不同的类型(一个是 list,另一个是 string)。
- 如果两个记录类型具有相同的子字段,则如果这些字段以不同的方式重命名,或者其中一个已被重命名而另一个没有,则无法合并。
如果一个类型时通讯报文文件中另一个类型的先驱,则这两个记录类型无法合并。
了解数据集导入选项
您可以在下面选项中进行选择,以控制来自通讯报文文件的数据如何扩展和/或更新现有资源库数据集:
SOAtest 选项
- Replace: 删除现有数据,然后添加新数据。
- Append: 添加新纪录,而无需首先删除现有数据。
Virtualize 选项
- Replace:删除现有数据,然后添加新数据。
- Merge: 在无需修改现有数据的情况下,导入新数据:
- Update:使用新数据更新匹配的记录,并根据需求创建新纪录。
- Overwrite:使用功能新数据更新匹配的记录(和匹配键),不创建任何额外的记录。
为了了解每种策略如何运作的具体示例,假定您拥有以下现有数据集(CustomerID 的位置是键列):
CustomerID | FirstName | LastName |
---|---|---|
1 | Darth | Vader |
2 | Luke | Skywalker |
3 | Hans | Solo |
同时假定您有新的通讯报文,包含以下数据:
CustomerID | FirstName | LastName |
---|---|---|
1 | Darth | Maul |
2 | Luke | Skywalker |
4 | Obi-Wan | Kenobi |
Replace
删除现有数据,然后添加新数据。
如上给定的示例, replace 将导致以下情况:
CustomerID | FirstName | LastName |
---|---|---|
1 | Darth | Maul |
2 | Luke | Skywalker |
4 | Obi-Wan | Kenobi |
合并
在无需修改现有数据的情况下,导入新数据。
如上给定的示例, merge 将导致以下情况:
CustomerID | FirstName | LastName |
---|---|---|
1 | Darth | Vader |
2 | Luke | Skywalker |
3 | Hans | Solo |
4 | Obi-Wan | Kenobi |
更新
使用新数据更新匹配的记录,并根据需求创建新纪录。
如上给定的示例, update 将导致以下情况:
CustomerID | FirstName | LastName |
---|---|---|
1 | Darth | Maul |
2 | Luke | Skywalker |
3 | Hans | Solo |
4 | Obi-Wan | Kenobi |
重写
使用功能新数据更新匹配的记录(和匹配键),不创建任何额外的记录。
如果将通讯报文导入新的数据集,则即使没有匹配的键,也将创建新的记录。
如上给定的示例, overwrite 导致以下情况:
CustomerID | FirstName | LastName |
---|---|---|
1 | Darth | Maul |
2 | Luke | Skywalker |
3 | Hans | Solo |
了解记录导入选项
可以控制匹配的数据(匹配现有的记录类型,由标识定义)是否重新使用现有的记录类型或更新现有的记录。可用选项包括:
- Reuse: 重新使用或共享其匹配的现有记录。
- Update: 使用来自通讯报文的数据更新现有记录相对应的字段,并为新的记录类型添加新纪录。
例如,假定 SocialSec 和现有记录的标识为 FirstName、LastName、SocialSec 和 Email 。
使用更新选项...
- 如果通讯报文具有与其相同 FirstName、LastName、SocialSec,但 Email 不同的数据,则 Email 将更新。
- 如果通讯报文有一个字段引用了没有标识的 CustomerPrefs 记录类型,则将创建一个新的 CustomerPrefs 记录(除了上面所描述的行为外)。
使用重新使用选项...
- 如果通讯报文具有与其相同 FirstName、LastName、SocialSec,但 Email 不同的数据,则没有字段更新。
- 如果通讯报文有一个字段引用了没有标识的 CustomerPrefs 记录类型,则没有字段更新并且没有新的记录创建。
如果倾向于创建具有不同名称的重复的记录类型,则右键单击匹配的记录类型名称,选择 Rename 选项,然后输入新的记录类型名称。
然后该树将同时显示原记录类型和新(重命名的)记录类型。