<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Biml on Cathrine Wilhelmsen</title>
    <link>https://www.cathrinewilhelmsen.net/tags/biml/</link>
    <description>Recent content in Biml on Cathrine Wilhelmsen</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>© Cathrine Wilhelmsen</copyright>
    <lastBuildDate>Tue, 01 Dec 2020 00:00:00 +0100</lastBuildDate>
    <atom:link href="https://www.cathrinewilhelmsen.net/tags/biml/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Biml Tips and Tricks (SQLBits 2019 Session Recording)</title>
      <link>https://www.cathrinewilhelmsen.net/biml-tips-and-tricks-sqlbits-2019/</link>
      <pubDate>Thu, 15 Aug 2019 16:33:31 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/biml-tips-and-tricks-sqlbits-2019/</guid>
      <description>&lt;p&gt;At SQLBits 2019, I presented my &lt;strong&gt;Biml Tips and Tricks: Not Just for SSIS Packages!&lt;/strong&gt; session. The &lt;a href=&#34;https://sqlbits.com/Sessions/Event18/Biml_Tips_and_Tricks_Not_just_for_SSIS_packages_&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;session recording&lt;/a&gt; has been available for many months, but I only just now realized I never blogged abut it 😊 You can view the slide deck on my &lt;a href=&#34;https://www.slideshare.net/CathrineWilhelmsen/biml-tips-and-tricks-not-just-for-ssis-packages-sqlbits-2019&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;SlideShare&lt;/a&gt; and download my &lt;a href=&#34;https://www.cathrinewilhelmsen.net/Biml&#34;&gt;Biml Demos&lt;/a&gt; if you want to dig into my code examples.&lt;/p&gt;&#xA;&lt;h2 id=&#34;biml-tips-and-tricks-not-just-for-ssis-packages-session-recording&#34;&gt;Biml Tips and Tricks: Not Just for SSIS Packages! Session Recording&lt;/h2&gt;&#xA;&lt;p&gt;Watch the full video on the &lt;a href=&#34;https://sqlbits.com/Sessions/Event18/Biml_Tips_and_Tricks_Not_just_for_SSIS_packages_&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;SQLBits website&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://sqlbits.com/Sessions/Event18/Biml_Tips_and_Tricks_Not_just_for_SSIS_packages_&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/2019/CathrineWilhelmsenSQLBits2019BimlTipsAndTricksRecording.jpg&#34; srcset=&#34;https://www.cathrinewilhelmsen.net/images/2019/CathrineWilhelmsenSQLBits2019BimlTipsAndTricksRecording_Thumbnail.jpg 500w, https://www.cathrinewilhelmsen.net/images/2019/CathrineWilhelmsenSQLBits2019BimlTipsAndTricksRecording.jpg 1000w&#34; sizes=&#34;(max-width: 500px) 100vw, 1000px&#34; alt=&#34;Biml Tips and Tricks Session Recording (SQLBits 2019).&#34; width=&#34;1000&#34; height=&#34;555&#34; class=&#34;border width-500&#34; style=&#34;background-color: #0f0b13;&#34; loading=&#34;lazy&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;You can increase or decrease the speed, enable closed captioning, and even download the video for offline viewing.&lt;/p&gt;&#xA;&lt;p&gt;(&lt;em&gt;If you want a laugh, I recommend watching in 2x speed with the not-quite-accurate captions. You&amp;rsquo;ll see gems like &amp;ldquo;This is Bemmel. Tips and tricks not just for exercise packages!&amp;rdquo;&lt;/em&gt; 🤣)&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Generating SELECT statements in Biml using GetColumnList</title>
      <link>https://www.cathrinewilhelmsen.net/sql-select-using-biml-getcolumnlist/</link>
      <pubDate>Mon, 29 Apr 2019 11:25:20 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/sql-select-using-biml-getcolumnlist/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;In a previous blog post, we looked at how to &lt;a href=&#34;https://www.cathrinewilhelmsen.net/generating-sql-using-biml&#34;&gt;generate SQL using Biml&lt;/a&gt;. (&lt;em&gt;If you haven&amp;rsquo;t read that post, you may want to start there and then come back here.&lt;/em&gt;) In this post, we will go through how to generate &lt;strong&gt;SELECT&lt;/strong&gt; statements using the Biml column method &lt;strong&gt;GetColumnList&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;using-biml-column-methods&#34;&gt;Using Biml column methods&lt;/h2&gt;&#xA;&lt;p&gt;Biml column methods return &lt;em&gt;code fragments&lt;/em&gt;. These code fragments can be used as building blocks to generate custom T-SQL statements. For example, the GetColumnList method returns a &lt;em&gt;list of columns&lt;/em&gt;, separated by commas, that you can use in a SELECT statement. You can filter the columns and customize the output by passing parameters.&lt;/p&gt;&#xA;&lt;h2 id=&#34;examples-of-getcolumnlist-code-fragments&#34;&gt;Examples of GetColumnList code fragments&lt;/h2&gt;&#xA;&lt;p&gt;If you have a table with three columns, the default output will look something like this:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-biml&#34; data-lang=&#34;biml&#34;&gt;[PersonID], [FirstName], [LastName]&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But what if you don&amp;rsquo;t want to select &lt;em&gt;all&lt;/em&gt; three columns? Or what if you want to use an alias for your table? No problem! The customized output can look something like this instead:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-biml&#34; data-lang=&#34;biml&#34;&gt;p.FirstName, p.LastName&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We will go through the different ways of customizing the output a little later in this post.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Generating SQL using Biml (T-SQL Tuesday #110)</title>
      <link>https://www.cathrinewilhelmsen.net/generating-sql-using-biml/</link>
      <pubDate>Tue, 08 Jan 2019 22:07:19 +0100</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/generating-sql-using-biml/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://garrybargsley.com/2019/01/01/t-sql-tuesday-110-automate-all-the-things/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/sql/TSQLTuesdayCircle.svg&#34; alt=&#34;T-SQL Tuesday logo.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The first &lt;a href=&#34;http://tsqltuesday.com/about/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;T-SQL Tuesday&lt;/a&gt; of 2019 is hosted by Garry Bargsley (&lt;a href=&#34;https://twitter.com/gbargsley&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@gbargsley&lt;/a&gt;), and the topic is &amp;ldquo;&lt;strong&gt;&lt;a href=&#34;https://garrybargsley.com/2019/01/01/t-sql-tuesday-110-automate-all-the-things/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Automate All the Things&lt;/a&gt;&lt;/strong&gt;&amp;rdquo;. Garry wants to know what this phrase means to each of us. What do we want to automate? What is our go-to technology for automation? To me, this was super easy. Surprise, surprise! It&amp;rsquo;s &lt;a href=&#34;https://www.cathrinewilhelmsen.net/biml&#34;&gt;Biml&lt;/a&gt;, of course 🤓 Since this post is part of T-SQL Tuesday, I wanted to go back to the basics and write about how you can generate SQL using Biml. But first, a little bit of background for those who are not that familiar with Biml.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Don&#39;t Repeat Your Biml - C# Extension Methods</title>
      <link>https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-extension-methods/</link>
      <pubDate>Tue, 28 Aug 2018 17:56:19 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-extension-methods/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;In a previous blog post, we looked at how to use &lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-csharp-vb-code-files&#34;&gt;C#/VB Code Files in Biml&lt;/a&gt;. There are several benefits to moving custom C# code into separate files. It allows you to reuse that code across multiple projects and solutions. You can maintain the code in your editor of choice, taking advantage of intellisense and syntax highlighting. And finally, my personal favorite: you can create custom &lt;em&gt;extension methods&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In this post, we will look at how to simplify our Biml projects by creating and using C# extension methods. We will build on the examples from the previous &lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-csharp-vb-code-files&#34;&gt;C#/VB Code Files in Biml&lt;/a&gt; blog post.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Biml for OData Source and Connection Manager in SSIS</title>
      <link>https://www.cathrinewilhelmsen.net/biml-odata-source-connection-manager/</link>
      <pubDate>Tue, 24 Jul 2018 11:39:48 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/biml-odata-source-connection-manager/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;As of July 2018, there is no built-in Biml support for OData. To work with OData in Biml, you have to create a custom source and connection manager. This requires more Biml code than built-in functions like OleDbSource and may look a little overwhelming at first. But don&amp;rsquo;t worry! You don&amp;rsquo;t have to start from scratch.&lt;/p&gt;&#xA;&lt;p&gt;In this blog post, we will first look at the properties of the OData Connection Manager and how to script it in Biml. Then, we will do the same for the OData Source. Finally, we will tie it all together and create a complete SSIS package that you can use a starting point for your own projects.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Biml Annotations and ObjectTags</title>
      <link>https://www.cathrinewilhelmsen.net/biml-annotations-objecttags/</link>
      <pubDate>Thu, 08 Feb 2018 22:18:15 +0100</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/biml-annotations-objecttags/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelTagCircle.svg&#34; alt=&#34;Biml Wheel with a Tag hanging from it.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;Biml objects have many built-in attributes. For example, all Tables have &lt;em&gt;SchemaName&lt;/em&gt; and all Packages have &lt;em&gt;ProtectionLevel&lt;/em&gt;. When your Biml solution starts to grow, you will quickly see the need for adding additional metadata that can be used in other Biml files. A common use case in Data Warehouse Staging projects is to store the source schema and source table name on your staging table objects. This allows you to use the source metadata in a &lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-tiered-biml-files&#34;&gt;higher tier Biml file&lt;/a&gt; that generates the SSIS packages to load the tables. To store and use this additional metadata, you can use Biml Annotations or ObjectTags.&lt;/p&gt;&#xA;&lt;p&gt;Biml Annotations and ObjectTags are both &lt;em&gt;Key/Value pairs&lt;/em&gt;. Annotations are String/String pairs intended for storing simple text metadata, while ObjectTags are String/Object pairs that can also store more complex metadata in .NET objects.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Don&#39;t Repeat Your Biml - Tiered Biml Files</title>
      <link>https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-tiered-biml-files/</link>
      <pubDate>Mon, 22 Jan 2018 12:00:39 +0100</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-tiered-biml-files/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;Many Biml solutions start off very simple, with just a single Biml file that generates a few SSIS packages. Most developers quickly see the need for a more complex solution for multiple sources. One way to reuse code and apply the &lt;a href=&#34;https://en.wikipedia.org/wiki/Don%27t_repeat_yourself&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Don&amp;rsquo;t Repeat Yourself&lt;/a&gt; software engineering principle in Biml is to use &lt;em&gt;Tiered Biml Files&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In addition to using Tiered Biml Files, there are four other main ways you can avoid repeating your Biml code:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-biml-include-files&#34;&gt;Include Files&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-callbimlscript&#34;&gt;CallBimlScript&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-csharp-vb-code-files&#34;&gt;C#/VB Code Files&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Transformers (&lt;em&gt;&lt;a href=&#34;http://varigence.com/BimlStudio&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BimlStudio&lt;/a&gt; feature only&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In this post, we will look at how to use Tiered Biml Files.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Biml Book is here!</title>
      <link>https://www.cathrinewilhelmsen.net/the-biml-book-is-here/</link>
      <pubDate>Fri, 22 Sep 2017 00:47:43 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/the-biml-book-is-here/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/TheBimlBook.jpg&#34; alt=&#34;Cover of The Biml Book.&#34; width=&#34;132&#34; height=&#34;200&#34; class=&#34;alignleft border&#34; style=&#34;background-color: #0b0b09;&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;Woohoo! &lt;strong&gt;The Biml Book: Business Intelligence and Data Warehouse Automation&lt;/strong&gt; is now available for pre-order from &lt;a href=&#34;https://www.amazon.com/Biml-Book-Intelligence-Warehouse-Automation/dp/1484231341&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Amazon&lt;/a&gt; and &lt;a href=&#34;https://www.apress.com/us/book/9781484231340&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Apress&lt;/a&gt;! 🥳&lt;/p&gt;&#xA;&lt;p&gt;This is the first book I&amp;rsquo;ve co-authored, and I have to admit it&amp;rsquo;s a very strange feeling to see my name on the cover of a book. Am I allowed to say I&amp;rsquo;m quite proud? Oh, I&amp;rsquo;ll say it anyway. I&amp;rsquo;m proud and very honored to have written this book with such a talented group of people: Andy Leonard (&lt;a href=&#34;https://twitter.com/AndyLeonard&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@AndyLeonard&lt;/a&gt;), Scott Currie (&lt;a href=&#34;https://twitter.com/scottcurrie&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@scottcurrie&lt;/a&gt;), Ben Weissman (&lt;a href=&#34;https://twitter.com/bweissman&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@bweissman&lt;/a&gt;), Bill Fellows (&lt;a href=&#34;https://twitter.com/billinkc&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@billinkc&lt;/a&gt;), Martin Andersson (&lt;a href=&#34;https://twitter.com/frysdisken&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@frysdisken&lt;/a&gt;), Peter Avenant (&lt;a href=&#34;https://twitter.com/PeterAvenant&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@PeterAvenant&lt;/a&gt;), Simon Peck (&lt;a href=&#34;https://twitter.com/biguynz&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@biguynz&lt;/a&gt;), Reeves Smith (&lt;a href=&#34;https://twitter.com/SQLReeves&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@SQLReeves&lt;/a&gt;), Raymond Sondak (&lt;a href=&#34;https://twitter.com/raymondsondak&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@raymondsondak&lt;/a&gt;) and Jacob Alley.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create your own BimlExpress Keyboard Shortcuts</title>
      <link>https://www.cathrinewilhelmsen.net/bimlexpress-keyboard-shortcuts/</link>
      <pubDate>Thu, 13 Apr 2017 13:43:09 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/bimlexpress-keyboard-shortcuts/</guid>
      <description>&lt;p&gt;Are you tired of right-clicking on your Biml files to Check Biml for Errors or to Generate SSIS Packages? Did you know that you can create your own BimlExpress Keyboard Shortcuts? 🤓&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why can&#39;t I create SSIS Project Parameters from Biml?</title>
      <link>https://www.cathrinewilhelmsen.net/cant-create-ssis-project-parameters-from-biml/</link>
      <pubDate>Fri, 27 May 2016 13:01:45 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/cant-create-ssis-project-parameters-from-biml/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bideveloperextensions.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BIDS Helper&lt;/a&gt; and &lt;a href=&#34;https://www.varigence.com/BimlExpress&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BimlExpress&lt;/a&gt; do not support creating SSIS project parameters from Biml out of the box. There are workarounds (and I have previously blogged about my &lt;a href=&#34;https://www.cathrinewilhelmsen.net/create-ssis-project-parameters-biml-bids-helper&#34;&gt;solution for creating project parameters from Biml&lt;/a&gt;), but &lt;em&gt;why&lt;/em&gt; is this not a standard feature in BIDS Helper or BimlExpress? Many people have asked about this, so I sat down with Biml creator &lt;a href=&#34;http://www.varigence.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Scott Currie&lt;/a&gt; (&lt;a href=&#34;https://twitter.com/ScottCurrie&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@ScottCurrie&lt;/a&gt;) to get the full story.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-doesnt-bids-helper-or-bimlexpress-emit-ssis-project-parameters-from-biml&#34;&gt;Why doesn&amp;rsquo;t BIDS Helper or BimlExpress emit SSIS project parameters from Biml?&lt;/h2&gt;&#xA;&lt;p&gt;Well, technically it &lt;em&gt;could&lt;/em&gt;, but it &lt;em&gt;shouldn&amp;rsquo;t&lt;/em&gt;. The user experience would have serious issues, leading to confusion, frequent errors, and the potential for data loss. How can that be?&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Get Started with BimlExpress</title>
      <link>https://www.cathrinewilhelmsen.net/get-started-bimlexpress/</link>
      <pubDate>Thu, 21 Apr 2016 17:25:08 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/get-started-bimlexpress/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlExpressCircle.svg&#34;&gt;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlExpressCircle.svg&#34; alt=&#34;BimlExpress Logo.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Say welcome to BimlExpress - the newest, shiniest and completely &lt;em&gt;free&lt;/em&gt; Biml toy! 🥳 I first mentioned this at &lt;a href=&#34;https://www.slideshare.net/CathrineWilhelmsen/biml-for-beginners-speed-up-your-ssis-development-sqlsaturday-vienna&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;SQLSaturday Vienna 2016&lt;/a&gt; and have been waiting for the official release since then. I&amp;rsquo;m very happy that I can now send you all over to Varigence&amp;rsquo;s website to &lt;a href=&#34;https://www.varigence.com/BimlExpress&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;download&lt;/a&gt; the Visual Studio Extension!&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-bimlexpress&#34;&gt;What is BimlExpress?&lt;/h2&gt;&#xA;&lt;p&gt;BimlExpress is a free Visual Studio add-in for working with Biml in your SSIS projects. You can add and edit Biml files, and generate SSIS packages from Biml. The code editor has syntax coloring, error highlighting, Intellisense and a preview pane.&lt;/p&gt;&#xA;&lt;p&gt;If you are already using &lt;a href=&#34;https://bideveloperextensions.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BI Developer Extensions&lt;/a&gt; (previously known as &lt;a href=&#34;https://bideveloperextensions.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BIDS Helper&lt;/a&gt;), you will see that BimlExpress is similar. You will find all the same Biml features as in BI Developer Extensions - just with a new and improved code editor. No more squiggly red lines, yay!&lt;/p&gt;&#xA;&lt;h2 id=&#34;which-versions-of-visual-studio-does-bimlexpress-work-with&#34;&gt;Which versions of Visual Studio does BimlExpress work with?&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;BimlExpress 2019 was released in May 2019. It works with Visual Studio 2010 - 2019.&lt;/li&gt;&#xA;&lt;li&gt;BimlExpress 2018 was released in June 2018. It worked with Visual Studio 2010 - 2017.&lt;/li&gt;&#xA;&lt;li&gt;BimlExpress 2017 was released in July 2017. It worked with Visual Studio 2010 - 2015.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>I&#39;m a BimlHero Certified Expert</title>
      <link>https://www.cathrinewilhelmsen.net/im-bimlhero-certified-expert/</link>
      <pubDate>Mon, 15 Feb 2016 14:30:40 +0100</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/im-bimlhero-certified-expert/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlHeroIcon.svg&#34; alt=&#34;BimlHero Logo.&#34; width=&#34;100&#34; height=&#34;100&#34; class=&#34;alignleft width-100&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;In April 2015 I set a goal to become a Certified Expert in Biml. On February 1st, 2016, I became the second BimlHero in the world - the first woman and the first in Europe 🤓&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/images/cathrine/CathrineWilhelmsenBimlHero.jpg&#34;&gt;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/cathrine/CathrineWilhelmsenBimlHero_Thumbnail.jpg&#34; alt=&#34;Cathrine Wilhelmsen wearing a BimlHero Certified Expert t-shirt.&#34; width=&#34;166&#34; height=&#34;200&#34; class=&#34;alignright border&#34; style=&#34;background-color: #e9d4b6;&#34; loading=&#34;lazy&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;It has been a long journey, and I have loved every part of it! Varigence announced the &lt;a href=&#34;https://www.varigence.com/Blog/Post/65&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;certification program&lt;/a&gt; in March 2015, and in April I decided to go for it. I was accepted into the program, and in June I attended 8 hours of advanced training. I spent the next six months working on my Biml solution. I was unable to work full-time on it due to other tasks and responsibilities at work, so I spent quite a lot of time on it at home as well. In November I completed the BimlHero Certified Expert Test, and in December I submitted my Biml solution and my case study of how I implemented the solution at work. In January Varigence reviewed my test, solution and case study, and in February I had the final code review with Scott Currie. It was very nerve-wracking having the creator of Biml go through my code! 😅 But I received lots of useful feedback and finally a congratulations on passing and becoming a BimlHero.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Don&#39;t Repeat Your Biml - C#/VB Code Files</title>
      <link>https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-csharp-vb-code-files/</link>
      <pubDate>Thu, 28 Jan 2016 21:48:32 +0100</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-csharp-vb-code-files/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;Do you use C#/VB classes and methods in your Biml projects? One solution is to create class nuggets &lt;strong&gt;&amp;lt;#+ &amp;hellip; #&amp;gt;&lt;/strong&gt;, but they can only be used in their containing Biml file. You can move class nuggets to separate files and &lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-biml-include-files/&#34;&gt;include&lt;/a&gt; those files, but a more elegant solution is to use &lt;em&gt;C#/VB Code Files&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In addition to using C#/VB Code Files, there are four other main ways you can avoid repeating your Biml code:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-biml-include-files/&#34;&gt;Include Files&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-callbimlscript/&#34;&gt;CallBimlScript&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-tiered-biml-files/&#34;&gt;Tiered Biml Files&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Transformers (&lt;em&gt;&lt;a href=&#34;http://varigence.com/BimlStudio&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BimlStudio&lt;/a&gt; feature only&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In this post, we will look at how to use C#/VB Code Files.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Don&#39;t Repeat Your Biml - Include Files</title>
      <link>https://www.cathrinewilhelmsen.net/dont-repeat-biml-include-files/</link>
      <pubDate>Tue, 05 Jan 2016 21:07:54 +0100</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/dont-repeat-biml-include-files/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;Are you using Biml so you won&amp;rsquo;t have to do the same tasks over and over and over again in multiple SSIS packages? If so, you probably don&amp;rsquo;t want to write the same Biml code over and over and over again either. Instead, you can move common code to separate files, centralize and reuse these files in many projects, and update code in &lt;em&gt;one&lt;/em&gt; file to make changes to &lt;em&gt;all&lt;/em&gt; projects. One of the ways to apply this &lt;a href=&#34;https://en.wikipedia.org/wiki/Don%27t_repeat_yourself&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Don&amp;rsquo;t Repeat Yourself&lt;/a&gt; software engineering principle in Biml is to use &lt;em&gt;Include Files&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In addition to using Include Files, there are four other main ways you can avoid repeating your Biml code:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-callbimlscript&#34;&gt;CallBimlScript&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-tiered-biml-files&#34;&gt;Tiered Biml Files&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-csharp-vb-code-files&#34;&gt;C#/VB Code Files&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Transformers (&lt;em&gt;&lt;a href=&#34;http://varigence.com/BimlStudio&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BimlStudio&lt;/a&gt; feature only&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In this post we will look at how to use Include Files.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create SSIS Project Parameters from Biml</title>
      <link>https://www.cathrinewilhelmsen.net/create-ssis-project-parameters-biml-bids-helper/</link>
      <pubDate>Wed, 25 Nov 2015 15:16:24 +0100</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/create-ssis-project-parameters-biml-bids-helper/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you are using &lt;a href=&#34;https://bideveloperextensions.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BIDS Helper&lt;/a&gt; or &lt;a href=&#34;http://varigence.com/bimlexpress&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BimlExpress&lt;/a&gt; to generate SSIS packages in the Project Deployment model, you have probably noticed that it is not possible to create project parameters from Biml. You can write Biml for the project and project parameters, but BIDS Helper / BimlExpress will only generate the SSIS packages for you and not the SSIS project parameters. The recommended solution is that you create the project parameters manually before you generate your SSIS packages from Biml.&lt;/p&gt;&#xA;&lt;p&gt;(&lt;em&gt;Want to know why? Read Scott Currie&amp;rsquo;s explanation in my blog post &lt;a href=&#34;https://www.cathrinewilhelmsen.net/cant-create-ssis-project-parameters-from-biml&#34;&gt;Why can&amp;rsquo;t I create SSIS Project Parameters from Biml?&lt;/a&gt;&lt;/em&gt;)&lt;/p&gt;&#xA;&lt;p&gt;However, if you are a lazy developer like me, you probably don&amp;rsquo;t want to create and update project parameters manually. Perhaps you want to automatically create or update project parameters based on some metadata? You can do that!&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s take a look at a (semi-hardcoded, semi-hack) solution for creating SSIS project parameters from Biml in BIDS Helper / BimlExpress 🤓&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Biml in Belgium at SQL Server Days 2015</title>
      <link>https://www.cathrinewilhelmsen.net/biml-in-belgium-at-sql-server-days-2015/</link>
      <pubDate>Tue, 06 Oct 2015 19:32:36 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/biml-in-belgium-at-sql-server-days-2015/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/images/2015/SQLServerDays2015CathrineSpeaking.jpg&#34;&gt;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/2015/SQLServerDays2015CathrineSpeaking_Thumbnail.jpg&#34; alt=&#34;Cathrine Wilhelmsen speaking at SQL Server Days 2015.&#34; width=&#34;119&#34; height=&#34;150&#34; class=&#34;alignleft border&#34; style=&#34;background-color: #ab4539;&#34; loading=&#34;lazy&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Last week I visited Belgium for the first time to attend and speak at my first SQL Server Days 2015. It was a truly great event, and I would like to say a huge thank you to the organizers and volunteers for making it a wonderful couple of days for speakers and attendees!&lt;/p&gt;&#xA;&lt;p&gt;The venue was spectacular, but unfortunately none of my pictures do it justice. Take a look at the &lt;a href=&#34;https://www.facebook.com/media/set/?set=a.895254173889495.1073741834.460554957359421&amp;amp;type=3&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;great pictures on the SQL Server Days Facebook page&lt;/a&gt; instead. I loved the &lt;a href=&#34;https://www.cathrinewilhelmsen.net/images/2015/SQLServerDays2015Venue.jpg&#34;&gt;huge open area in the middle&lt;/a&gt; where everyone could meet during breaks, and I was so happy there was unlimited coffee and chocolate! 🤩 The &lt;a href=&#34;https://www.cathrinewilhelmsen.net/images/2015/SQLServerDays2015Room.jpg&#34;&gt;rooms&lt;/a&gt; were all unique and fun to present in. One room looked like a library, another like a bar, and I presented in the room that was decorated like a train station - &lt;em&gt;with trains in it!&lt;/em&gt;&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Import Metadata in Biml using GetDatabaseSchema</title>
      <link>https://www.cathrinewilhelmsen.net/import-metadata-biml-getdatabaseschema/</link>
      <pubDate>Sun, 12 Jul 2015 21:45:13 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/import-metadata-biml-getdatabaseschema/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;One of the main tasks in Biml projects is to import source metadata. The recommended method is &lt;em&gt;GetDatabaseSchema&lt;/em&gt;. This method returns an &lt;em&gt;ImportResults&lt;/em&gt; object that contains &lt;em&gt;SchemaNodes&lt;/em&gt; (schema metadata) and &lt;em&gt;TableNodes&lt;/em&gt; (table and view metadata).&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Don&#39;t Repeat Your Biml - CallBimlScript</title>
      <link>https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-callbimlscript/</link>
      <pubDate>Mon, 23 Feb 2015 21:04:10 +0100</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-callbimlscript/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;Are you using Biml so you won&amp;rsquo;t have to do the same tasks over and over and over again in multiple SSIS packages? If so, you probably don&amp;rsquo;t want to write the same Biml code over and over and over again either. Instead, you can move common code to separate files, centralize and reuse these files in many projects, and update code in &lt;em&gt;one&lt;/em&gt; file to make changes to &lt;em&gt;all&lt;/em&gt; projects. One of the ways to apply this &lt;a href=&#34;https://en.wikipedia.org/wiki/Don%27t_repeat_yourself&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Don&amp;rsquo;t Repeat Yourself&lt;/a&gt; software engineering principle in Biml is to use &lt;em&gt;CallBimlScript&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In addition to using CallBimlScript, there are four other main ways you can avoid repeating your Biml code:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-biml-include-files&#34;&gt;Include Files&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-tiered-biml-files&#34;&gt;Tiered Biml Files&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/dont-repeat-your-biml-csharp-vb-code-files&#34;&gt;C#/VB Code Files&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Transformers (&lt;em&gt;&lt;a href=&#34;http://varigence.com/BimlStudio&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BimlStudio&lt;/a&gt; feature only&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In this post we will look at how to use CallBimlScript with Parameters.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQLHangout #26 - Biml in the Real World</title>
      <link>https://www.cathrinewilhelmsen.net/sqlhangout-26-biml-in-the-real-world/</link>
      <pubDate>Thu, 18 Dec 2014 17:41:30 +0100</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/sqlhangout-26-biml-in-the-real-world/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/2014/SQLHangout_Thumbnail.png&#34; alt=&#34;Logo for SQLHangout #26 - Biml in the Real World.&#34; width=&#34;100&#34; height=&#34;100&#34; class=&#34;alignleft border&#34; style=&#34;background-color: #fcfdfb;&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;Back in June I did a #SQLHangout with &lt;a href=&#34;https://www.borishristov.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Boris&lt;/a&gt; (&lt;a href=&#34;https://twitter.com/brshristov&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@brshristov&lt;/a&gt;) about Biml that I called &amp;ldquo;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/sqlhangout-22-blabbering-about-biml/&#34;&gt;Blabbering about Biml&lt;/a&gt;&amp;rdquo;. (Boris is much nicer, he called it &amp;ldquo;Biml. An Introduction.&amp;rdquo;)&lt;/p&gt;&#xA;&lt;p&gt;Yesterday we did another episode called SQLHangout #26 - Biml in the Real World. This time we were joined by João Lopes (&lt;a href=&#34;https://twitter.com/SQLSniper/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@SQLSniper&lt;/a&gt;), &lt;a href=&#34;https://rasmusreinholdt.wordpress.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Rasmus Reinholdt&lt;/a&gt; (&lt;a href=&#34;https://twitter.com/RasmusReinholdt/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@RasmusReinholdt&lt;/a&gt;) and &lt;a href=&#34;https://theblobfarm.wordpress.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Régis Baccaro&lt;/a&gt; (&lt;a href=&#34;https://twitter.com/regbac/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@regbac&lt;/a&gt;) - great guys that I admire. It was interesting to hear how we use Biml in different ways and what we would like to see happen in 2015. I look forward to seeing all of them again and learn from their experiences!&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQLHangout #22 - Blabbering about Biml</title>
      <link>https://www.cathrinewilhelmsen.net/sqlhangout-22-blabbering-about-biml/</link>
      <pubDate>Wed, 25 Jun 2014 19:04:40 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/sqlhangout-22-blabbering-about-biml/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/2014/SQLHangout_Thumbnail.png&#34; alt=&#34;Logo for SQLHangout #22 - Blabbering about Biml.&#34; width=&#34;100&#34; height=&#34;100&#34; class=&#34;alignleft border&#34; style=&#34;background-color: #fcfdfb;&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;When &lt;a href=&#34;https://www.borishristov.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Boris&lt;/a&gt; (&lt;a href=&#34;https://twitter.com/brshristov&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@brshristov&lt;/a&gt;) invited me to a SQLHangout I was really honored and couldn&amp;rsquo;t say no. It&amp;rsquo;s such a fun idea and I&amp;rsquo;ve really enjoyed watching the other SQLHangouts. It&amp;rsquo;s great to see people&amp;rsquo;s personalities shine through in videos instead of only reading their blog posts, &lt;em&gt;and&lt;/em&gt; I learn something new.&lt;/p&gt;&#xA;&lt;p&gt;I suggested to chat about Biml, something I&amp;rsquo;ve only recently begun learning myself that has already saved me many hours of work. I still have so much to learn, but the fact that it took me about 20 hours to learn something new that has saved me and my coworkers hundreds of hours already&amp;hellip; &lt;em&gt;That&amp;rsquo;s&lt;/em&gt; worth sharing. If I can do it, you can do it!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Package Configurations and Connection Managers in Biml</title>
      <link>https://www.cathrinewilhelmsen.net/package-configurations-and-connection-managers-in-biml/</link>
      <pubDate>Tue, 17 Jun 2014 19:40:56 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/package-configurations-and-connection-managers-in-biml/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;At work we wanted to start using Biml to speed up development in our existing projects without making too many changes at once. I decided to start by writing Biml files that generates SSIS packages exactly like the ones we already have so we can implement changes faster, and step one was to figure out how to create Package Configurations and Connection Managers in Biml:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Create an XML configuration file Package Configuration&lt;/li&gt;&#xA;&lt;li&gt;Create the Connection Manager specified in the XML configuration file&lt;/li&gt;&#xA;&lt;li&gt;Create SQL Server Package Configurations that use the Connection Manager specified in the XML configuration file&lt;/li&gt;&#xA;&lt;li&gt;Create Connection Managers specified in the [SSIS Configurations] table in SQL Server&lt;/li&gt;&#xA;&lt;li&gt;Create a Parent package variable&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I recommend reading &lt;a href=&#34;https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008/cc895212%28v=msdn.10%29&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Understanding Integration Services Package Configurations&lt;/a&gt; by &lt;a href=&#34;http://www.rafael-salas.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Rafael Salas&lt;/a&gt; (&lt;a href=&#34;https://twitter.com/RafSalas&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@RafSalas&lt;/a&gt;) and &lt;a href=&#34;http://www.bimlscript.com/Walkthrough/Details/4&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Getting Started with BimlScript&lt;/a&gt; by Paul S. Waters (&lt;a href=&#34;https://twitter.com/pswaters&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;@pswaters&lt;/a&gt;) if you&amp;rsquo;re not already familiar with the basics of SSIS Package Configurations and Biml.&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQL Server, SSIS and Biml Data Types</title>
      <link>https://www.cathrinewilhelmsen.net/sql-server-ssis-and-biml-data-types/</link>
      <pubDate>Tue, 27 May 2014 18:33:04 +0200</pubDate>
      <guid>https://www.cathrinewilhelmsen.net/sql-server-ssis-and-biml-data-types/</guid>
      <description>&lt;p&gt;&#xA;&#xA;&#xA;&#xA;&lt;img src=&#34;https://www.cathrinewilhelmsen.net/images/biml/BimlWheelCircle.svg&#34; alt=&#34;Biml Wheel.&#34; width=&#34;80&#34; height=&#34;80&#34; class=&#34;alignleft width-80&#34; loading=&#34;lazy&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;The table below is a simplified mapping between SQL Server, SSIS and Biml Data Types. It does not include all possible mappings or all data types, but is meant as a quick reference while developing and learning Biml. I mainly created it as a cheat sheet for myself, but I hope other Biml developers will find it useful!&lt;/p&gt;&#xA;&lt;div class=&#34;entry-info&#34;&gt;&#xA;    &lt;svg class=&#34;icon icon-info&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 32 32&#34;&gt;&lt;path d=&#34;M 17.48,11.49 V 8.463 h -2.96 v 3.027 z m 0,12.05 v -9.02 h -2.96 v 9.02 z M 16,1 Q 22.2,1 26.6,5.401 31,9.803 31,16 31,22.2 26.6,26.6 22.2,31 16,31 9.803,31 5.401,26.6 1,22.2 1,16 1,9.803 5.401,5.401 9.803,1 16,1 Z&#34;/&gt;&lt;/svg&gt;&#xA;    &lt;p&gt;Can&#39;t remember this post&#39;s URL? Neither can I 😅 You can use this short URL instead: &lt;strong&gt;&lt;a href=&#34;https://www.cathrinewilhelmsen.net/BimlDataTypes&#34;&gt;cathrinew.net/BimlDataTypes&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;cheat-sheet-for-sql-server-ssis-and-biml-data-types&#34;&gt;Cheat Sheet for SQL Server, SSIS and Biml Data Types&lt;/h2&gt;&#xA;&lt;table id=&#34;biml-data-types-table&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th onclick=&#34;sortTable(0)&#34; style=&#34;cursor: pointer&#34;&gt;SQL Server&lt;/th&gt;&#xA;      &lt;th onclick=&#34;sortTable(1)&#34; style=&#34;cursor: pointer&#34;&gt;SSIS&lt;/th&gt;&#xA;      &lt;th onclick=&#34;sortTable(2)&#34; style=&#34;cursor: pointer&#34;&gt;Biml&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;bigint&lt;/td&gt;&#xA;      &lt;td&gt;DT_I8&lt;/td&gt;&#xA;      &lt;td&gt;Int64&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;binary&lt;/td&gt;&#xA;      &lt;td&gt;DT_BYTES&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;bit&lt;/td&gt;&#xA;      &lt;td&gt;DT_BOOL&lt;/td&gt;&#xA;      &lt;td&gt;Boolean&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;char&lt;/td&gt;&#xA;      &lt;td&gt;DT_STR&lt;/td&gt;&#xA;      &lt;td&gt;AnsiStringFixedLength&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;date&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBDATE&lt;/td&gt;&#xA;      &lt;td&gt;Date&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;datetime&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBTIMESTAMP&lt;/td&gt;&#xA;      &lt;td&gt;DateTime&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;datetime2&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBTIMESTAMP2&lt;/td&gt;&#xA;      &lt;td&gt;DateTime2&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;datetimeoffset&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBTIMESTAMPOFFSET&lt;/td&gt;&#xA;      &lt;td&gt;DateTimeOffset&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;decimal&lt;/td&gt;&#xA;      &lt;td&gt;DT_NUMERIC&lt;/td&gt;&#xA;      &lt;td&gt;Decimal&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;float&lt;/td&gt;&#xA;      &lt;td&gt;DT_R8&lt;/td&gt;&#xA;      &lt;td&gt;Double&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;geography&lt;/td&gt;&#xA;      &lt;td&gt;DT_IMAGE&lt;/td&gt;&#xA;      &lt;td&gt;Object&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;geometry&lt;/td&gt;&#xA;      &lt;td&gt;DT_IMAGE&lt;/td&gt;&#xA;      &lt;td&gt;Object&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;hierarchyid&lt;/td&gt;&#xA;      &lt;td&gt;DT_BYTES&lt;/td&gt;&#xA;      &lt;td&gt;Object&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;image (*)&lt;/td&gt;&#xA;      &lt;td&gt;DT_IMAGE&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;int&lt;/td&gt;&#xA;      &lt;td&gt;DT_I4&lt;/td&gt;&#xA;      &lt;td&gt;Int32&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;money&lt;/td&gt;&#xA;      &lt;td&gt;DT_CY&lt;/td&gt;&#xA;      &lt;td&gt;Currency&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nchar&lt;/td&gt;&#xA;      &lt;td&gt;DT_WSTR&lt;/td&gt;&#xA;      &lt;td&gt;StringFixedLength&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;ntext (*)&lt;/td&gt;&#xA;      &lt;td&gt;DT_NTEXT&lt;/td&gt;&#xA;      &lt;td&gt;String&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;numeric&lt;/td&gt;&#xA;      &lt;td&gt;DT_NUMERIC&lt;/td&gt;&#xA;      &lt;td&gt;Decimal&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nvarchar&lt;/td&gt;&#xA;      &lt;td&gt;DT_WSTR&lt;/td&gt;&#xA;      &lt;td&gt;String&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;nvarchar(max)&lt;/td&gt;&#xA;      &lt;td&gt;DT_NTEXT&lt;/td&gt;&#xA;      &lt;td&gt;String&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;real&lt;/td&gt;&#xA;      &lt;td&gt;DT_R4&lt;/td&gt;&#xA;      &lt;td&gt;Single&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;rowversion&lt;/td&gt;&#xA;      &lt;td&gt;DT_BYTES&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;smalldatetime&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBTIMESTAMP&lt;/td&gt;&#xA;      &lt;td&gt;DateTime&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;smallint&lt;/td&gt;&#xA;      &lt;td&gt;DT_I2&lt;/td&gt;&#xA;      &lt;td&gt;Int16&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;smallmoney&lt;/td&gt;&#xA;      &lt;td&gt;DT_CY&lt;/td&gt;&#xA;      &lt;td&gt;Currency&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;sql_variant&lt;/td&gt;&#xA;      &lt;td&gt;DT_WSTR&lt;/td&gt;&#xA;      &lt;td&gt;Object&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;text (*)&lt;/td&gt;&#xA;      &lt;td&gt;DT_TEXT&lt;/td&gt;&#xA;      &lt;td&gt;AnsiString&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;time&lt;/td&gt;&#xA;      &lt;td&gt;DT_DBTIME2&lt;/td&gt;&#xA;      &lt;td&gt;Time&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;timestamp (*)&lt;/td&gt;&#xA;      &lt;td&gt;DT_BYTES&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;tinyint&lt;/td&gt;&#xA;      &lt;td&gt;DT_UI1&lt;/td&gt;&#xA;      &lt;td&gt;Byte&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;uniqueidentifier&lt;/td&gt;&#xA;      &lt;td&gt;DT_GUID&lt;/td&gt;&#xA;      &lt;td&gt;Guid&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;varbinary&lt;/td&gt;&#xA;      &lt;td&gt;DT_BYTES&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;varbinary(max)&lt;/td&gt;&#xA;      &lt;td&gt;DT_IMAGE&lt;/td&gt;&#xA;      &lt;td&gt;Binary&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;varchar&lt;/td&gt;&#xA;      &lt;td&gt;DT_STR&lt;/td&gt;&#xA;      &lt;td&gt;AnsiString&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;varchar(max)&lt;/td&gt;&#xA;      &lt;td&gt;DT_TEXT&lt;/td&gt;&#xA;      &lt;td&gt;AnsiString&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;xml&lt;/td&gt;&#xA;      &lt;td&gt;DT_NTEXT&lt;/td&gt;&#xA;      &lt;td&gt;Xml&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;script&gt;&#xA;    function sortTable(n) {&#xA;        var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;&#xA;        var id = &#34;biml-data-types-table&#34;;&#xA;        table = document.getElementById(id);&#xA;        switching = true;&#xA;        dir = &#34;asc&#34;;&#xA;        while (switching) {&#xA;            switching = false;&#xA;            rows = table.rows;&#xA;            for (i = 1; i &lt; (rows.length - 1); i++) {&#xA;                shouldSwitch = false;&#xA;                x = rows[i].getElementsByTagName(&#34;TD&#34;)[n];&#xA;                y = rows[i + 1].getElementsByTagName(&#34;TD&#34;)[n];&#xA;                if (dir == &#34;asc&#34;) {&#xA;                    if (x.innerHTML.toLowerCase() &gt; y.innerHTML.toLowerCase()) {&#xA;                        shouldSwitch = true;&#xA;                        break;&#xA;                    }&#xA;                } else if (dir == &#34;desc&#34;) {&#xA;                    if (x.innerHTML.toLowerCase() &lt; y.innerHTML.toLowerCase()) {&#xA;                        shouldSwitch = true;&#xA;                        break;&#xA;                    }&#xA;                }&#xA;            }&#xA;            if (shouldSwitch) {&#xA;                rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);&#xA;                switching = true;&#xA;                switchcount++;&#xA;            } else {&#xA;                if (switchcount == 0 &amp;&amp; dir == &#34;asc&#34;) {&#xA;                    dir = &#34;desc&#34;;&#xA;                    switching = true;&#xA;                }&#xA;            }&#xA;        }&#xA;    }&#xA;&lt;/script&gt;&#xA;&lt;p&gt;(&lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;These data types will be removed in a future version of SQL Server. Avoid using these data types in new projects, and try to change them in current projects.&lt;/em&gt;)&#xA;&lt;span id=&#34;continue-reading&#34;&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
