2009-06-26 35 views
2

從BizTalk中的平面文件中刪除標題行的最簡單方法是什麼?我通過爲標題行(和一個正文)創建單獨的模式來實現這一點,然後將'配置管道'對話框中的HeaderSpecName屬性設置爲我剛剛創建的標題模式,然後將PreserveHeader屬性設置爲false。然而,我的問題是,通過這個解決方案,我需要創建一個除需要存在之外什麼也不做的模式,因此我可以刪除標題行。從BizTalk中的平面文件中刪除標題

回答

3

我相信你所說的是推薦的方式來做你所問的。我只是在我正在開發的一個項目上做這件事,並選擇了額外的模式。

另一種選擇是編寫自己的custom pipeline component用於在平面文件拆裝器之前執行的反彙編階段。解碼階段也會起作用,但似乎反彙編階段是爲這種類型的工作制作的。

第二個選項將使得標題行的刪除更加通用,並可用於多種不同的模式,因此您不必爲每個平面文件模式創建單獨的標頭模式。

+0

感謝您的回覆。它證實了我的懷疑。我想我希望沒有必要創建一個模式,而是「忽略第一行/頭」。 – 2009-07-10 18:28:00

2

你總是可以解析標題行而不是映射它。

3

我建議通過平面文件模式嚮導來做到這一點;將第一條記錄定義爲單數記錄,然後將其他記錄定義爲重複記錄。那麼無論您使用哪種地圖或轉換,您都可以忽略標題記錄。您也可以在忽略頭部記錄時忽略它,但我更願意在我的模式中定義所有內容...

請查看幫助和微軟教程,也有一篇像樣的文章代碼項目,它包含標識標題記錄。請注意,如果您知道標題記錄的絕對位置(如:「始終是第一行」),則不需要混淆記錄標記。

http://www.codeproject.com/Articles/13706/Creating-Flat-File-schemas-using-the-BizTalk-Serve

0

架構存在的原因有很多。其中一個原因就是要捕捉有效地意味着協議的一方產生的信息結構。因此即使您不使用這些字段,也可以很好地捕獲架構。

0

我不認爲PreserveHeader按照您的預期行事。這個屬性簡單地決定了頭部的值是否被提升到了反彙編器發出的XML消息的上下文中。