表循环和表提取程序 functoid 一起使用。 表循环 功能元件有一个可由你配置的内部表。 对于每个输入记录或字段,Table Looping 功能构件逐行输出表中的行。 Table Extractor functoid 从行中提取所需项,并将其传递给输出实例消息。
有关 表循环 和 表提取程序 functoid 的概念性信息,请参阅 “表循环”和“表提取程序”Functoid。
将表循环和表提取程序 functoid 添加到地图并对其进行配置
- 在 Visual Studio 工具箱处于活动状态的情况下,单击高级 Functoids选项卡以选择该类别的 functoids。 - 此时会显示所选类别中的高级 functoid 列表。 
- 将表循环功能单元(  )从工具箱拖动到网格页上的相应位置。 )从工具箱拖动到网格页上的相应位置。- 注释 - functoid 将放置在当前显示的网格页面上。 如果要将 functoid 置于其他网格页上,需要首先显示该网格页。 - 注释 - 由于 Table Looping functoid 的输出用作一个或多个关联的表提取程序 functoid 的输入,因此请确保为表提取程序 functoid 留出表循环 functoid 右侧的空间。 
- 将记录或字段从源架构拖动到新添加的 表循环 functoid。 作为 Table Looping functoid 的第一个输入参数,实例消息中此记录或字段的出现次数将控制此 functoid 生成输出的次数。 例如,如果将循环记录拖动到 functoid,并且处理了包含 10 次此记录的实例消息,并且已在表格中配置了包含一行列数据源的网格,表循环 functoid 将循环访问 10 次,生成 10 个输出行供 表提取 functoid 提取,并允许轻松构造 10 个目标记录。 - 注释 - 如果在表网格中配置多行,则每个此类行都将输出 表循环 functoid 的每个迭代。 因此,输入记录的出现次数乘以表格网格中配置的行数,得出可用于数据提取的输出表行数。 
- 将记录或字段从目标架构拖动到 表循环 functoid。 此链接可确保在目标架构中创建节点。 
- 选择新添加的“表循环”functoid,然后在“属性”窗口中,单击与其“输入参数”属性关联的省略号(...)按钮。 - 注释 - 或者,可以选择 functoid,然后从键盘按 Ctrl+M、Ctrl+T。 有关 Mapper 键盘快捷方式的列表,请参阅 BizTalk 映射器键盘快捷方式。 
- 在 配置表循环 Functoid 对话框中,单击  按钮,以创建第二个输入参数。 键入一个数字,代表您为此 表循环 functoid 创建的表中可用的列数。 按钮,以创建第二个输入参数。 键入一个数字,代表您为此 表循环 functoid 创建的表中可用的列数。- 注释 - 表中的最大列数为 228。 
- 在配置表循环 Functoid对话框中,单击  按钮,以输入在配置表网格中显示的任何常量值。 创建这些常量的顺序并不重要,只要第一个和第二个参数值(行数和列数)在输入参数列表的开头保留它们的位置。 完成后,请单击“确定”。 按钮,以输入在配置表网格中显示的任何常量值。 创建这些常量的顺序并不重要,只要第一个和第二个参数值(行数和列数)在输入参数列表的开头保留它们的位置。 完成后,请单击“确定”。- 配置表循环 Functoid 对话框已关闭。 
- 将源架构中的零个或多个记录或字段节点拖到最近添加的 表循环 functoid。 每个记录节点和字段节点都添加到输入参数列表的末尾,因此,在后一步中配置表网格时将可用。 与前面添加的表数据常量(而不是行和列计数常量)一样,添加这些记录和字段节点的顺序最终不相关。 
- 若要标记链接,请执行以下步骤: - 在显示的网格页中选择链接。 
- 在 Visual Studio 属性窗口中,提供 Label 属性的描述性名称。 例如,可以将该链接命名为“link2ndAuthor”,它来自名为“Second Author”的字段。 
 
- 选择新添加的“表循环”functoid,然后在“属性”窗口中,单击与与该 functoid 关联的表循环网格属性关联的省略号(...)按钮。 - 此时将显示“ 配置表循环”Functoid 对话框,其中已选中 “表循环网格 ”选项卡。 - 注释 - 或者,您可以右键单击 functoid,然后在上下文菜单中单击配置表循环网格。 此时将显示“ 配置表循环”Functoid 对话框,其中已选中 “表循环网格 ”选项卡。 
- 使用与每个单元格关联的下拉列表来配置网格中的至少一行,也可能是多行。 下拉列表中的可用选项是您在步骤 6-8 中配置的,作为输入参数 3 及以上用于 Table Looping 函数的常量和链接。 (输入参数 1 和 2 不出现在这些下拉列表中。完成后,单击“ 确定”。 - “配置表循环 Functoid”对话框已关闭。 - 注释 - 每行构成输出结构的一次迭代,结合指定为 表循环 functoid 的第一个输入参数的记录或字段的出现次数。 有关详细信息,请参阅步骤 3。 - 注释 - 必须为要使用 表提取程序 functoid 访问的每个列选择一个值。 如果某列未被表提取程序 functoid 使用,您应考虑删除该列,而不是保留它。 - 注释 - 填写表网格的顺序并不重要。 
- 根据需要将任意数量的表提取工具功能部件(  )从工具箱拖到显示的网格页面上。 )从工具箱拖到显示的网格页面上。- 注释 - 由于这些Table Extractor functoid 的输入来自上一步中添加的Table Looping functoid,因此请确保将Table Extractor functoid 放在显示的网格页中Table Looping functoid的右侧。 
- 若要为步骤 9 中添加的其中一个 表提取程序 functoid 创建第一个输入参数,请将其拖动到其左侧的相关 表循环 functoid。 
- 若要为同一表提取程序 functoid 创建第二个输入参数,请选择 functoid,然后在“属性”窗口中单击与其 Input parameters 属性关联的省略号(...)按钮。 - 此时将会出现“配置表提取程序 Functoid”对话框。 
- 单击“  ”按钮以创建第二个输入参数。 键入要从中提取数据的相应 表循环 functoid 的表网格中的列数。 单击 “确定” 。 ”按钮以创建第二个输入参数。 键入要从中提取数据的相应 表循环 functoid 的表网格中的列数。 单击 “确定” 。- 配置表提取器功能块对话框已关闭。 - 注释 - 列号从 1 开始。 
- 若要使用 表提取程序 functoid 的输出,请将 表提取程序 functoid 拖到目标架构中的记录或字段节点,或将目标架构中的记录或字段节点拖到 表提取程序 functoid。 在目标架构中,与此记录或字段节点对应的目标实例消息中的元素或属性值将被填充为常量的值,或由表网格中指定单元格指示的值(在链接的情况下)。 
- 对步骤 11 中添加的每个 表提取器 functoid 重复步骤 12、13、14 和 15。