Tips to improve your blog, really!

As I learnt a few things about blogging, I made a list of tips to get better at blogging. Thought I would share.

  1. Pour your heart out to answer a question. When someone asks a question, it means they followed your post hoping they would find an answer to their problem. If they are stuck, take responsibility. Do everything you can do to help them.
  2. Don’t plagiarise. It is just not the right thing to do.
  3. Don’t like your own posts. We know you like them, you don’t have to explicitly click like to show that.
  4. Don’t start with Hi or Hello. You’re writing a blog, not a letter.
  5. Don’t sweat it. Write what comes to you and how it comes to you.
  6. Be natural. You’ll be at your best when you are yourself.
  7. Use images. Images deliver the message quickly. If it’s a technical post, throw in lot of screen prints, else find a funny and relevant picture to use.
  8. Name your images. One extra opportunity do drop keywords for SEO. Search engines read image names and rank your post better. Posts also show up in image search.
  9. Use lists.
  10. Check spellings. There is no excuse for spelling mistakes.
  11. Check grammar. Difficult specially for people with foreign mother tongues (including me). It’s okay to be not perfect, but keep an eye on it.
  12. Check font. Inconsistent font size looks ugly. Will make the readers go away.
  13. Title is the key to a good post. Choose a title to attract people, not Google.
  14. Make use of URLs. Google will read URL text to show your posts in search results. People don’t read this. Feel free to use as many keywords as you want.
  15. Let the readers comment. Don’t post a comment saying you received so and so feedback from somebody.
  16. Be careful with series of posts. They are both powerful and dangerous. In depth series like this by Devin Knight, for example, will make the readers come back, a series on keyboard shortcuts won’t.
  17. Use your energy wisely. Blogging requires a lot of energy: time and thought. Use it and write to solve problems.
  18. Blog because you want to, not because someone else is blogging.

As always, comments are most welcome.

@SamuelVanga

Workspace database server was not found

You might constantly see a warning message that appears like the one below when creating Analysis Services Tabular projects. It basically says, workspace database server ‘ServerName’ was not found.

image

You’ll have to change this setting from the model properties. The server should be an Analysis Services Server running in Tabular mode.

image

You’ll have to deal with this every time. It’s such a pain. Right? Fixing it for good is easy. Simply click on Tools, go to Options and expand Analysis Services. Change default workspace server and default deployment server to an Analysis Services server instance that’s running in tabular mode.

image

image

image

~Sam.

How to execute a package from another package?

I hear you. You’ll use the Execute Package Task. This mechanism of executing one package from another is popularly knows as Parent Child paradigm. Let me tell you, this isn’t new in 2012. There are, however, a few changes to the Execute Package Task. Let’s take a look.

Demoland!

I added two packages to the project and conveniently named them Parent.dtsx and Child.dtsx.

Parent Child Packages SSIS 2012

Child Package

In the child package, I added a script task and used the following script. This will display a message box and tells that it is executing.

MsgBox(“Howdy! I’m the child package”)

image

Parent Package

In the parent package, I added an Execute Package Task and renamed it to Run Child Package.

image

In the Package page of the Execute Package Task editor, there is a new property called reference type. It is set to Project Reference by default. This means you can point the execute package task to another package within the same project. I selected Child.dtsx from the drop down.

image

The following is the output when I execute the parent package.

image

In prior versions, you’ll have to choose either file system or SQL Server as the source for child package and have connection managers to all the child packages in the parent. For example, if you have one parent package calling 50 child packages, the parent needs 50 connection managers to each of those child packages. This is still supported for legacy packages – change the reference type property to External Reference.

Passing a variable from parent to child

You often pass variables from parent package to the child package; connection strings, parent package start time, parent package name (ok. May be). Again, in the previous versions, you would use a parent package configurations to do this.

In this example, I’ll pass parent package name to the child package.

Another change to the Execute Package Task is parameter binding. You can map a parameter or a variable from the parent package to a parameter in the child package.

In the below image, I created a parameter in the child package. I wrote about SSIS parameters in an earlier post.

image

From the parent package, open the Execute Package Task Editor. In the parameter bindings page, I mapped the child parameter to the parent’s PackageName system variable.

image

Then I changed the script in the child package as follows:

MsgBox(“Howdy! I’m the Child Package. I was called by ” & Dts.Variables(“$Package::ParentName”).Value.ToString)

When I execute the parent package, I see…

image

Zip It

In this post, I looked at using Execute Package Task to call a package from another and pass variable from parent to child.

@SamuelVanga