2017-04-25 65 views
1

我對BizTalk並不陌生,但是這種情況有點新。我在BizTalk Orchestration中遇到以下情況,在業務流程內部執行BizTalk平面文件反彙編程序管道

  1. 我從其他來源獲取平面文件的路徑。
  2. 我想在編排中加載這個文件並通過執行管道來反彙編它。

我搜索了很多,但幾乎每個人都討論了在流水線內編排XML文檔。

我得到了下面的鏈接太多,但我不能得到有效的解決方案,到目前爲止,

Calling FlatFile pipeline inside orchestration

4 Different ways to process an XLANGMessage

當我實現了在上述鏈接的解決方案給出的,我得到錯誤「否拆卸舞臺組件可以識別數據

我也不想創建動態接收位置,因爲性能c onstrains。

下面是到目前爲止我的代碼,在流

    1. 加載文件的內容創建一個CustomBTXMessage實例作爲連接兩個建議。

    2. 負載流如下

      customBTXMessage =新CustomBTXMessage( 「MyMessageName」,

      Service.RootService.XlangStore.OwningContext); customBTXMessage.AddPart(string.Empty,「Body」);

      customBTXMessage [0] .LoadFrom(ms);

      return customBTXMessage.GetMessageWrapperForUserCode();

    我覺得這種情況在BizTalk世界中並不是什麼新東西。任何一個做過這件事的人都必須能夠快速幫助我。

  • +0

    A)爲什麼不能使用文件適配器來讀取文件? B)您是否必須在發現路徑的同一編排中處理該文件? –

    +0

    因此,文件可以在多個文件夾中,如果想開始一個新的編排,那麼我將不得不爲每個路徑創建新的文件接收位置。是的,我必須在同一個編排中處理文件。 – Prasoon

    +0

    您可以在平面文件(內容或文件名)和您所處的流程之間使用關聯嗎? –

    回答

    1

    這就是我會做的......或者至少先嚐試一下。

    1. 爲您獲得的每個平面文件類型創建接收端口和接收位置。
    2. 獲取文件列表。
    3. 在編排中,將文件移動到相應的接收位置。
    4. 平面文件像通常一樣反彙編Port Pipeline中的文件。
    5. 將文件接收到與第1步中的接收端口綁定的有序傳送端口的編排。
    6. 循環接收文件,檢查BTS.LastInterchagneMessage。
    7. 如果爲True,則退出該循環並返回步驟3.
    +0

    感謝約翰斯,我會採取這種方法,以防我明天得不到解決方案。 – Prasoon

    +0

    @Prasoon解決方案太... ...?爲了清楚起見,我會避免閱讀Orchestration中的文件,儘管這是可能的。這只是更復雜,更少的'BizTalk方式'。 –