需要输入一个" Ragged Right"使用Biztalk将文件转换为一些目标位置,如SQL数据库和CRM Web服务。
文件来自以下格式
Column1(10characters)Column2(13characters)Column3(17Chars.)Column4(till Row deliminator CRLF)
在平面文件架构向导的Biztalk中,哪里可以设置最后一列没有固定宽度?
我知道它可以在SSIS中运行,但这不是一个选择。我们现在需要使用Biztalk2010
执行此操作答案 0 :(得分:3)
这是一个更好的答案
来自博客Early Termination with Position Flat Files
要使BizTalk识别出早期的终结符,您需要在文本编辑器中打开您的模式,并将allow_early_termination =“true”添加到xs:annotation节点。 BizTalk XSD编辑器中未公开此属性。
这篇文章可能与BizTalk 2004有关,但它仍然适用于BizTalk 2013 R2。因此,只需右键单击您的模式,选择打开方式,然后选择XML(文本)编辑器并按上述方式进行更改。
更新:刚刚在Visual Studio 2013中签入,现在可以在架构属性中使用这些属性
答案 1 :(得分:2)
解决问题的一种方法。
给出像
这样的示例文件Column1 Column2 Column3 Column4 {CR}{LF}
123456789012345678901231234567890123456712345678901234567890{CR}{LF}
Test1A Test1B Test1C Test1D{CR}{LF}
Test2A Test2B Test2C Testing2D{CR}{LF}
通过编辑架构,将最后一列设置为“位置长度1”和“无限制最大值”。
您的XML输出如下所示。然后,您可以使用累积功能将范围参数设置为1,使用地图重新组合最后一列。 注意:但它不会保留空白区域,这可能是需要解决的问题。
XML输出
<Ragged xmlns="http://Scratch.Ragged">
<Ragged_Child1 xmlns="">
<Column1>Column1</Column1>
<Column2>Column2</Column2>
<Column3>Column3</Column3>
<Column4>C</Column4>
<Column4>o</Column4>
<Column4>l</Column4>
<Column4>u</Column4>
<Column4>m</Column4>
<Column4>n</Column4>
<Column4>4</Column4>
<Column4/>
<Column4/>
<Column4/>
<Column4/>
<Column4/>
<Column4/>
<Column4/>
<Column4/>
<Column4/>
<Column4/>
<Column4/>
<Column4/>
<Column4/>
</Ragged_Child1>
<Ragged_Child1 xmlns="">
<Column1>1234567890</Column1>
<Column2>1234567890123</Column2>
<Column3>12345678901234567</Column3>
<Column4>1</Column4>
<Column4>2</Column4>
<Column4>3</Column4>
<Column4>4</Column4>
<Column4>5</Column4>
<Column4>6</Column4>
<Column4>7</Column4>
<Column4>8</Column4>
<Column4>9</Column4>
<Column4>0</Column4>
<Column4>1</Column4>
<Column4>2</Column4>
<Column4>3</Column4>
<Column4>4</Column4>
<Column4>5</Column4>
<Column4>6</Column4>
<Column4>7</Column4>
<Column4>8</Column4>
<Column4>9</Column4>
<Column4>0</Column4>
</Ragged_Child1>
<Ragged_Child1 xmlns="">
<Column1>Test1A</Column1>
<Column2>Test1B</Column2>
<Column3>Test1C</Column3>
<Column4>T</Column4>
<Column4>e</Column4>
<Column4>s</Column4>
<Column4>t</Column4>
<Column4>1</Column4>
<Column4>D</Column4>
</Ragged_Child1>
<Ragged_Child1 xmlns="">
<Column1>Test2A</Column1>
<Column2>Test2B</Column2>
<Column3>Test2C</Column3>
<Column4>T</Column4>
<Column4>e</Column4>
<Column4>s</Column4>
<Column4>t</Column4>
<Column4>i</Column4>
<Column4>n</Column4>
<Column4>g</Column4>
<Column4>2</Column4>
<Column4>D</Column4>
</Ragged_Child1>
</Ragged>
<强>地图
地图输出
<ns0:Ragged xmlns:ns0="http://Scratch.Ragged">
<Ragged_Child1>
<Column1>Column1</Column1>
<Column2>Column2</Column2>
<Column3>Column3</Column3>
<Column4>Column4</Column4>
</Ragged_Child1>
<Ragged_Child1>
<Column1>1234567890</Column1>
<Column2>1234567890123</Column2>
<Column3>12345678901234567</Column3>
<Column4>12345678901234567890</Column4>
</Ragged_Child1>
<Ragged_Child1>
<Column1>Test1A</Column1>
<Column2>Test1B</Column2>
<Column3>Test1C</Column3>
<Column4>Test1D</Column4>
</Ragged_Child1>
<Ragged_Child1>
<Column1>Test2A</Column1>
<Column2>Test2B</Column2>
<Column3>Test2C</Column3>
<Column4>Testing2D</Column4>
</Ragged_Child1>
</ns0:Ragged>