代码之家  ›  专栏  ›  技术社区  ›  Leth

字符串串联functoid不将映射值返回到目标记录

  •  0
  • Leth  · 技术社区  · 6 年前

    我有3个索引functoid,每个functoid从源架构中的特定记录接收一个值。如果第一个索引中有值,而第二个索引中没有值,那么它应该映射第一个索引值。如果第二个索引有一个值,它应该映射该值。 enter image description here

    第三个索引functoid应该只映射其值(如果有)。

    在测试文件中,第一个索引将返回一个值,因为它已填充,第二个未填充,但我的字符串串联functoid不会将任何内容返回到目标架构,因此不会映射所需的记录。

    我似乎不明白为什么会发生这种行为。在我看来,这种逻辑是合理的,应该在字符串连接中有一个值来映射。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ruud    6 年前

    值映射将决定是否生成输出,并将“优先级”置于后面的任何内容之上。如果调试地图,您将看到Visual Studio创建了两个嵌套的 <xsl:if> 语句,但由于它们永远不会都是真的,所以代码是不可访问的。

    一个选项是用脚本functoid替换值映射functoid,并执行以下操作:

    public string MyValueMapping(bool mapValue, string value)
    {
      return (mapValue ? value : string.Empty);
    }