本主题提供关于完成“Generate Parameterized Messages from Traffic”向导中的数据重用(Data Reuse)页的详情。这些设置确定通讯报文文件中的新数据将如何扩展和/或更新现有资源库数据集和数据记录的。
本章包含:
左侧面板将显示数据集。任何在指定资源库中已存在的数据集都将用(existing)标签标记。
右侧面板将显示组的记录类型和字段。任何匹配现有数据资源库的记录类型或字段都将用(matching)标签标记。
记录身份是记录类型字段的子集,该字段唯一标识该记录类型。例如,银行客户记录类型可能有 15 个不同的字段,而其身份可能仅使用社会保险号和账号。 或者,书店记录可能将 ISBN 作为其身份。
身份可以让您将导入的通讯报文数据与现有数据资源库记录联系在一起。这种匹配有助于确定来自通讯报文文件的哪个数据是新的,以及哪个匹配现有数据。当检测匹配数据时,记录导入设置将确定是否引用/共享现有记录,或是否更新它。
有关记录身份的更多详情,请查阅 Specifying Record Identities。
如果没有为与通讯报文文件相关联的数据集指定记录身份,则可以在向导中显示的记录类型树设置。
用黄色图标标记已经过身份验证的字段。现有记录类型(使用树中的(existing)标签注释)无法在向导中对它们的身份进行调整(无法删除身份验证或添加新的身份验证)。如果希望调整现有数据上的身份,则需要使用数据资源库编辑器(如 Specifying Record Identities中所描述的那样)来实现这一点。
如果没有现有的身份,并且希望指定要用作身份识别的字段:
若要删除标识的字段:
为了更好地控制正导入数据的模式,可以重命名记录类型和将创建的字段。这允许您自定义名称,并指示使用不同名称标记的项实际上是相同的。
无法重命名现有记录和字段,但可以创建一个新的且重复的。
若要重命名字段的记录类型:
新名称将显示在树(箭头右侧)中,并且图标将用红色的星号(*)标记。
如果选择了对现有记录类型或字段进行重命名,请注意,原始条目将保持不变,并将在其下方添加一个新条目。来自通讯报文文件的数据将使用新的记录类型或字段。
假定记录的通讯报文引用这些实际上是的相同地址类型的多元素(如: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的类型。
如果一个类型时通讯报文文件中另一个类型的先驱,则这两个记录类型无法合并。
您可以在下面选项中进行选择,以控制来自通讯报文文件的数据如何扩展和/或更新现有资源库数据集:
为了了解每种策略如何运作的具体示例,假定您拥有以下现有数据集(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 将导致以下情况:
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 |
可以控制匹配的数据(匹配现有的记录类型,由标识定义)是否重新使用现有的记录类型或更新现有的记录。可用选项包括:
例如,假定 SocialSec 和现有记录的标识为 FirstName、LastName、SocialSec 和 Email 。
使用更新选项...
使用重新使用选项...
如果倾向于创建具有不同名称的重复的记录类型,则右键单击匹配的记录类型名称,选择 Rename 选项,然后输入新的记录类型名称。
然后该树将同时显示原记录类型和新(重命名的)记录类型。