我有一个业务流程来轮询来自数据库的数据(实际上是由ERP使用,因此我无法操纵此数据库中的数据),一旦轮询端口找到匹配的数据,它就会执行业务流程并将数据发送到第三方Web服务。
此编排中使用的逻辑很复杂,并且通常容易发生变化,因此使用适当的测试集来覆盖它是很重要的。我想了一会儿,甚至想到使用3种不同的组件,
第一部分(可以只有2个端口)从数据库中读取数据并放入文件夹
第二个(当前业务流程)使用文件端口读取数据并由第一个组件转储,并将生成的文件转储到另一个文件夹
第三个组件读取第二个组件转储的文件并将其发送到Web服务
但是我很少关注,
对于BizTalk而言,这是一种不受欢迎的做法吗?或者这是一种正常的做事方式吗?
性能 - 与当前的解决方案相比,它会显着变慢吗?
我们目前正在使用其中一个服务器运行测试/使用BTDF和Jenkins进行构建。有没有办法禁用组件1和3,运行测试并在构建完成后重新启用它们以使其正常运行?
答案 0 :(得分:2)
您可以使用MessageBox的内置功能来避免写入和读取文件的开销。首先是:https://msdn.microsoft.com/en-us/library/aa949234.aspx
有一个很好的Biztalk示例,它展示了如何使用这种方法将您的功能模块化为一组业务流程,这些业务流程独立地读取和写入MessageBox。它在前一页的底部被引用,被称为"直接绑定到业务流程中的MessageBox数据库"。
答案 1 :(得分:1)
我建议不要采用这种方法。您最好将三个业务流程直接绑定到MessageBox并订阅上一个业务流程发布的消息。您还可以创建订阅这些消息的发送端口,或者只使用管理控制台来调试消息。
您还可以为各种任务编写单元测试。如果您在.NET帮助程序库中执行某些工作,则可以使用一个普通的旧单元测试项目。您可能还想查看BizUnit框架(https://bizunit.codeplex.com/) - 需要做一些工作才能习惯,但它是编写BizTalk单元测试的绝佳资源。