2017-08-15 176 views
0

我有一個BIML文件,並要使用include指令在BIML把從可以在其他地方得到重用另一個文件,但它一直給這個錯誤,當我做檢查錯誤與BIDSHelper:如何在包含多個根節點時包含biml文件?

There are multiple root elements 

我使用include指令在線查看示例,但未提及此問題。我無法找到任何有效的元素來包裹我的biml,它必須是這個塊。

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

回答

0

我發現兩種方法得到這個工作 - 無論是文件的擴展名更改爲類似.txt或當你使用BIDSHelper「編譯」你的文件並做「檢查BIML錯誤」或「生成SSIS包」時,不要選擇它。只需選擇使用任何包含文件的主要文件幷包含正確的XML。

+0

重命名爲'.txt'是個不錯的主意。不選擇它是正確的方法,因爲包含的文件將被選擇編譯的參考文件引用。 – iamdave