2010-02-24 26 views
-1

我在我的BizTalk解決方案stuckd在一個地方,幫助的BizTalk orchestraion

我在這我是從SQL服務器(使用生成的schmema)獲取數據的orchestraion,而且它的連接來決定形狀,我已經檢查了我的數據庫狀態列之一(通過促進屬性,因爲它是sql生成schmea我不得不刪除MAXOCCENCE = UNBOUND), 所以現在如果狀態被批准,我需要將該行插入另一個數據庫,如果它是等待比在另一個數據庫,現在的問題是,如果我只在我的源表中的一行,它工作正常,但如果多於一行是在那裏,它會產生問題,

PLZ放在這個問題上的一些光,如果我在右邊無論是否,我不知道循環形狀,如何使用它,我假設我的SQL接收適配器將返回所有的行,如SP中生成架構返回所有行,所以我認爲在決定形狀每一行應檢查

thxs

回答

0

的SQL或存儲過程顯然是能夠返回多行的。如果這是可以接受的,那麼你必須瞭解SQL接收的工作方式。它可以根據模式指示返回一行到多行。通過更改數據行生成的模式的cardality,可以將其分解。

你說過你提倡使用它作爲決定形狀。這不是必需的。您可以使用xpath表達式將消息中的值提取到變量中,然後在決定中使用它。您必須修改架構以使其不具有多個數據行的原因是,您只能提升每條消息出現一次的值。由於原始模式對其可能具有的行數無限制,因此它不知道哪個行用於提升的值。

這裏真正的問題是您希望數據一次通過一行。你有兩種選擇:

  1. 做Saravana Kumar上面提到。
  2. 調用一次只返回一行的存儲過程。

項目#2將需要對接收端口進行一些調整,以確保只要數據正在返回,就會重複調用Stored Proc。如果你不這樣做,你將受到每分鐘輪詢週期數量的限制。