我们有一个非常复杂的BizTalk接口,它使用HL7加速器。
我们使用规范模式,该模式可以包含来自我们的主要患者管理系统的几种类型的事务中的一种,然后我们将其映射到我们的目标应用程序的HL7消息。
业务流程使用脚本形状根据收到的交易类型和其他一些标准动态调用地图。
可以调用大约20种不同的地图,其中许多地图共享共同的HL7段。例如,他们中的大多数将患者识别数据映射到HL7 PID段。
使用内联XSLT,使用单个脚本functoid完成PID映射。当我问为什么以这种方式完成时,给出的答案是:
"因为PID段在多个映射中,如果我们需要更新 映射我们可以简单地将XSLT复制并粘贴到其他地图,而不是摆弄许多单独的functoid。"
我刚刚在PID映射中发现了一个错误,必须在一个地图中修复XSLT,然后将其复制到其他20个地图。这非常耗时,完全违背了DRY principle。
BizTalk中是否有一种跨多个地图共享XSLT的方法?我想指定一次并多次调用它。
答案 0 :(得分:0)
如果在每个地图中都相同,请在业务流程动态地图之后调用单个地图,或直接从业务流程调用xslt。
答案 1 :(得分:0)
您是否尝试使用此共享XSLT构建库?使用脚本类型为External Assembly的脚本functoid调用它,然后您可以在许多地图之间共享该程序集,而无需在所有这些地方重写它。