我已经创建了一个BizTalk编排,它向wcf wcf服务发送一条消息,该wcf服务在sharepoint上创建一个任务,然后编排接收一个响应(只是一个字符串"succes")。现在,我还在sharepoint中创建了一个eventhandler,当有人更改任务以“完成”时,一些代码可以执行。我希望能够在有人“完成”任务时向biztalk编排发送消息。我该怎么做呢?
我可以从sharepoint调用webservice,但如何将消息推送到biztalk业务流程?如果我在编排中“使用wcf服务”,则会创建一个发送-接收端口,但我只想“接收”来自wcf服务的消息。因此,the服务必须将消息推送到编排。
谢谢
发布于 2010-09-10 00:20:38
如果我理解正确的话,您可以使用WCF服务将任务发送到SharePoint (您可以使用BizTalk SharePoint适配器直接执行此操作-我从未使用过它,但我认为这是它可以做的事情)。当任务被标记为完成时,SharePoint中的事件处理程序会触发,然后向BizTalk发回一条消息。
要将消息返回到BizTalk,您需要创建一个WCF接收位置。此接收位置可以是单向的,也可以是双向的。这两个实际上都是双向接收端口。端口通过WCF接收来自SharePoint的消息,然后向SharePoint发回响应以确认接收。如果BizTalk仅发回确认,则它会将其视为单向接收端口。如果它将ACK与消息一起发回,它会认为它是一个双向接收端口。
因此,简而言之,您需要在编排中设置第二个接收端口。将其发布为WCF web服务。您还需要设置关联,以便消息可以找到返回到正确编排实例的方法。这里有一篇关于相关性的很好的博客文章:http://mstecharchitect.blogspot.com/2009/03/message-correlation-in-biztalk-2006.html。
成功关联的关键是在每条消息中都有一个promoted属性,该属性可用于将它们重新绑定在一起。所以你发送给SharePoint的任务应该有一个唯一的TaskID (或者别的什么)。来自SharePoint的响应应该在响应器中具有相同的promoted属性。
发布于 2010-09-10 16:33:13
为了补充一下Chris的帖子(+1) - BizTalk非常灵活地将Sharepoint中的工作流的成功(或失败)返回到编排-你可以使用任何东西,从使用文件适配器在目录中写入文件,到通过电子邮件将其发送到SMTP接收端口,再到使用SQL适配器在数据库中写入记录并从BizTalk轮询。
要将业务流程(或其中的接收端口)公开为WCF服务,最简单的方法是使用“WCF发布向导”( Visual Studio中的“工具”|“WCF发布向导”)。这将引导您在BizTalk中创建端口,并在IIS下发布web服务和Mex / WSDL。在此基础上,您可以从Sharepoint应用程序添加Web /服务引用。一个陷阱是确保IIS下的应用程序正在运行。请注意,也可以让BizTalk直接托管WCF,但这有点复杂。
发布于 2010-09-09 20:31:51
您尝试使用的web服务是什么样子的?它有返回值吗?您可以像在其他情况下一样返回"success“。
https://stackoverflow.com/questions/3676054
复制相似问题