0

我有一个 biml 文件,想使用 include 指令从另一个文件中引入 biml,该文件可以在其他地方重用,但是当我使用 BIDSHelper 检查错误时,它不断给出这个错误:

 There are multiple root elements

我在网上看到人们使用 include 指令的例子,但没有提到这个问题。我找不到任何有效的元素来包装我的 biml,它必须是这个块。

错误处理.biml:

<UnionAll Name="Union Errors">
<InputPaths>
    <InputPath OutputPathName="Lookup Site.Error" />
    <InputPath OutputPathName="Detail Level Source.Error" />
    <InputPath OutputPathName="Site to Integer.Error" />
</InputPaths>
</UnionAll>
<DerivedColumns Name="Error Metadata">
    <InputPath OutputPathName="Union Errors.Output" />
    <Columns>
        <Column Name="execution_guid" DataType="AnsiString" Length="50" CodePage="1252">(DT_STR,50,1252)@[User::ExecutionGUID]</Column>
        <Column Name="error_time" DataType="DateTime" >GETDATE()</Column>
        <Column Name="PackageID" DataType="AnsiString" Length="38" CodePage="1252">(DT_STR,38,1252)@[System::PackageID]</Column>
        <Column Name="DataflowID" DataType="AnsiString" Length="38" CodePage="1252">(DT_STR,38,1252)@[System::TaskID]</Column>
        <Column Name="Step_Name" DataType="AnsiString" Length="50" CodePage="1252">(DT_STR,50,1252)"QI Load"</Column>
        <Column Name="Task_Name" DataType="AnsiString" Length="50" CodePage="1252">(DT_STR,50,1252)"Detail Level Check"</Column>
    </Columns>
</DerivedColumns>

Master.biml 片段:

 <RowCount Name="Row Count" VariableName="User.CheckRowCount">
        <InputPath OutputPathName="Lookup Site.Match" />
    </RowCount>
    <#@ include file="ErrorHandling.biml" #>
 </Transformations>
4

1 回答 1

0

我找到了两种方法来让它工作 - 要么将文件的扩展名更改为 .txt 之类的东西,要么在使用 BIDSHelper“编译”文件并执行“检查 BIML 是否有错误”或“生成 SSIS”时根本不选择它包”。只需选择使用任何包含文件并包含正确 XML 的主文件。

于 2017-08-15T12:42:07.990 回答