As part of a project, we needed to change the datatypes of multiple cubes from Currency to Double. Given we are almost done the project, we want to do this with the easiest, and least risky, method. Using the extract and reload actions in a procedure, we were able to do so in just a few minutes. At a high level, we extracted all the trees, entities and cubes out to text files, made our changes, and then reloaded the cubes. Along with changing the datatype from Currency to Double, we also updated the the max item number for each dimension to make sure our saturation was less than 75%. This gives us some room for the solution to grow over time.
Extract/reload actions should not be applied in every application. In complex applications, we need to consider if this is the right approach or not. Fixed selections, rules, and other logic should be reviewed to see if it may have any side effects. As with any action that affects structures or data, be sure to take backups before trying any of these items. This worked for our particular case because we don't have any complex rules or fixed selections. We only have 30 cubes in our solution, so it's more manageable than solutions with hundreds of cubes to consider.
We could have split the extract steps into one procedure and then the reload steps into another procedure, but we decided to keep everything in one place. Depending on what action we want, we just enable or disable certain steps and run the procedure.