SSAS IA64 Server Fun: Using VBA functions in MDX

Occasionally I have the pleasure of working with Analysis Services 2005 on an IA64 (64 bit Intel Itanium) servers and on the whole, most things work the same. But there is the occasional small  difference that can cause some frustration.

Background: In Analysis Services 2000, you could not use VBA functions in MDX calculations as the VBA library was COM based and had not been ported to the 64 bit platform. In SSAS 2005, the core VBA functions have been implemented in a .Net library which will run on the IA64 platform.

The Issue: The only catch is the on a 32 bit machine, you can either just call the function or prefix it with a VBA! prefix.

eg

LEFT([Customer.CurrentMember.Name,10)

or

VBA!LEFT[Customer.CurrentMember.Name,10)

Solution: However on the IA64 platform, both of these syntaxes will fail. The trick is that the VBA functions actually exist in a .Net assembly called VBAMDX. If you prefix your function calls with the name of this library they will work on both the 32 bit and the IA64 platforms.

eg.

VBAMDX.LEFT[Customer.CurrentMember.Name,10)

[Update Nov 6 2006] furmangg mentioned in the comments that he is not having this issue on his IA64 server. I think this highlights an issue with the IA64 platform, it's adoption rate has been so slow that when you do hit any issues it is not clear if it's a bug or a configuration issue or something else. Hence why I decided to post about this behaviour, even though it sounded strange. If you hit this issue you will have to choose if you want to live with the VBAMDX work around, or cross your fingers and re-install.

Print | posted on Sunday, October 29, 2006 12:09 AM