如何在BizTalk中处理EDI文件后执行一次存储过程?

时间:2011-12-28 21:19:51

标签: biztalk edi

这更像是一般的架构问题;我有一些想法,但我认为我们不能成为唯一需要这样做的人。

当通过BizTalk处理HIPAA EDI文件时(比如837医疗保健声明),它被分成多个声明文件,并且它经历的任何编排都是同时运行的(好的,实际上)。在将每个声明存储到数据库之后,我只需要执行一次存储过程,因此proc显然无法从保存数据的相同业务流程中执行。

连连呢?谢谢!

比尔

3 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是在存储声明的数据表上使用插入触发器。

一方面,这是一个非常简单的解决方案。但是,您必须确保记录良好。内置于触发器中的功能可能难以维护。

答案 1 :(得分:0)

我可以考虑一些选项,但我不知道如何保证您处理所有文档而无需按顺序处理文档或首先检查文档以了解索赔的数量。一些选择:

  1. 不是让管道进行拆分,而是可以在业务流程中进行拆分并按顺序处理它们而不是并行处理它们。
  2. 再次让单个业务流程进行拆分,但在开始拆分之前计算文档数量,并有一个单独的流程来轮询要提交给数据库的文档数量。这将允许您至少异步触发所有子文档。
  3. 创建一个管道组件,在允许EDI组件进行拆分之前检查文档,与上面类似,对所有索赔进行单独的流程轮询。
  4. 似乎这里最大的问题是如果其中一个声明失败了你会怎么做,如果你只想在完整文件完成时提交,你需要一些回滚策略。

答案 2 :(得分:0)

我们决定使用单个(而不是多个)HIPAA架构,因此声明文件将转换为包含多个2000A循环的单个XML消息。然后我们遍历这些循环,映射它们,并在完成时触发proc。