如何仅为Web服务设置单独的Orchestration?

时间:2012-01-11 18:30:56

标签: biztalk biztalk-2009 biztalk-2010 biztalk2006r2

我创建了一个Orchestration,它已经为管理销售订单声明了一个Web服务。这工作正常,但我想将Web服务移出并进入它自己的业务流程,并能够在其他业务流程需要时调用业务流程。每个Web方法都分配了一个多部分消息。

期望我将不得不重新使用其他业务流程中的所有Web服务方法以及将来的任何需求。

  • 如何正确设置端口?
  • 为此目的创建特殊的业务流程或应用程序时,我应该使用哪些正确的方法和指南?
  • Orchestration会是什么样的?
  • 我是否通过'立即指定'
  • 在业务流程中设置端口

有问题的Web服务的Web方法

  1. getCustomerItemPrice(request / response)
  2. getitemListPrice(请求/回复)
  3. getItemPriceAndAvalability(请求/响应)
  4. getSalesOrder(request / response)
  5. getSalesOrderHistory(请求/响应)
  6. processSalesOrder(request / response)
  7. processSalesPriceAdjustment(请求/响应)
  8. 提示'按住Shift键同时单击超链接以查看我的Orchestration&的当前设置。网络服务。

    https://skydrive.live.com/redir.aspx?cid=533fd5a521c8c878&resid=533FD5A521C8C878!1857&parid=533FD5A521C8C878!1856

1 个答案:

答案 0 :(得分:0)

您遇到的问题是您的Web服务端口与现有业务流程紧密耦合,因为在业务流程执行期间,不同步骤会调用端口上的不同操作。因此,可能无法将整个Web服务端口移出此业务流程并进入单个其他业务流程。

如果您真的想从这个编排中抽象出这个Web服务调用,那么您将面临一个大型的重构​​练习。您可能需要至少执行以下某些步骤:

  • 将Web端口拆分为您要调用的每个服务操作的单独端口
  • 创建业务流程以包装每个服务调用。
  • 将服务操作请求和响应消息迁移到各自的业务流程
  • 定义新消息以传递到调用的业务流程,从而有效地将调用业务流程与新业务流程分离。

说实话,我不确定我是否能看到这样做的巨大价值,除非你期望大量重复使用这些组件。