字符串连接 functoid 不将映射值返回到目标记录
String concatenate functoid not returning mapped values to destination record
我有 3 个索引 functoid,每个都从源架构中的特定记录接收值。如果第一个索引中有值,而第二个索引中没有值,则它应该映射第一个索引值。如果第二个索引有一个值,它应该映射那个值。
第三个索引 functoid 应该只映射它的值(如果有的话)。
在我的测试文件中,第一个索引将 return 一个值,因为它已填充而第二个未填充,但我的字符串连接 functoid 不会 return 任何目标模式,因此未映射所需的记录。
我似乎无法理解为什么会出现这种情况。这个逻辑对我来说似乎很合理,字符串连接中应该有一个值来映射。
值映射将决定是否生成输出,'priority' 接管后面的内容。如果您调试地图,您会看到 Visual Studio 在您的连接周围创建了两个嵌套的 <xsl:if>
语句,但由于它们永远不会同时为真,因此代码无法访问。
一个选项是用脚本 functoid 替换您的值映射 functoid 并执行如下操作:
public string MyValueMapping(bool mapValue, string value)
{
return (mapValue ? value : string.Empty);
}
我有 3 个索引 functoid,每个都从源架构中的特定记录接收值。如果第一个索引中有值,而第二个索引中没有值,则它应该映射第一个索引值。如果第二个索引有一个值,它应该映射那个值。
第三个索引 functoid 应该只映射它的值(如果有的话)。
在我的测试文件中,第一个索引将 return 一个值,因为它已填充而第二个未填充,但我的字符串连接 functoid 不会 return 任何目标模式,因此未映射所需的记录。
我似乎无法理解为什么会出现这种情况。这个逻辑对我来说似乎很合理,字符串连接中应该有一个值来映射。
值映射将决定是否生成输出,'priority' 接管后面的内容。如果您调试地图,您会看到 Visual Studio 在您的连接周围创建了两个嵌套的 <xsl:if>
语句,但由于它们永远不会同时为真,因此代码无法访问。
一个选项是用脚本 functoid 替换您的值映射 functoid 并执行如下操作:
public string MyValueMapping(bool mapValue, string value)
{
return (mapValue ? value : string.Empty);
}