DaveWentzel.com            All Things Data

Obnoxious SSIS Designer Layout Issue

I don't want to bloviate too much, but there are some annoyances with SSIS, most of them well documented on the blogosphere.  My biggest annoyance is that the mouse is required for EVERYTHING.  Want to do a task conditionally?  That would be an IF branch in any programming language, but because SSIS is so visual it requires lots of mouse clicks.  

My second biggest annoyance, and the purpose of this blog post, has to do with the designer wanting to lay things out in a suboptimal fashion.  Or, maybe I'm doing something incorrectly that causes my layouts to always be off-screen and funky.  I haven't seen the solution to this problem anywhere on google, so I thought I'd write it up.  Here is the problem...I open up many of my SSIS packages and I see a Control Flow layout that looks something like this:  

This is a VERY large package and I could never fit everything on the screen but the top left-most container/task should, IMHO, always appear at Pixel(0,0) on the Control Flow designer.  Graphically, I would expect something more like this:

...which is what I get when I shift the scrollbars around.  I of course don't want to have to do that.  

The first thing to try is Format|Auto Layout|Diagram, which works about 50% of the time for me.  I don't know why it works sporadically.  Here is a before and after example of when Format|Auto Layout|Diagram works great.  Before...:

...and after...

 

Here's What I do to Fix This

...and perhaps there is a better way or I'm just stupid (because I can't find any reference to this on google).  

  • Close the .dtsx file in Visual Studio
  • Open the file in your favorite text editor and search for "<DTS:DesignTimeProperties>".  You'll immediately find some really useful notes. 

<!--This CDATA section contains the layout information of the package. The section includes information such as (x,y) coordinates, width, and height.--> 
<!--If you manually edit this section and make a mistake, you can delete it. -->
<!--The package will still be able to load normally but the previous layout information will be lost and the designer will automatically re-arrange the elements on the design surface.-->

 

  • Find the outermost Container or Task that you want to Top Left-Align by searching for 'Id="Package\<Name>"'.  In my example I would search for Id=Package\Extract Container.  Generally, this seems to occur near the end of the .dtsx file.  I like to put all of my tasks and containers in a "master" Sequence Container on the Control Flow so I can move things around easier as a unit.  It also makes this process a little easier.  You'll see an entry similar to this:  

Note the TopLeft entry...doesn't seem right does it?  Simply change it to this:

...then save your .dtsx package and re-open it in Visual Studio.  Voila...

 

Add new comment