繁体   English   中英

将消息从webservice推送到biztalk业务流程

[英]push message to biztalk orchestration from webservice

我创建了一个BizTalk业务流程,它将消息发送到wcf webservice,webservice在sharepoint上创建一个任务,业务流程接收响应(只是一个字符串“succes”)。 现在,当有人将任务更改为“完成”时,我还在sharepoint中创建了一个eventhandler,可以执行某些代码。 我希望能够在某人“完成”任务时向biztalk业务流程发送消息。 我怎样才能做到这一点?

我可以从sharepoint调用webservice,但是如何将消息推送到biztalk业务流程? 如果我在我的业务流程中“使用wcf服务”,则会创建一个发送 - 接收端口,但我只想从Web服务“接收”该消息。 因此,Web服务必须将消息推送到业务流程。

谢谢

如果我理解正确,您使用WCF服务将任务发送到SharePoint(您可能可以使用BizTalk SharePoint适配器直接执行此操作 - 我已经使用它,但我认为这是它可以做的事情做)。 SharePoint中的事件处理程序在任务标记为完成时触发,然后将消息发送回BizTalk。

要将消息返回到BizTalk,您需要创建WCF接收位置。 此接收位置可以是单向或双向。 这些都是双向接收端口。 端口通过WCF从SharePoint接收消息,然后将repsonse发送回SharePoint以确认收据。 如果BizTalk仅发送回ACK,则认为它是单向接收端口。 如果它将ACK与消息一起发回,则认为它是双向接收端口。

简而言之,您需要在业务流程中设置第二个接收端口。 将其发布为WCF Web服务。 您还需要设置关联,以便消息可以找到返回正确的业务流程实例的路径。 这是一篇关于相关性的好文章: http//mstecharchitect.blogspot.com/2009/03/message-correlation-in-biztalk-2006.html

成功关联的关键是在每条消息中都有一个提升属性,可用于将它们绑定回togeather。 因此,您发送给SharePoint的任务应该具有唯一的TaskID(或其他)。 SharePoint的响应应该在repsonse中具有相同的提升属性。

只是为了添加到Chris的帖子(+1) - BizTalk非常灵活地将您从Sharepoint中的工作流程中的成功(或失败)返回到业务流程 - 您可以使用从使用文件适配器在目录中编写文件的任何内容,通过电子邮件将其发送到SMTP接收端口,在数据库中写入记录以及使用SQL适配器从BizTalk进行轮询。

要将业务流程(或接收端口)公开为WCF服务,最简单的方法是使用WCF发布向导(Visual Studio中的“工具| WCF发布向导”)。 这将指导您在BizTalk中创建端口,并在IIS下发布Web服务和Mex / WSDL。 通过此,您可以从Sharepoint应用程序添加Web /服务参考。 一个问题是确保IIS下的应用程序正在运行。 请注意,也可以让BizTalk直接托管WCF,但这有点复杂。

您尝试使用的Web服务是什么样的? 它有返回值吗? 您可以像在其他情况下一样发回“成功”。

暂无
暂无

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

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