SSAS: Error Deploying Metadata

This error threw me for a loop the first time I saw it and I figured I should post about it in case someone else has the same problem.

In Visual Studio I was making some changes to an SSAS tabular model I'd previously deployed. When I went to deploy it again with my updates I was presented with an error message for the work item "Deploy metadata", status "Error deploying metadata". Clicking on Error details gives a very unhelpful message: "Failed to save modifications to the server. Error returned: 'The column 'TableName[FieldName]' cannot be of type Empty. The Empty data type can only be set on a column if the column is either a calculated column or is part of a calculated table.'.".

As with many error messages, this is totally unhelpful and doesn't actually help in figuring out the problem. No field in my model was set to a data type of 'Empty' - and certainly not the one referenced in the error message!

What works for me when this happens is to go to the SSAS server directly in SQL Server Management Studio and to delete the model. Then when I try deploying from Visual Studio again it succeeds.

Why does this happen? I have no idea. If you have some insight I would love to hear about it in the comments. I have come to expect this behaviour any time I have deleted an object from my model and then created a new one with the same name. Redeployments seem to always fail after I've done that.
Read More

Google Chrome: Change Spell Checker Language

I get annoyed with the default American English spell checking that happens in my browser. It only recently occurred to me that this is probably something that can be changed in my settings, and then I thought I should really post about this in case someone else is looking for the same thing.

In Google Chrome you can change the language of your spell checker by following these steps:

  1. Click on the ellipsis in the upper right-hand corner and click on 'Settings'.
  2. In the 'Settings' tab which will have opened, scroll down to the bottom and click 'Advanced'.
  3. Scroll down to the 'Languages' section and click the drop-down arrow next to 'Languages' to expand the menu.
  4. Click 'Add languages'.
  5. Select the language(s) you wish to add with checkmarks and then click 'Add'.
  6. Click the ellipsis next to any of the languages listed and you can choose options like moving them to the top of the list, setting them as the display language, or removing them altogether.
  7. Close the 'Settings' tab.
And suddenly I can write things like neighbour and colour without any red squiggly lines! Amazing.
Read More

Microsoft Surface Pen LED Not Working

I have one of the newer models of the Surface Pen, with no clip and just one long button on the side.
So the other day I went to mark up a document on my Surface Pro and I just couldn't get my Surface Pen to work. I tried to troubleshoot the Bluetooth pairing, replacing the AAAA battery, and watching a bunch of YouTube videos and just nothing was working. Apparently if you hold down on the top button for a few seconds you should at least see the little LED blinking. Not on mine! Completely dead.

Anyway, credit where credit is due: I came to write this post because I was pretty blown away by the Microsoft Store and the way they handled my problem when I reached out. I logged into the Microsoft Store and then initiated a chat session which was really quite painless. I explained my problem and the steps I'd taken to resolve it, and I fully expected the agent to run down a scripted list of troubleshooting steps that I'd already done. Instead she simply told me that they would gladly exchange it for me since I'd already determined it to be malfunctioning. Mine is also still under warranty.

It's weird to say that I'm shocked when a customer service agent actually listens to me but I really was. Within just a few minutes we'd sorted out the exchange details with my shipping address and everything and I was all done.

So if that LED stops working on your Surface Pen, just reach out to Microsoft and they'll deal with it quickly!
Read More

SSRS: Listing Multivalue Parameter Selections on Report

If your SSRS report has a multivalue parameter and you would like to display the values that were selected on the report itself, use the JOIN functions to list them delimited by commas (or whatever other character you'd like). Just insert a text box on your report and insert the following expression:

=JOIN(Parameters!YourParameterName.Value, ", ")

So if for example your parameter allows you to choose the name of a country, the output using the above expression after selecting a few countries would be something like this:

Canada, Brazil, Dominican Republic, Cuba, USA, Italy
Read More

SQL Server Agent: Automatic Refresh of SSAS Cube

Unless you're dealing with completely static data, you're going to want to set up an automatic refresh of your SSAS cube on some sort of schedule. Here's how you can get a full refresh going on a regular basis:
  1. Make sure that permissions to your SSAS server are set up properly to allow the agent to trigger the refresh. Your service account should be added as a server administrator.
  2. Create a new SQL Server Agent job.
  3. Add one or more schedules on the Schedules page.
  4. Add a step of type 'SQL Server Analysis Services Command'.
  5. Choose your service account under 'Run as'.
  6. Enter the URL for your SSAS server under 'Server'.
  7. Enter the following as the command, making sure to edit the "database" value to match the name of your SSAS cube:
{
  "refresh": {
    "type": "full",
    "objects": [
      {
        "database": "NameOfYourSSASCube"
      }
    ]
  }
}
Read More

Power BI: Force Correct Locations on Map Visualization

If your locations aren't correct on your Power BI map visualization, you can make an adjustment to your dataset to force them into the right places. This is possible without having specific latitude and longitude coordinates. For example, if I try to map the city of Sydney then Bing Maps tends to place that in Australia. Unfortunately what I'm actually looking for is the city of Sydney in Canada.

The easiest way I've found to quickly correct this issue is to add a new field to your dataset that joins together as much of the location information as possible. For my purposes I would have City, Province/State, Country. So instead of using 'Sydney' as a location I am now using 'Sydney, Nova Scotia, Canada'.
Read More