本主题提供关于完成“从通讯报文生成参数化消息”向导中的数据复用页面的详情。这些设置决定了通讯报文文件中的新数据将如何扩展和/或更新现有资源库数据集和数据记录。
章节目录:
Table of Contents | ||
---|---|---|
|
了解显示的数据集和记录类型
左侧面板将显示数据集。任何在指定资源库中已存在的数据集都将用(现有)标签标记。
Panel | ||
---|---|---|
| ||
Panel | ||
---|---|---|
| ||
- 数据集导入选项应用于左侧面板中列出的数据集。如Understanding Data Set Import Options中所描述。
- 记录导入选项应用于右侧面板中显示的记录类型。如Understanding Record Import Options中所描述。
- 记录类型树变更选项在Modifying Record Type and Field Names and Mappings和Specifying Record Identities from the Wizard中说明。
了解记录标识
记录标识是记录类型字段的子集,唯一标识该记录类型。例如,银行客户记录类型可能有 15 个不同的字段,而其标识可能仅使用社会保险号和账号。或者,书店记录可能将 ISBN 作为其标识。
标识可以让您将导入的通讯报文数据与现有数据资源库记录联系在一起。这种匹配方式有助于确定通讯报文文件的哪些数据是新的,哪些与现有数据匹配。当检测到匹配的数据时,记录导入设置将确定是否引用/共享现有记录,或者是否进行更新。
有关记录标识的详情,请参阅指定记录标识。
Anchor | ||||
---|---|---|---|---|
|
如果没有为与通讯报文文件相关联的数据集指定记录标识,则可以在向导中显示的记录类型树设置。
已经有标识的字段使用黄色图标标记。现有记录类型(使用树中的(现有)标签注释)无法在向导中对它们的标识进行调整(无法删除标识或添加新的标识)。如果希望调整现有数据集的标识,则需要使用数据资源库编辑器(如指定记录标识中所述)来实现。
如果没有现有标识,而您希望指定一个字段用作识别:
- 右键点击该字段并选择添加到标识。图标将会改变,以表示在向导完成时它将成为一个标识:
若要删除标识的字段:
- 右键点击该字段并选择从标识中删除。
Anchor | ||||
---|---|---|---|---|
|
为了更好地控制导入数据的 Schema,可以重命名记录类型和将创建的字段。您可以自定义名称,并指示使用不同名称标记的项实际上是相同的。
无法重命名现有记录和字段,但可以创建新的重复项。
如需重命名记录类型的字段,请右键点击相应的树节点,选择重命名,然后输入所需的名称。
新名称将显示在树(箭头右侧)中,并且图标将用红色的星号(*)标记。
如果选择对现有记录类型或字段进行重命名,请注意,原始条目将保持不变,并将在其下方添加一个新条目。来自通讯报文文件的数据将使用新的记录类型或字段。
示例
假定记录的通讯报文引用的实际上是相同地址类型的多元素(如: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)。
- 如果两个记录类型具有相同的子字段,那么当这些字段以不同的方式重命名,或者其中一个已被重命名而另一个没有,则无法合并。
如果一个类型是通讯报文文件中另一个类型的先驱,则这两个记录类型无法合并。
Anchor | ||||
---|---|---|---|---|
|
您可以在下面选项中进行选择,以控制来自通讯报文文件的数据如何扩展和/或更新现有资源库数据集:
SOAtest 选项
- 替换:删除现有数据,然后添加新数据。
- 附加:添加新记录,无需删除现有数据。
Virtualize 选项
- Replace:删除现有数据,然后添加新数据。
- 合并:在无需修改现有数据的情况下,导入新数据。
- Update:使用新数据更新匹配的记录,并根据需求创建新记录。
- Overwrite:使用新数据更新匹配的记录(匹配键),不创建其他记录。
为了了解每种策略如何运作的具体示例,假定您拥有以下现有数据集(CustomerID 的位置是键列):
CustomerID | FirstName | LastName |
---|---|---|
1 | Darth | Vader |
2 | Luke | Skywalker |
3 | Han | 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 | Han | Solo |
4 | Obi-Wan | Kenobi |
更新
使用新数据更新匹配的记录,并根据需求创建新记录。
根据以上示例,update 将导致以下情况:
CustomerID | FirstName | LastName |
---|---|---|
1 | Darth | Maul |
2 | Luke | Skywalker |
3 | Han | Solo |
4 | Obi-Wan | Kenobi |
重写
使用功能新数据更新匹配的记录(匹配键),不创建其他记录。
如果将通讯报文导入新的数据集,则即使没有匹配的键,也将创建新的记录。
根据以上示例,overwrite 导致以下情况:
CustomerID | FirstName | LastName |
---|---|---|
1 | Darth | Maul |
2 | Luke | Skywalker |
3 | Han | Solo |
Anchor | ||||
---|---|---|---|---|
|
可以控制匹配的数据(匹配现有的记录类型,由标识定义)是否重新使用现有的记录类型或更新现有的记录。可用选项包括:
- 复用:重新使用或共享其匹配的现有记录。
- 更新:使用来自通讯报文的数据更新现有记录相对应的字段,并为新的记录类型添加新记录。
例如,假定 SocialSec 和现有记录的标识为 FirstName、LastName、SocialSec 和 Email。
使用更新选项...
- 如果通讯报文具有 FirstName、LastName、SocialSec 相同,但 Email 不同的数据,则 Email 将更新。
- 如果通讯报文有一个字段引用了没有标识的 CustomerPrefs 记录类型,则将创建一个新的 CustomerPrefs 记录(除了上面所描述的行为外)。
使用重新使用选项...
- 如果通讯报文具有与其相同 FirstName、LastName、SocialSec,但 Email 不同的数据,则没有字段更新。
- 如果通讯报文有一个字段引用了没有标识的 CustomerPrefs 记录类型,则没有字段更新并且没有新的记录创建。
如果倾向于创建具有不同名称的重复记录类型,则右键点击匹配的记录类型名称,选择重命名选项,然后输入新的记录类型名称。
该树结构将同时显示原记录类型和新(重命名的)记录类型。