如何在Biztalk中缺少值时映射元素?

时间:2011-10-19 14:13:19

标签: biztalk

如果值丢失或者是空字符串,我不希望在输出文档中写出element属性。 怎么做? 这是一个biztalk映射。

2 个答案:

答案 0 :(得分:8)

要抑制目标中的元素,请使用值functoid。

  1. 将相关元素连接到LOGICAL EXISTENCE functoid。
  2. LOGICAL EXISTENCE functoid连接到LOGICAL AND functoid。
  3. 将元素functoid连接到NOT EQUALS functoid。
  4. NOT EQUALS functoid中,将Condition2设置为BLANK。
  5. NOT EQUALS functoid连接到LOGICAL AND functoid。
  6. LOGICAL AND functoid连接到VALUE MAP functoid。
  7. 将元素连接到VALUE MAP functoid。
  8. VALUE MAP functoid连接到目标元素。
  9. 按顺序执行这些步骤。下面的屏幕截图应该有所帮助:

    sample map

    HTH

答案 1 :(得分:1)

如果您更喜欢自己做XSLT: (我正在检查缺少的元素,空值和xsi:nil - 如果不适用则相应删除)

<xsl:choose>
    <xsl:when test="not(s0:inElement) 
                    or s0:inElement[normalize-space(.) = ''] 
                    or string(s0:inElement/@xsi:nil) = 'true'">
        ... Default here, e.g. leave this blank, 
            ... or if you want nil then <ns1:outElement xsi:nil="true"/>
    </xsl:when>
    <xsl:otherwise>
        <ns1:outElement>
            <xsl:value-of select="s0:inElement/text()" />
        </ns1:outElement>
    </xsl:otherwise>
</xsl:choose>