You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BizTalk 2016中如何基于源架构字段值映射目标架构字段

在BizTalk中实现条件字段映射的方案

完全可以实现,BizTalk提供了两种常用的方案来满足这个仅当NewProviderInd值为Yes时才映射字段的需求:

方法一:使用Functoid可视化配置

这种方式适合不想手写XSLT的场景,通过拖拽functoid完成配置:

  • 从工具箱拖入Logical String Equal functoid,将源架构的NewProviderInd元素连接到该functoid的第一个输入,然后在functoid属性里设置第二个比较值为Yes
  • 为每个需要映射的字段拖入Value Mapping (Flattening) functoid,将上面的Logical String Equal输出连接到该functoid的第一个输入(条件输入)
  • 将源字段连接到对应Value Mapping (Flattening)的第二个输入(值输入),再把functoid的输出连接到目标字段
  • 效果:只有当NewProviderInd等于Yes时,目标字段才会被生成并赋值;条件不满足时,目标字段不会出现在输出消息中

方法二:自定义XSLT映射

如果字段数量多(近40个),手写XSLT会更高效,也便于批量维护:

  • 在BizTalk映射编辑器中右键点击映射空白处,选择Custom XSLT Path,指定自定义XSLT文件的路径
  • 在XSLT中用<xsl:if>标签包裹所有字段映射逻辑,示例代码如下:
<xsl:template match="/">
  <TargetSchemaRoot>
    <!-- 仅当NewProviderInd为Yes时执行映射 -->
    <xsl:if test="SourceSchemaRoot/NewProviderInd = 'Yes'">
      <TargetField1><xsl:value-of select="SourceSchemaRoot/SourceField1"/></TargetField1>
      <TargetField2><xsl:value-of select="SourceSchemaRoot/SourceField2"/></TargetField2>
      <!-- 依次添加剩余38个字段的映射 -->
    </xsl:if>
  </TargetSchemaRoot>
</xsl:template>
  • 这种方式可以一次性控制所有字段的映射逻辑,避免逐个配置functoid的繁琐操作

注意事项

  • 区分Value Mapping和Value Mapping (Flattening):前者在条件不满足时会生成空的目标节点,后者则完全不生成节点,根据你的需求选择后者更合适

内容的提问来源于stack exchange,提问作者temp-user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 15:42:15