是否可以在Biztalk中设置平面文件源组件以读取" Ragged Right"文件?

时间:2016-06-16 06:43:11

标签: biztalk biztalk-2010 flat-file

需要输入一个" Ragged Right"使用Biztalk将文件转换为一些目标位置,如SQL数据库和CRM Web服务。

文件来自以下格式

Column1(10characters)Column2(13characters)Column3(17Chars.)Column4(till Row deliminator CRLF)

在平面文件架构向导的Biztalk中,哪里可以设置最后一列没有固定宽度?

我知道它可以在SSIS中运行,但这不是一个选择。我们现在需要使用Biztalk2010

执行此操作

2 个答案:

答案 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中签入,现在可以在架构属性中使用这些属性

enter image description here

答案 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>

<强>地图

Map

地图输出

<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>