Migrating A OneStream App Or Making GolfStream Yours, Part 1
From the Ashes of Disaster Grow the Roses of Success
Were Yr. Obt. Svt. smart, installing a local copy of the GolfStream sample application would have fast, easy (the first part of this post shows how to do it and it really is simple), and error free. Alas, that was not to be because I installed a Really Old version of GolfStream instead of a Brand New one, didn’t quite suss out that I’d done that, cursed OneStream for being an Obviously Buggy Product, and – eventually but only with much pain and error – only after much unfair and unfounded ranting and raving, then figured out what I did incorrectly. My path to success of any sort has always been thus.
Read the below graphic with an infrastructure eye, and everything makes sense.
And yet I did install it and it is easy to do so and fixing the issue was simple. Follow along and I think you’ll agree.
Downloading GolfStream
If you’re an administrator (you are likely to be an administrator if you have the rights to do the below), go to https://xfmarketplace.com and log in:
Yes, that’s me, no I’m not a robot; that’s just a symbol of my deep and abiding alienation. Also, I think kitschy robots are cool.
Getting it
Log into MarketPlace, navigate to Platform:
Click on Reference Material:
And find out how fast your internet connection really is:
Anyone reading this two years from now will of course laugh at the speed but since I started out with these on my Commodore VIC-20…
…I cannot help but be impressed.
Look deeply into my zip file
Have a look see at the Reference zip file and you’ll see the modern version of GolfStream (this is OneStream version 7.01):
Matching the version of GolfStream with your install is (unsurprisingly) important. Of course, if I had done that, there’d be no part two in this blog post series to tempt you back, so I suppose ignoring the version is a “good” thing. It certainly wasn’t all that great for what little sanity I have.
Here’s GolfStream65.zip. Note the file creation dates:
Of course, I didn’t download the latest version.
The old ways are the best ways
Instead, what I did was trawl around till I found a copy of GolfStream from OneStream 4.3.1. Why take my mind out of neutral with the throttle wide open if it requires an extra moment of thought?
2017? That’s when I started with OneStream. Yikes.
No matter, the installation is the same
What you see above in both the latest iteration of GolfStream and one from five (!) years ago, is a series of SQL Server files that contain the entire GolfStream application: cubes, dimensions, Workflow, Business Rules, Cube Views, Dashboards, Data Management Sequences and Steps, Data Sources, and on and on. Import these files into a database on a SQL Server instance, point a OneStream reference to said database, and Bob’s your uncle. What could possibly be easier?
Where, just where?
Assuming you have access to your SQL Server server (this guide does not apply to cloud instances unless you have true server access – unlikely but possible, but read along regardless for the amusement factor if nothing else), you’ll need to figure out where on earth SQL Server’s database files are located as you must copy the GolfStream files to that location.
As I am lazy, I did a quick search and found this excellent article on using SQL Server itself to identify the location.
The query itself (once one copies and pastes it into SQL Server Management Studio’s query window) is simple:
SELECT
mdf.database_id,
mdf.name,
mdf.physical_name as data_file,
ldf.physical_name as log_file,
db_size = CAST((mdf.size * 8.0)/1024 AS DECIMAL(8,2)),
log_size = CAST((ldf.size * 8.0 / 1024) AS DECIMAL(8,2))
FROM (SELECT * FROM sys.master_files WHERE type_desc = ‘ROWS’ ) mdf
JOIN (SELECT * FROM sys.master_files WHERE type_desc = ‘LOG’ ) ldf
ON mdf.database_id = ldf.database_id
Run it in a query window and see where SQL Server files live:
Getting GolfStream into SQL Server
The task then is to navigate to navigate to that folder (in the case of my local install, it’s C:Program FilesMicrosoft SQL ServerMSSQL14.MSSQLSERVERMSSQLDATA) and copy the GolfStream files across.
But copying the files across isn’t enough: SQL Server must know they are there and that can only be done by creating a database by attaching the files.
Right click on the Databases topmost node and select Attach…
Click on Add and then select the OneStream_GolfStream.mdf file.
NB – MDF files are the primary database files that OneStream latches onto. For the curious (if you’ve made it this far, you are one of the sad group of geeks that are curious), see this Stack Overflow post or this Wikipedia article if you don’t already know all about it.
Click on OK:
Let SQL Server whir and creak a bit (this actually quite fast, even on a laptop) and then click on OK:
And ta da, you now have the GolfStream SQL Server database:
Getting it into OneStream
SQL Server now has the guts of the GolfStream application. OneStream itself needs to know that GolfStream database exists.
To do that, connect to OneStream and select the (System Administration) application:
As the application tables are already created, create a reference to the database:
Select the explicitly named “OneStream Database Server” connection (although the default works as well but my OCD doesn’t allow me to do that):
And then type in the name of the SQL Server database you’ve just created:
The GolfStream application is now created:
Log out of the system administration application and then connect to GolfStream:
Success! Boil in bag!
Or is it? I – happily and quite erroneously – thought I was done, but when I tried creating a Quick View:
Bummer. Bugger. Boohoo.
So what happened and how does it get fixed?
As I noted at the tippy top of this post, I cleverly imported an ancient version of GolfStream. I’ll not keep you in suspense and not tell you what’s gone wrong: the tables in the GolfStream SQL Server database are out of date and while many things work, not everything as evinced by the above error message.
The fix is easy-peasy and will be the subject of the next post in this series. There’s not a jot of code, merely running through a series of updates via the Database Configuration Utility.
I pinky promise, it’s simple. Tune in next time to see the magic.
Be seeing you.