我必须解析一个只包含行项目数据的CSV平面文件,没有可识别的 Headers 记录,有点像这样:
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模式执行批处理 . 我宁愿保持严肃认真 .
1 回答
使用 Map 从平面转换为层次结构:
使用平面文件架构向导为平面文件创建架构
使用管道和平面文件反汇编程序获取输入消息
为所需的输出xml创建架构
创建一个映射以将平面文件消息转换为所需的输出消息
我相信你可以在 Map 中使用xsl你可以做grouping