I’ve been exploring some of the many controls included with Task Factory since I came to work for Pragmatic Works. One that I think is useful but underappreciated is the simple Terminator Destination. This is an extremely handy tool to use during development. Let’s take a look at a common scenario.
As you can see from the above screen shot, we’re in the process of developing a package. We’ve worked out the logic in the left branch, and are now working on the right. We have a derived column transformation called “Do some more complicated stuff”. It’s got some complex logic, and we’d like to look at the output before we write it to our target destination. That means having a destination after the derived column transform so we can put in a data viewer. So what are our options?
One of the most traditional is the row count, as seen below.
While this seems pretty simple, it required a few setup steps. First, we had to create a temporary variable to hold the results of the row count. Then we had to open up the row count and assign the variable to the row count transformation. Sure, this seems simple, and I suppose it is. But it does take a few minutes to setup, and I can’t tell you how many times I’ve opened up a package to find variables that aren’t being used for anything. Most times these were temporary row count variables that never got removed. That meant a lot of time tracking down what those were used for, and extra testing to ensure there removal doesn’t cause issues. Suddenly those few minutes add up.
An alternate solution might be the script task. With the script task, there’s no variables to be created.
It looks pretty straightforward, but before you can use the script task you have to open the task, then create a script, then save it, and finally close the component. Again not a huge time investment, but very annoying to have to go through all those steps just to have a temporary destination.
A better, and simpler alternative is the Terminator destination that comes with Task Factory.
To use the Terminator, you simply drop it on the design surface, then hook it to the derived column transform above it. Add the data viewer and your done. No variables, no configuring anything, you don’t even have to open the control to edit anything on it.
I’m surprised at just how nice development has been using this tool. Dropping the destination on the package is a “thought free” task. I don’t get distracted, having to stop and think to create a variable, or remember to open and edit a script. Since I don’t have to think about it, it means my concentration remains where it needs to be, on the calculations I’ve created in the derived column transform.
Start using this little transform during your development, I think you’ll find it to be one of the most pleasant transforms you’ll ever use.
Disclaimer: Although I said it in the initial paragraph, just to be clear I do work as a consultant for Pragmatic Works, and Task Factory is one of their products.
I”ve been using the Multicast transformation for just such a purpose. No additional software purchase/installation required!
The multicast isn’t a bad idea. However there’s one more advantage to using the terminator destination, and that’s clarity. Developers do get pulled away from projects for a variety of reasons and someone else will need to take over. If you use a multicast or one of the other transforms mentioned here, it’s not clear what the original developers train of thought was.
Was this script/counter/multicast supposed to be here and do something else? Was something supposed to flow from it?
With a terminator destination it’s very clear that this is a temporary object in your package that will need to be replaced at some stage in the development process.