【问题标题】:BizTalk Mapper Check and Replace Default ValuesBizTalk Mapper 检查和替换默认值
【发布时间】:2014-05-20 15:06:06
【问题描述】:

我在地图上创建了许多 functoid 来验证源节点“AdoptedDate”的默认值(等于 defaultvalues 到逻辑 OR 到具有新默认值的 Value functoid。然后如果两个 Equals 都不为真,则逻辑 Not for 将源节点“AdoptedDate”映射到目标模式(包含 xslt)。

我想做的是为源架构中的所有日期字段实现这个,可以这样做吗?

当前生成的 XSLT(仅采用)

 <xsl:for-each select="Form/SDetails">
<xsl:variable name="var:v17" select="userCSharp:LogicalEq(string(NameDetails/AdoptedDate/text()) , &quot;1900-09-09&quot;)" />
<xsl:variable name="var:v18" select="string(NameDetails/AdoptedDate/text())" />
<xsl:variable name="var:v19" select="userCSharp:LogicalEq($var:v18 , &quot;1800-09-09&quot;)" />
<xsl:variable name="var:v20" select="userCSharp:LogicalOr(string($var:v17) , string($var:v19))" />
<xsl:variable name="var:v22" select="userCSharp:LogicalNot(string($var:v20))" />
    <xsl:if test="string($var:v20)='true'">
        <xsl:variable name="var:v21" select="&quot;1901-01-01&quot;" />
        <p:AdoptedDate>
              <xsl:value-of select="$var:v21" />
        </p:AdoptedDate>
    </xsl:if>
    <xsl:if test="string($var:v22)='true'">
        <xsl:variable name="var:v23" select="NameDetails/AdoptedDate/text()" />
        <p:AdoptedDate>
            <xsl:value-of select="$var:v23" />
        </p:AdoptedDate>
    </xsl:if>

【问题讨论】:

    标签: xslt biztalk biztalk2006r2 biztalk-mapper


    【解决方案1】:

    你的选择是

    1. 在每个字段上使用相同的 functoid 集(我认为这是您试图避免的)
    2. 创建一个外部类可实现您随后可以从 Scripting functoid 调用的逻辑。
    3. 创建一个内嵌脚本来执行逻辑。然后,您可以拥有包含相同函数名称和参数的后续脚本 fuctoid,并且在它们都调用的 XSLT 中只有一个脚本。

    在所有情况下,您都必须将 functoid 链接到源字段和目标字段。

    【讨论】:

    • 选项三是我正在考虑的,会考虑并返回一些示例 xslt 用于实施。谢谢。
    猜你喜欢
    • 2016-12-13
    • 2013-11-05
    • 1970-01-01
    • 2016-12-30
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多