【问题标题】:Mapping overlap in BizTalk - how to stop duplicating effort?BizTalk 中的映射重叠 - 如何停止重复工作?
【发布时间】:2011-12-08 11:17:17
【问题描述】:

我们有一个非常复杂的 BizTalk 界面,它使用 HL7 加速器。

我们使用规范模式,它可以包含来自我们的主要患者管理系统的几种类型的事务之一,然后我们将其映射到目标应用程序的 HL7 消息中。

编排使用脚本形式根据收到的交易类型和其他一些标准动态调用映射。

大约有 20 种不同的地图可以被调用,其中许多地图共享共同的 HL7 段。例如,它们中的大多数将患者识别数据映射到 HL7 PID 段。

PID 映射是通过使用内联 XSLT 的单个脚本 functoid 完成的。当我问为什么要这样做时,给出的答案是:

"因为PID段在多个map中,如果我们需要更新 映射我们可以简单地将 XSLT 复制并粘贴到其他映射,而不是摆弄许多单独的 functoid。”

我刚刚在 PID 映射中发现了一个错误,不得不在一个映射中修复 XSLT,然后将其复制到其他 20 个映射。这非常耗时,完全违背了DRY principle

在 BizTalk 中是否有跨多个地图共享 XSLT 的方法?我想指定一次,多次调用。

【问题讨论】:

  • 你试过xsl:import吗?
  • 不,我实际上没有,但不敢相信我没有想到这一点。我稍后会尝试。感谢您的评论。
  • @Dimitre - 不幸的是,BizTalk 地图中不允许这样做 - sandroaspbiztalkblog.wordpress.com/2010/04/26/…

标签: biztalk hl7 biztalk-2009


【解决方案1】:

您是否尝试过构建一个包含此共享 XSLT 的库?使用脚本类型为 External Assembly 的脚本 functoid 调用它,然后您可以在许多地图之间共享该程序集,而无需在所有这些地方重写它。

【讨论】:

    【解决方案2】:

    如果在每个映射中都相同,请在您的业务流程中的动态映射之后调用单个映射,或者直接从业务流程中调用 xslt。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 2012-03-23
      • 2021-07-14
      • 2012-01-22
      • 2013-10-28
      相关资源
      最近更新 更多