如何向映射添加“表循环”和“表提取程序”Functoid

表循环表提取程序 functoid 一起使用。 “表循环”functoid 具有配置的内部表。 对于每个输入记录或字段, “表循环 ”functoid 一次输出一个表的行。 表提取程序 functoid 从行中提取所需项,并将其传递给输出实例消息。

有关 表循环表提取程序 functoid 的概念信息,请参阅 表循环和表提取程序 Functoid

向映射添加“表循环”和“表提取程序”functoid 并对其进行配置

  1. 在“Visual Studio 工具箱”处于活动状态的情况下,单击“ 高级 Functoid ”选项卡以选择该类别的 functoid。

    此时,将显示所选类别的高级 functoid 列表。

  2. 拖动 “表循环 ”functoid (表示“表循环”functoid 的图像。) 从“工具箱”到网格页上的相应位置。

    注意

    该 functoid 将放置到显示的网格页上。 如果要将 functoid 放在其他网格页上,则需要首先显示该网格页。

    注意

    由于表循环 functoid 的输出充当一个或多个关联的表提取程序 functoid 的输入,因此请确保在表提取程序 functoid 的表循环 functoid 右侧留出空间。

  3. 将记录或字段从源架构拖动到新添加的 “表循环” functoid。 作为 Table Looping functoid 的第一个输入参数,此记录或字段在实例消息中的出现次数将控制此 functoid 生成输出的次数。 例如,如果将循环记录拖动到 functoid,并且处理了此记录出现 10 次的实例消息,并且表网格已配置了一行列数据源, 则表循环 functoid 将循环访问 10 次,生成 10 个输出行供 表提取程序 functoid 提取, 并允许轻松构造 10 条目标记录。

    注意

    如果在表网格中配置多行,则表 循环 functoid 的每个迭代都将输出每个此类行。 因此,输入记录出现的次数乘以表网格中所配置的行数将得出可用于进行数据提取的输出表行数。

  4. 将记录或字段从目标架构拖动到 “表循环” functoid。 此链接可确保在目标架构中创建节点。

  5. 选择新添加的“表循环”functoid,然后在“属性”窗口中,单击与其“输入参数”属性关联的省略号 (...) 按钮。

    注意

    此外,还可以选择 functoid,然后在键盘上按 Ctrl+M、Ctrl+T。 有关映射器键盘快捷方式的列表,请参阅 BizTalk 映射器键盘快捷方式

  6. “配置表循环 Functoid ”对话框中,单击“ 将常量输入参数添加到 functoid ”按钮以创建第二个输入参数。 键入一个数字,表示将在此表 循环 functoid 创建的表中可用的列数。

    注意

    表的最大列数为 228 列。

  7. “配置表循环 Functoid ”对话框中,单击“ 将常量输入参数添加到 functoid ”按钮,输入配置表网格中显示的任何常量值。 只要第一个和第二个参数值、行数和列数分别位于输入参数列表的开始位置,这些常数在此对话框中的创建顺序并不重要。 完成后,请单击“确定”

    配置表循环”Functoid 对话框将关闭。

  8. 将源架构中的零个或多个记录或字段节点拖动到最近添加的 “表循环 ”functoid。 这些记录和字段节点的每一个记录或字段节点都将添加到输入参数列表的末尾,因此在后面的步骤中配置表网格时将可以使用这些记录和字段节点。 与前面添加的表数据常数(不是行数和列数常数)一样,这些记录和字段节点的添加顺序并不重要。

  9. 若要为链接加标签,请执行以下步骤:

    • 在显示的网格页中选择链接。

    • 在 Visual Studio 属性窗口中,提供 Label 属性的描述性名称。 例如,对于来自名为“第二作者”的字段的链接,可以将其命名为“link2ndAuthor”。

  10. 选择新添加的“表循环”functoid,然后在“属性”窗口中,单击与与该 functoid 关联的表循环网格属性关联的省略号 (...) 按钮。

    此时将显示 “配置表循环 Functoid ”对话框,其中选择了“ 表循环网格 ”选项卡。

    注意

    或者,可以右键单击 functoid,然后在上下文菜单中单击“ 配置表循环网格 ”。 此时将显示 “配置表循环 Functoid ”对话框,其中选择了“ 表循环网格 ”选项卡。

  11. 使用与每个表单元格关联的下拉列表至少配置网格中的一个(可能多个)行。 下拉列表中的可用选项是你在步骤 6-8 中配置为输入参数 3 和 表循环 functoid 的常量和链接。 (输入参数 1 和 2 不会出现在这些下拉列表中。) 完成后,单击“ 确定”。

    配置表循环”Functoid 对话框将关闭。

    注意

    每一行构成输出结构的一次迭代,以及指定为 表循环 functoid 第一个输入参数的记录或字段的出现次数。 有关详细信息,请参阅步骤 3。

    注意

    必须使用 表提取程序 functoid 为要访问的每个列选择一个值。 如果 表提取程序 functoid 未使用某个列,则应考虑删除而不是维护该列。

    注意

    表网格的填充顺序并不重要。

  12. 拖动任意数量的 表提取程序 functoid (表示表提取程序 functoid 的图像。 根据需要从“工具箱”) 到显示的网格页。

    注意

    由于这些 表提取程序 functoid 的输入来自上一步中添加的 “表循环 ”functoid,因此请确保将 “表提取程序” functoid 放置在显示的网格页中的 “表循环 ”functoid 右侧。

  13. 若要为步骤 9 中添加的 表提取程序 functoid 之一创建第一个输入参数,请将其拖动到其左侧的相关 Table Looping functoid。

  14. 若要为同一表提取程序 functoid 创建第二个输入参数,请选择该 functoid,然后在“属性”窗口中,单击与其“输入参数”属性关联的省略号 (...) 按钮。

    此时将显示 “配置表提取程序”Functoid 对话框。

  15. 单击“ 将常量输入参数添加到 functoid ”按钮以创建第二个输入参数。 在要从中提取数据的相应 Table Looping functoid 的表网格中键入列数。 单击 “确定”

    配置表提取程序”Functoid 对话框将关闭。

    注意

    列数从 1 开始。

  16. 若要使用 “表提取程序” functoid 的输出,请将 “表提取程序 ”functoid 拖动到目标架构中的记录或字段节点,或将目标架构中的记录或字段节点拖到 “表提取程序” functoid。 目标实例消息中与目标架构中的这一记录或字段节点相对应的元素或属性值将使用表网格中指定的单元格的值(如果为常熟)或该单元格所表示的值(如果为链接)填充。

  17. 对步骤 11 中添加的每个 表提取程序 functoid 重复步骤 12、13、14 和 15。

另请参阅

向映射添加高级 Functoid