Fully automate the BIML expansion

16 Jun, 2015 |
Brian

Brian is the person behind the dcode.bi site. He is keen on helping others be better at what they do around data and business intelligence.

With the MIST application from Varigence – this is possible through the command line util that ships with the installation.

When the installation of MIST has finished, you’ll find a new .exe-file in the installation folder called bimlc.exe.

This file is the core engine of the command line util.

According to the online documentation found here – the command line util is pretty straight forward.
The observant reader will notice that the link points to a documentation for hadron.exe – this is the old name for the same tool. See this documentation from Varigence.

The syntax is

1
2
3
`<br />
bimlc.exe -s="<sourcefile>" -t="<targetfolder>"<br />
` 

I’ve made a quick demo biml-project with below code:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
`<br />
<# var meta_connectionstring = "Provider=SQLNCLI11;Server=[myServer];Initial Catalog=[myDatabase];Integrated Security=SSPI;"; #><br />
<#<br />
DataTable tables;<br />
tables = ExternalDataAccess.GetDataTable(meta_connectionstring, "[dbo].[storedProcedureThatGivesMeTheData]");<br />
#><br />
<Biml xmlns="http://schemas.varigence.com/biml.xsd"><br />
<Connections><br />
<OleDbConnection Name="BIMLMETA" CreateInProject="true" ConnectionString="Provider=SQLNCLI11;Data Source=[myServer];Integrated Security=SSPI;Initial Catalog=[myDatabase]" /><br />
</Connections><br />
<Packages><br />
<# foreach(DataRow table in tables.Rows) { #><br />
<Package Name="SSIS package <#=table["schema"] #>_<#=table["table"] #>"><br />
</Package><br />
<# } #><br />
</Packages><br />
</Biml><br />
<#@ import namespace="System.Data" #><br />
<#@ import namespace="System.Linq"#><br />
` 

This file is called AutoCompile.biml, and I want to put the generated files in c:\AutoCompilePackages. Then the commandline would be:
<br /> bimlc.exe -s="c:\AutoCompile\AutoCompile.biml" -t="c:\AutoCompilePackages"<br />
When I then press ENTER the compiler starts up and does it’s thing:

BIML autocompile command

The output tells us that there are 9 packages created in each of its own projects.

I can find the compiled projects and packages in my defined output folder.

BIML Autocompile output

And the content of each folder.

BIML autocompile output content