简体   繁体   English

拦截并修改Ack响应消息BizTalk 2013 R2

[英]Intercept and modify Ack response message BizTalk 2013 R2

I have written a custom pipeline component assembler to modify the response ACK HL7 message. 我已经编写了一个自定义管道组件汇编程序来修改响应ACK HL7消息。

I have invoked Assemble(pContext) of Microsoft.Solutions.BTAHL7.Pipelines.HL72fAsm in the implemented method Assemble(pContext) of IAssemblerComponent interface gives me result IBaseMessage which is an HL7, then I do my manipulations on it to fix one of the fields and return that modified IBaseMessage . 我援引Assemble(pContext)Microsoft.Solutions.BTAHL7.Pipelines.HL72fAsm中实现的方法Assemble(pContext)IAssemblerComponent接口给我造成IBaseMessage这是一个HL7,然后我就可以了我的操作,以修复领域之一并返回修改后的IBaseMessage

All these works just fine, I tried EvenLogger to verify it. 所有这些工作都很好,我尝试了EvenLogger进行验证。

But still the Sender application doesn't receive the modified message, it receives the auto-generated message. 但是,发件人应用程序仍未收到修改后的消息,而是接收自动生成的消息。

Is there something I'm missing out, why do I not get the custom assembler result out from the SendPipeline of 2 way receive port 有什么我想念的东西,为什么我不能从2路接收端口的SendPipeline中获得自定义汇编结果

Note : BTAHL7 Configuration explorer is configured for original mode. 注意:BTAHL7 Configuration Explorer被配置为原始模式。 The send pipeline on RequestResponse receive port is set to my custom pipeline RequestResponse接收端口上的发送管道设置为我的自定义管道

My suggestion is after all the more important points. 我的建议毕竟是更重要的一点。

The first thing you're employer or customer should say is NO. 您是雇主或客户的第一件事应该是不。 That is invalid HL7 and you cannot support that. 那是无效的HL7,您不能支持它。

But, if they are unable to unwilling to comply, the next thing you need to do is inform your management that their non-compliance will cost you a lot of extra time and money to accommodate. 但是,如果他们不愿意遵守,您接下来要做的就是告知您的管理层,他们的不遵守将花费您很多额外的时间和金钱来适应。 To fully support this change will likely cost more then implementing the business messages , I am totally serious. 我完全相信,要完全支持此更改,可能比实施业务消息花费更多 This is not a problem with BizTalk Server, you app or you. 这不是BizTalk Server,您或您的应用程序的问题。

Depending on the relationship, your management can legitimately ask them how they are going to pay for this customization . 根据关系,您的管理层可以合理地询问他们如何支付此定制费用 It's going to cost your side a lot more to break HL7 to comply with them than it will for them to fix it. 破坏HL7以使其符合要求的代价要比修复它们的代价高得多。

Next, and perhaps most important, due to the nature of it's message content, HL7 has very strict completeness requirements, which they are fundamentally breaking . 接下来,也许是最重要的,由于其消息内容的性质,HL7具有非常严格的完整性要求,这些要求从根本上打破了 The Trading Partner needs to fully document this requirement to take ownership of it because there is a huge consequence, they are breaking tracing/tracking on you end. 贸易伙伴需要完整记录此要求才能拥有它,因为这将带来巨大的后果,因为它们正在破坏您的跟踪/跟踪

This means that it will be substantially more difficult to investigate and resolve messaging issues for you, not them . 这意味着要为您(而非他们)调查和解决消息传递问题将更加困难。 This might raise legal or compliance issues your side needs to be aware of. 这可能会引起您需要注意的法律或合规性问题。

So, provided you technical, medical and legal teams are all satisfied, the first thing I would try is a Pipeline Component that simply swaps the two values, MSH10 and MSA02. 因此,只要您对技术,医疗和法律团队都满意,我将尝试的第一件事是管道组件,该组件仅交换两个值MSH10和MSA02。 That way, they will receive both values. 这样,他们将获得两个值。

Finally, here's a novel solution. 最后,这是一个新颖的解决方案。 Since this is their problem, and a problem for every one of their trading partners, what if you offer help them fix it . 由于这是他们的问题,也是他们每个贸易伙伴的问题,因此,如果您提供帮助他们解决该问题,该怎么办。 All then need to do is what I suggested, swap MSH10 and MSA02 on the received message. 然后,所有要做的就是我建议的操作,在收到的消息上交换MSH10和MSA02。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM