0

次のように、認識可能なヘッダーレコードがなく、ラインアイテムデータのみを含むCSVフラットファイルを解析する必要があります。

930001,14-02-2013,100.00,1,Line 1,2,10.00,20.00
930001,14-02-2013,100.00,2,Line 2,2,20.00,40.00
930001,14-02-2013,100.00,3,Line 3,1,40.00,40.00
930002,13-02-2013,200.00,1,Line 1,10,10.00,100.00
930002,13-02-2013,200.00,2,Line 2,5,20.00,100.00
930003,14-02-2013,100.00,1,Line 1,3,20.00,60.00
930003,14-02-2013,100.00,2,Line 2,2,20.00,40.00

フィールドがどこにあるか、順番に:

Order No,Order Date,Order Amt,Line No,Line Desc,Line Qty,Unit Price,Line Price

BizTalk Flat File受信パイプラインを使用して、これを階層スキーマに変換し、最初のフィールドである注文番号でグループ化します。

Order_Batch
  + Order
    + OrderLine

フラットファイル受信を介してグループ化操作を実行する方法はありますか?上記の例では、最初の3行(注文番号= 930001)

<OrderBatch>
  <Order>
    <OrderLine>
      <OrderNo>930001</OrderNo>
      <other_fields />
      <LineNo>1</LineNo>
      <other_fields_etc />
    </OrderLine>
    <OrderLine>
      <OrderNo>930001</OrderNo>
      <other_fields />
      <LineNo>2</LineNo>
      <other_fields_etc />
    </OrderLine>
    <OrderLine>
      <OrderNo>930001</OrderNo>
      <other_fields />
      <LineNo>2</LineNo>
      <other_fields_etc />
    </OrderLine>
  </Order>
  <Order> ... Details of Order 930002 ... </Order>
  <Order> ... Details of Order 930003 ... </Order>
</OrderBatch>

現在利用できる唯一のオプションは、ファイル全体をOrderLineレコードのセットとして受け入れ、バッチ処理を解除してから、別のオーケストレーションでGatherパターンを使用してバッチ処理を実行することです。私はそれを真剣にシンプルに保ちたいと思います。

4

1 に答える 1

0

マップを使用してフラットから階層に変換します。

  1. フラット ファイル スキーマ ウィザードを使用してフラット ファイルのスキーマを作成する
  2. パイプラインとフラット ファイル逆アセンブラーを使用して入力メッセージを取得する
  3. 目的の出力 xml のスキーマを作成します
  4. フラット ファイル メッセージを目的の出力メッセージに変換するためのマップを作成する

グループ化を行うことができるマップでxslを使用できると思います

于 2013-02-14T20:55:20.583 に答える