BizTalk自定义functoid,在某些情况下不返回值

BizTalk自定义functoid,在某些情况下不返回值,biztalk,Biztalk,我如何开发自定义functoid,如值映射,在某些情况下不返回值,并且不会创建映射字段?简短回答:您不能 更多:自定义Functoid将始终返回值,因为.Net方法(至少在Functoid API的范围内)将始终返回值,即使该值为Null 您唯一的选择是使用链接到目标节点的逻辑Functoid测试自定义Functoid之后的返回值。这样做的副作用是只创建逻辑Functoid的目标节点,返回true。为什么要为此开发自定义Functoid?可以使用xslt测试输入值。如果该值不满足某些要求,则不要

我如何开发自定义functoid,如值映射,在某些情况下不返回值,并且不会创建映射字段?

简短回答:您不能

更多:自定义Functoid将始终返回值,因为.Net方法(至少在Functoid API的范围内)将始终返回值,即使该值为Null


您唯一的选择是使用链接到目标节点的逻辑Functoid测试自定义Functoid之后的返回值。这样做的副作用是只创建逻辑Functoid的目标节点,返回true。

为什么要为此开发自定义Functoid?可以使用xslt测试输入值。如果该值不满足某些要求,则不要创建输出xml元素。以下面的示例为例,当person的名称不存在时(在源xml,map上),应该创建no-xml元素person(在目标xml,map上)


尝试将xslt用于映射,而不是functoid。

<xsl:if test="person/name">
<be:person>
    <xsl:value-of select="person/name/text()" />
</be:person>