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 平面文件接收管道将其转换为分层架构,在第一个字段上分组,订单号:

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 记录,未批处理,然后在另一个 Orchestration 中使用 Gather 模式执行批处理。我宁愿保持简单。

4

1 回答 1

0

使用地图从平面转换为分层:

  1. 使用平面文件架构向导为您的平面文件创建架构
  2. 使用管道和平面文件反汇编器获取输入消息
  3. 为所需的输出 xml 创建架构
  4. 创建一个映射以将平面文件消息转换为所需的输出消息

我相信你可以在地图中使用 xsl 你可以进行分组

于 2013-02-14T20:55:20.583 回答