未使用BizTalk映射逻辑或运算符映射记录
我陷入了这个问题 我有两个输入字段 1) 外部注释 2) 内部注释 我想将它们映射到目标节点“Comments” 如果 外部注释即将到来(进行映射) 内部注释即将到来(进行映射) 两个字段都将到来(进行映射) 没有字段(不映射) 我完成了以下任务: 1) 如果节点即将到来,请检查逻辑存在性 2) 使用Equal fuctoid确认该值是否为真。逻辑存在=真->将真传递给或运算符 3) 对两个字段执行逻辑或的逻辑或 4) 值映射以设置值 此逻辑在以下情况下运行良好: a) 内部便笺(已成功映射) b) 两个值(内部和外部)都出现(成功映射) c) 外部注释(未映射) 我已经尝试了很多,但没有得到任何东西为什么这个外部值没有被映射 请帮帮我 谢谢未使用BizTalk映射逻辑或运算符映射记录,biztalk,biztalk-2009,biztalk-mapper,Biztalk,Biztalk 2009,Biztalk Mapper,我陷入了这个问题 我有两个输入字段 1) 外部注释 2) 内部注释 我想将它们映射到目标节点“Comments” 如果 外部注释即将到来(进行映射) 内部注释即将到来(进行映射) 两个字段都将到来(进行映射) 没有字段(不映射) 我完成了以下任务: 1) 如果节点即将到来,请检查逻辑存在性 2) 使用Equal fuctoid确认该值是否为真。逻辑存在=真->将真传递给或运算符 3) 对两个字段执行逻辑或的逻辑或 4) 值映射以设置值 此逻辑在以下情况下运行良好: a) 内部便笺(已成功映射)
以下应为以下输入消息的输出: 投入1:
<InternalNotes>
<Value>Internal notes value</Value>
</InternalNotes>
内部票据价值
产出1:
<Comments>
<Name>Comments</Name>
<Operation>Append</Operation>
<Value>Internal notes value</Value>
</Comments>
评论
追加
内部票据价值
投入2:
<ExternalNotes>
<Value>External notes value</Value>
</ExternalNotes>
外部票据价值
产出2:
<Comments>
<Name>Comments</Name>
<Operation>Append</Operation>
<Value>External notes value</Value>
</Comments>
评论
追加
外部票据价值
投入3:
<ExternalNotes>
<Value>External notes value</Value>
</ExternalNotes>
<InternalNotes>
<Value>Internal notes value</Value>
</InternalNotes>
外部票据价值
内部票据价值
产出3:
<Comments>
<Name>Comments</Name>
<Operation>Append</Operation>
<Value>External notes value .
Internal Notes value
</Value>
</Comments>
评论
追加
外部注释值。
内部票据价值
看起来您的映射是有效的,请尝试删除相等functoid,只需将Existance映射到LogicalOr即可
另外,如果我没有得到你的想法,请提供你的输入示例和预期输出 如果您使用
xslt
-将映射转换为xslt
,那么这是一个简单的映射
例如:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/xml">
<xsl:if test="InternalNotes or ExternalNotes">
<!-- . and newline delimiter if both elements present, else none -->
<xsl:variable name="delimiter">
<xsl:if test="InternalNotes and ExternalNotes">. </xsl:if>
</xsl:variable>
<Comments>
<Name>Comments</Name>
<Operation>Append</Operation>
<Value>
<xsl:value-of select="concat(InternalNotes/Value/text(),
$delimiter, ExternalNotes/Value/text())"/>
</Value>
</Comments>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
.
评论
追加
这将转换以下内容:
<xml>
<ExternalNotes>
<Value>External notes value</Value>
</ExternalNotes>
<InternalNotes>
<Value>Internal notes value</Value>
</InternalNotes>
</xml>
外部票据价值
内部票据价值
为此:
<?xml version="1.0" encoding="utf-8"?>
<Comments>
<Name>Comments</Name>
<Operation>Append</Operation>
<Value>Internal notes value.
External notes value</Value>
</Comments>
评论
追加
内部注释值。
外部票据价值
您没有提到在没有匹配项的情况下输出应该是什么样子,但是您显然至少需要一个根元素。我敢肯定,更优雅的xslt解决方案是可能的,但您会想到:)hi@FCR,我添加了输入和输出结构,还更新了图像。请调查一下,并提供一些解决方案。非常感谢你的帮助。