簡體   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