步骤 5:将平面文件架构转换为 OrderDetails 表的插入架构

更新时间: 2015年8月

本主题列出了在 SQL Server 中创建转换,以用于将平面文件消息架构映射到对 OrderDetails 表执行插入操作的架构的步骤。在创建转换之前,让我们看一下这两种架构,然后了解在转换过程中需要执行哪些操作。

以下是这两种架构的快照:

平面文件和插入架构

下表列出了映射要求以及用于完成此转换的映射操作:

 

要映射什么? 如何实现?

源架构中的 OrderId 节点直接映射到目标架构中的 OrderId 节点。

你直接连接两个架构中的两个节点。

由于平面文件架构中的 OrderDetails 节点是重复的节点,应将“数量”节点中的所有值都加起来,然后将累计值传递到目标架构中的 QuantityOrdered 节点。

使用累计和映射操作关联“数量”QuantityOrdered 节点。

目标架构中的 TotalAmount 节点必须包含所有项的累计值(单价 * 数量)。

有关如何设置此项的说明在映射到 TotalAmount 元素中提供

  1. 在 Visual Studio 中,右键单击 FTP_EAI_Tutorial 项目,指向“添加”,然后选择“新建项”。

  2. 在“添加新项”中选择“映射”,输入 Map.trfm 作为名称,然后选择“确定”。

  3. 在解决方案资源管理器中,双击 Map.trfm 文件以打开转换。在转换设计区域中,将源架构设置为 PO.xsd,将目标架构设置为 FTPEAITutorial_TableOperation.dbo.OrderDetails.xsd

  4. 在“工具箱”的“列表操作”类别中,将“创建列表”映射操作拖放到转换设计区域中。双击该映射操作,选择加号,然后输入 Amount 作为成员名称。输入“数字”作为“成员类型”,然后选择“确定”。

    通过这样做,你将创建一个称为 Amount 的内存中变量。

  5. “列表”映射操作内,添加“ForEach 循环”映射操作,然后将后者关联到源架构中的 OrderDetails 元素。这样做是因为 OrderDetails 元素是消息架构中的重复元素。

  6. “ForEach 循环”映射操作内,添加“算术表达式”映射操作。将源架构中的“单价”“数量”元素关联到此映射操作。双击映射操作以打开“配置算术表达式”对话框,并在“输入算术表达式”框中,键入单价 * 数量

  7. 至此,我们已针对 OrderDetails 元素的每个迭代计算了单价 * 数量的值。现在,我们需要将此值分配给在“列表”操作中创建的 Amount 变量。为此,我们在“ForEach 循环”操作中添加“向列表中添加项”操作,并将后者关联到“算术表达式”操作。这样做便将“算术表达式”映射操作(即单价 * 数量)的值分配给了“列表”操作中创建的 Amount 变量。

  8. 列表操作可以定义许多变量。虽然在我们的教程中,我们只定义了一个变量 (Amount),但仍需配置转换以选取该变量。为此,我们使用“选择条目”映射操作。

    “选择条目”映射操作拖放到设计图面上,然后将其关联到“创建列表”操作。双击“选择条目”映射操作以打开“配置选择条目”对话框,然后从“选择成员”框中选择 Amount 所对应的复选框。

  9. 现在,我们需要对 Amount 变量中的值进行累计。因此,我们添加“累计和”映射操作,并将其关联到“选择条目”映射操作。双击“累计和”映射操作,并在文本框中输入以下表达式:

    item.Amount
    

    现在,我们必须将“累计和”映射操作关联到目标架构中的 TotalAmount 元素。转换应如下所示(仅适用于映射目标架构中的 TotalAmount 元素):

    映射操作以计算总量

    note备注
    你还可以查看在 FTP_EAI_Tutorial 示例中提供的映射,网址为 http://go.microsoft.com/fwlink/?LinkId=247973

另请参阅

显示: