Extending the ForEach File Enumerator in SSIS
Development Extending the ForEach File Enumerator in SSIS

One of the primary reasons for using SSIS is to process multiple files, ETL (Extract, Transform, Load) data, and feed it into a destination, for example, a data warehouse. Built-in components such as the For Loop Container and the ForEach Loop Container make it very simple to enumerate a collection and perform some processing tasks for each entry, be it an array, a dataset, or a directory containing files. In fact, the ForEach File Enumerator option of the ForEach Loop Container allows you to even specify a mask to filter the list of files in a directory prior to processing, so you can weed out unwanted files from the loop. But what if a simple string match isn’t powerful enough to perform the filtering you need?

read more
Microsoft BI 2012: A Year In Review
Development Microsoft BI 2012: A Year In Review

With the year drawing to a close, I thought it would be the perfect time to recap the major developments in Microsoft Business Intelligence throughout 2012. Unsurprisingly, the launch of SQL Server 2012 proved to be the focal point of this year’s releases, although we had a few extra surprises along the way:

read more
Development Time Format on non-Date Dimensions in SSAS

I ran into a rather strange situation recently while attempting to set up some new calculated measures in an SSAS cube. I’m still new to MDX, so I ended up chasing my tail around for a while (and crying out for help on both StackOverflow and MSDN) before I eventually tracked down the culprit and solved the issue. Basically, I was trying to create a calculated measure, which, using a couple of date attributes from one dimension, would apply to my [Time] dimension and filter the value of a specified measure to match. Not hard, right?

read more
Microsoft’s Mobile BI “Project Helix” Unveiled
Development Microsoft’s Mobile BI “Project Helix” Unveiled

Some pretty interesting information leaked out of last week’s SharePoint Conference 2012 regarding Microsoft’s upcoming Mobile BI (Business Intelligence) solution. There’s been surprisingly little reaction to the unveiling of the solution, apparently codenamed “Project Helix”, perhaps due to the fact that it was unveiled at a SharePoint event and not a SQL Server one. However, courtesy of one attendee tweeting some screenshots to SSAS guru Chris Webb, this little nugget of information landed in my inbox this morning and immediately piqued my interest. Unfortunately there’s very little information available on “Project Helix” at the moment, but from the 2 screenshots provided by attendee Just Blindbaek, there are a few things that are immediately apparent, and a couple more that can be reasonably inferred:

read more
Development Editing a PowerView RDLX file in Sharepoint 2010

Since I’ve not managed to get a post written up in about a month, I figured it was well past time to pull my finger out and get something posted.  As part of my recent work with PowerPivot and Sharepoint 2010, I’ve also been playing about with PowerView as a quick UI. For anyone who hasn’t tried/heard of PowerView, I suggest checking it out here.

Although a PowerView report is actually run as a Silverlight object when viewed in your browser through Sharepoint, you’ll see if you choose to download the file that it is actually saved as a .RDLX file, remarkably close to the standard SSRS (SQL Server Reporting Services) report file format of .RDL. So, this suggests there might just be some similarities in there somewhere, right?

read more
Development Calculate the difference between two dates in DAX

Another quick Data Analysis eXpressions (DAX) update, given that I’ve been playing about with PowerPivot again this week. Following on from my exertions trying to work out how to return a month name in DAX, I found myself looking for a DAX equivalent of SQL Server’s DATEDIFF function. Fortunately, this is reasonably straightforward. All we need to do is perform a regular subtraction on two dates and multiply the result by 1.0, which will return the number in serial date-time (the number of days since “1900-Jan-0”, which is how Excel stores dates).

read more
Development Calculating Month Name from a Date Integer in DAX

I’ve been playing about with PowerView and PowerPivot recently, while also getting used to the Analysis Services (SSAS) Tabular model in  SQL Server 2012 (Denali). The tabular model provides a high-compression, in-memory store for easy data model construction and analysis. Ad-hoc calculated fields can be defined within PowerPivot (built on the same xVelocity technology) using Microsoft’s Data Analysis eXpressions language, which is very similar to Excel functions. However, DAX is still pretty basic in some places, and while looking for a simple Month Name function (similar to the GetMonthName function in .NET) I ran into a couple of interesting issues.

read more
Development Metadata Discovery in SSIS 2012 not working with temp tables

SQL Server Integration Services is a tidy bit of kit and an absolute must have on any SQL Server developer or administrator’s toolbelt.  However, it is as frustrating as it is sublime, with many obfuscated error messages, quirky behaviours and downright oddness.  I ran into one such quirk recently while setting up a Data Flow Task using an OLE DB Source that loaded its data from a Stored Procedure, specified by a package Variable.  Everything was working fine until I identified that I needed to do something in the stored procedure that resulted in my using a temporary table.  As soon as I updated the procedure and attempted to refresh the columns in my OLE DB Source, I was hit with the following error:

Msg 11525, Level 16, State 1, Procedure My_Stored_Procedure_Name, Line 1
  The metadata could not be determined because statement 'My SQL Statement Here;' uses a temp table.

So why does this happen, even when I’ve defined the type of the column in my procedure?

read more


picnicerror.net is a personal blog where I post various ideas, thoughts and discoveries through both my day to day work in marketing technology and general hobbies and interests.

Know More