表驱动循环示例

本部分简要介绍使用 “表循环” 和“ 表提取程序” functoid 的映射。 有关选择、放置、链接和配置 functoid 的详细信息,请参阅 How to Add Table Looping 和 Table Extractor Functoids to a Map

假设您有一个需要在文档中使用的地址的列表,该文档需要单独的发货地址和帐单邮寄地址。 这些地址可能如以下代码所示:

<ns0:Root xmlns:ns0="http://TableLoopingSample.Addresses">  
    <Address>  
        <Name>Kelly Focht</Name>  
        <Street>456 1st Ave</Street>  
        <City>Miami</City>  
        <State>FL</State>  
        <PostalCode>81406</PostalCode>  
    </Address>  
    <Address>  
        <Name>Wendy Wheeler</Name>  
        <Street>7890 Broadway</Street>  
        <City>Columbus</City>  
        <State>OH</State>  
        <PostalCode>46290</PostalCode>  
    </Address>  
</ns0:Root>  

可采用的输出形式之一如以下代码所示,可复制这些地址但使用属性对其进行标记:

<ns0:Root xmlns:ns0="http://TableLoopingSample.POAddresses">  
    <Address Type="ShipTo">  
        <Name>Kelly Focht</Name>  
        <Street>456 1st Ave</Street>  
        <City>Miami</City>  
        <State>FL</State>  
        <PostalCode>81406</PostalCode>  
    </Address>  
    <Address Type="BillTo">  
        <Name>Kelly Focht</Name>  
        <Street>456 1st Ave</Street>  
        <City>Miami</City><State>FL</State>  
        <PostalCode>81406</PostalCode>  
    </Address>  
    <Address Type="ShipTo">  
        <Name>Wendy Wheeler</Name>  
        <Street>7890 Broadway</Street>  
        <City>Columbus</City>  
        <State>OH</State>  
        <PostalCode>46290</PostalCode>  
    </Address>  
    <Address Type="BillTo">  
        <Name>Wendy Wheeler</Name>  
        <Street>7890 Broadway</Street>  
        <City>Columbus</City>  
        <State>OH</State>  
        <PostalCode>46290</PostalCode>  
    </Address>  
</ns0:Root>  

The following figure shows a map using the循环functoid and提取程序functoids to generate the desired output instance message.

映射表循环和表提取程序 functoid
“表循环”和“表提取程序”Functoid

请注意, Table Looping functoid 链接到输入和输出架构中的记录级元素。 此链接可确保创建封闭的结构,从而确保在记录内创建元素。 另请注意,输出架构中的每个字段都有一个 表提取程序 functoid。

输入架构中记录的链接是“ 配置 <Functoid> Functoid”对话框中的第一个参数。

第二个参数是 functoid 网格表中的列数:地址类型、名称、街道、城市、州和邮政编码各有一列。 紧随第二个参数之后是在该网格表中可能显示的所有值的列表。 这些值包括地址类型的字符串常数(“ShipTo”、“BillTo”),以及指向地址的字段的链接。 请注意,指向地址字段的链接都具有名称。 对映射中的链接进行命名,可以简化构造表的过程。 否则,完整路径将显示在 “配置表循环”Functoid 对话框中。

配置 表循环 functoid 后,可以使用“ 配置表循环 Functoid ”对话框构造表。 单击与“属性”窗口中的“表循环网格”属性关联的省略号 (...) 按钮时,将显示对话框。

请注意,在 “配置表循环 Functoid ”对话框中指定了六列:输出架构中每个字段对应一列。 下拉列表显示字段的可能值,也由 配置表循环 Functoid 对话框中的第三个和以下参数指定。 表包含两行,分别对应于输出架构中的每个记录类型。 因为存在两行,所以此映射将为每个输入记录生成两个记录。 如果存在四行,则每个输入记录将有四个输出记录。

“表循环 ”functoid 获取每条记录时,它会用记录中的值填充表中的值,然后一次向 表提取程序 functoid 发送一行。 “表提取程序”functoid 分别从表行中提取一个值,并将其传递到输出实例消息中的链接字段。

另请参阅

“表循环”Functoid
“表提取程序”functoid
表驱动循环配置
如何向映射添加“表循环”和“表提取程序”Functoid
高级 Functoid
“索引”Functoid
“迭代”Functoid
“循环”Functoid
“记录计数”Functoid