9.3. 将源数据项映射到目标数据项

  1. 展开 Mappings 面板左侧的 SourceTarget 面板中的所有项。

    Description
  2. Source 面板拖动数据项,并将它放到 Target 面板中的对应数据项。

    例如,将 customerNum 数据项从 Source 面板拖放,并将它放到 Target 面板中的 custId data 项上。

    Description

    映射会出现在 Mappings 面板中,SourceTarget data items 的详细信息会出现在详情窗格中。

  3. 继续将源数据项目拖放到对应的目标数据项目中,直到您完成所有基本映射。

    初学者 示例中,要映射的剩余数据项有:

    目标

    orderNum

    orderId

    status

    priority

    id

    itemId

    价格

    cost

    quantity

    amount

    注意

    您可以将集合(包含列表或集合的数据项目)映射到非集合数据项,反之亦然,但您无法将集合映射到其他集合。

  4. SourceTarget 面板中点 Hide mapped fields icon 来快速确定所有数据项是否已映射。

    Description

    只有尚未映射的数据项才会列在 SourceTarget 面板中。

    初学者 示例中,其余的未映射 目标 属性是 approvalCodeorigin

  5. blueprint.xml 选项卡返回到路由的图形显示:

    DTmapComplete
  6. FileSave

在创建转换测试后,您可以在转换文件上运行 JUnit 测试。详情请查看 第 9.4 节 “创建转换测试文件并运行 JUnit 测试”。此时,您将在 Console 视图中看到此输出:

对于源 XML 数据:

<?xml version="1.0" encoding="UTF-8"?>
<ABCOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://java.sun.com">
    <header>
        <status>GOLD</status>
        <customer-num>ACME-123</customer-num>
        <order-num>ORDER1</order-num>
    </header>
    <order-items>
        <item id="PICKLE">
            <price>2.25</price>
            <quantity>1000</quantity>
        </item>
        <item id="BANANA">
            <price>1.25</price>
            <quantity>400</quantity>
        </item>
    </order-items>
</ABCOrder>

对于目标 JSON 数据:

{"custId":"ACME-123","priority":"GOLD","orderId":"ORDER1","lineItems":[{"itemId":"PICKLE",
"amount":1000,"cost":2.25},{"itemId":"BANANA","amount":400,"cost":1.25