Environment Migration

Post Reply
tomok
MVP
Posts: 2831
Joined: Tue Feb 16, 2010 2:39 pm
OLAP Product: TM1, Palo
Version: Beginning of time thru 10.2
Excel Version: 2003-2007-2010-2013
Location: Atlanta, GA
Contact:

Environment Migration

Post by tomok »

Hi All, I'm looking for ideas concerning migrating TM1 models between DEV, QA and PROD. I have a good understanding of the contents of the data folder, as well as the TM1Web folders and know what can be found in there. I have tried two different approaches to migrations and they both come up lacking. For discussion purposes let's say I have three TM1 services called DEV, QA and PROD and they are all on separate machines:

1. Copy the contents of the data folder from QA to PROD and recycyle PROD service. Works great except all my reports have the word "QA" in them so I have to open each report, rename "QA" to "PROD", and update.
2. Give QA and PROD services the same name. Then when I copy the data folder over reports don't have to be republished. Problem is now I can't be logged into both QA and PROD at the same time (to do validation) because both services have the same name.

Does anyone have any ideas or workarounds to solve these problems?
Tom O'Kelley - Manager Finance Systems
American Tower
http://www.onlinecourtreservations.com/
blackhawk
Community Contributor
Posts: 136
Joined: Thu May 29, 2008 2:29 pm

Re: Environment Migration

Post by blackhawk »

What you could do is create in each report three formulas:

A1: =TM1User("Prod")
A2: =TM1User("Dev")
A3: =TM1User("QA")

Then in in A4, just put an if statement like this:

A4: =IF( A1 <> "", "Prod:", IF( A2 <> "", "Dev:", IF( A3 <> "", "QA:", "" )))
A5: ="Financials"

Then in all your other report fomulas, just use something like:

=DBRW( $A$4 + $A$5, B1, B2, ... );

Now, whatever server you are logged into, will show up properly in the report!
User avatar
Martin Ryan
Site Admin
Posts: 1988
Joined: Sat May 10, 2008 9:08 am
OLAP Product: TM1
Version: 10.1
Excel Version: 2010
Location: Wellington, New Zealand
Contact:

Re: Environment Migration

Post by Martin Ryan »

My own way of handling it would be your first option (I like Blackhawk's idea though). Provided you don't have that many reports it's not too difficult to update it all and you can always write a VBA routine that opens up all the reports and makes the necessary changes (I think someone on the forum has this code, perhaps they might be able to share). Then the only slow part is adding them to the applications folder.

I don't like option 2, there's two much chance of someone stuffing up a live system by mistake.

Can't think of an option three either. I've always thought TM1 handles module promotion poorly. Cubewise's hot promote tool goes someway to addressing this, though I don't think it helps with your reports.

Martin
Please do not send technical questions via private message or email. Post them in the forum where you'll probably get a faster reply, and everyone can benefit from the answers.
Jodi Ryan Family Lawyer
blackhawk
Community Contributor
Posts: 136
Joined: Thu May 29, 2008 2:29 pm

Re: Environment Migration

Post by blackhawk »

I should probably mention that you may want to put the IF statement in order of precedence in the event that you are connected to more than one server. As a developer, I would suggest DEV, QA and then PROD, so you don't accidently change something in prod :shock:

As a user who has access to these other environments, the order may be different; so take that into consideration when you put them into your reports.


Good luck!
dubs
Posts: 131
Joined: Fri May 22, 2009 10:43 am
Version: 9.4
Excel Version: 2003

Re: Environment Migration

Post by dubs »

tomok wrote:Hi All, I'm looking for ideas concerning migrating TM1 models between DEV, QA and PROD. I have a good understanding of the contents of the data folder, as well as the TM1Web folders and know what can be found in there. I have tried two different approaches to migrations and they both come up lacking. For discussion purposes let's say I have three TM1 services called DEV, QA and PROD and they are all on separate machines:

1. Copy the contents of the data folder from QA to PROD and recycyle PROD service. Works great except all my reports have the word "QA" in them so I have to open each report, rename "QA" to "PROD", and update.
2. Give QA and PROD services the same name. Then when I copy the data folder over reports don't have to be republished. Problem is now I can't be logged into both QA and PROD at the same time (to do validation) because both services have the same name.

Does anyone have any ideas or workarounds to solve these problems?
I had to write a bit of VBA to go through my reports and update the server name references, in terms of internal TM1 stuff I put all my references in a cube but for the reports the only way I could do this was to use VBA.

As you are using TM1Web I have no idea how you would do this so think the second option is probably best - I thought you said you had these environments on different machines - do you have separate web services running for each? if so surely it would be a case of connecting to PROD on the dev server IP and connecting to PROD on the prod server IP using different browser sessions? I do tend to agree with blackhawk that its better to have unique names so you know where you are but know many would suggest keeping the names the same.
User avatar
Steve Vincent
Site Admin
Posts: 1054
Joined: Mon May 12, 2008 8:33 am
OLAP Product: TM1
Version: 10.2.2 FP1
Excel Version: 2010
Location: UK

Re: Environment Migration

Post by Steve Vincent »

blackhawk wrote:What you could do is create in each report three formulas:

A1: =TM1User("Prod")
A2: =TM1User("Dev")
A3: =TM1User("QA")

Then in in A4, just put an if statement like this:

A4: =IF( A1 <> "", "Prod:", IF( A2 <> "", "Dev:", IF( A3 <> "", "QA:", "" )))
A5: ="Financials"

Then in all your other report fomulas, just use something like:

=DBRW( $A$4 + $A$5, B1, B2, ... );

Now, whatever server you are logged into, will show up properly in the report!
I like that solution but it doesn't cover everything. Where DIMIX, SUBNM, ELPAR etc are concerned you'll get varying results with that route. My main bug bare is that SUBNM looses its double click functionality when the dimension reference is a cell value and not hard coded. For that reason alone i stick with the good old find a replace. Shame...
If this were a dictatorship, it would be a heck of a lot easier, just so long as I'm the dictator.
Production: Planning Analytics 64 bit 2.0.5, Windows 2016 Server. Excel 2016, IE11 for t'internet
User avatar
Alan Kirk
Site Admin
Posts: 6606
Joined: Sun May 11, 2008 2:30 am
OLAP Product: TM1
Version: PA2.0.9.18 Classic NO PAW!
Excel Version: 2013 and Office 365
Location: Sydney, Australia
Contact:

Re: Environment Migration

Post by Alan Kirk »

Steve Vincent wrote:
blackhawk wrote:What you could do is create in each report three formulas:

A1: =TM1User("Prod")
A2: =TM1User("Dev")
A3: =TM1User("QA")

Then in in A4, just put an if statement like this:

A4: =IF( A1 <> "", "Prod:", IF( A2 <> "", "Dev:", IF( A3 <> "", "QA:", "" )))
A5: ="Financials"

Then in all your other report fomulas, just use something like:

=DBRW( $A$4 + $A$5, B1, B2, ... );

Now, whatever server you are logged into, will show up properly in the report!
I like that solution but it doesn't cover everything. Where DIMIX, SUBNM, ELPAR etc are concerned you'll get varying results with that route. My main bug bare is that SUBNM looses its double click functionality when the dimension reference is a cell value and not hard coded. For that reason alone i stick with the good old find a replace. Shame...
In your version. This changed in 9.4 remember. In fact, it's a FAQ. ;) (Under the heading "Functionality of SubNm, including change in 9.4.1" in the User Interface section.)
"To them, equipment failure is terrifying. To me, it’s 'Tuesday.' "
-----------
Before posting, please check the documentation, the FAQ, the Search function and FOR THE LOVE OF GLUB the Request Guidelines.
User avatar
Steve Vincent
Site Admin
Posts: 1054
Joined: Mon May 12, 2008 8:33 am
OLAP Product: TM1
Version: 10.2.2 FP1
Excel Version: 2010
Location: UK

Re: Environment Migration

Post by Steve Vincent »

Now why would i read a FAQ on a version that i *still* can't this place to upgrade to? :lol:

[thanks Alan]
If this were a dictatorship, it would be a heck of a lot easier, just so long as I'm the dictator.
Production: Planning Analytics 64 bit 2.0.5, Windows 2016 Server. Excel 2016, IE11 for t'internet
ub14
Posts: 25
Joined: Mon Aug 24, 2009 11:13 am
OLAP Product: TM1
Version: 10.2
Excel Version: 2010

Re: Environment Migration

Post by ub14 »

Hi,

We have similar issue, need to migrate set of .pro files to qa/uat/prod. In TI Process , we are using ODBC Data source, providing usrid/pwd for dev enviornment. but when we migrate to different environment ,the usrid/pwd may be different, so everytime we need to modify this manually. Is there any we can automate the usid/pws udpation process based on some scripts ?

Thanks in advance
vsub
Thanks & Regards
vsu
moby91
MVP
Posts: 227
Joined: Fri Mar 11, 2011 2:18 pm
OLAP Product: TM1
Version: 9.5.1
Excel Version: 2003 2007

Re: Environment Migration

Post by moby91 »

ub14 wrote:Is there any we can automate the usid/pws udpation process based on some scripts ?
What about using the TI Local Variables DatasourceUsername and DatasourcePassword ?


See the manual TM1 9.5.2 Reference Guide ->

http://publib.boulder.ibm.com/infocente ... ceusername
TM1 9.5.2 Reference
TM1 TurboIntegrator Variables > TurboIntegrator Local Variables >
DatasourceUsername

http://publib.boulder.ibm.com/infocente ... cepassword
TM1 9.5.2 Reference
TM1 TurboIntegrator Variables > TurboIntegrator Local Variables >
DatasourcePassword


See the thread ->

http://www.tm1forum.com/viewtopic.php?f=3&t=3020
datasource username and password
ub14
Posts: 25
Joined: Mon Aug 24, 2009 11:13 am
OLAP Product: TM1
Version: 10.2
Excel Version: 2010

Re: Environment Migration

Post by ub14 »

where can i set the local variables DatasourceUserName and DatasourcePassword dynamically for ODBC Datasource. These local variables are temporary and will be deleted after every process run (Local variables exist only in the context of the process in which they are used, and are not available outside of the process. Local variables are destroyed when a process exits).
Thanks & Regards
vsu
User avatar
qml
MVP
Posts: 1094
Joined: Mon Feb 01, 2010 1:01 pm
OLAP Product: TM1 / Planning Analytics
Version: 2.0.9 and all previous
Excel Version: 2007 - 2016
Location: London, UK, Europe

Re: Environment Migration

Post by qml »

Each of your 3 server instances could have a "system parameters" cube that would store all the file paths, connection passwords and what not. Then your TIs could pull this data from the cube and use the mentioned TI local variables to change/set connection params to those that would be right for the given server.
Kamil Arendt
jstrygner
MVP
Posts: 195
Joined: Wed Jul 22, 2009 10:35 pm
OLAP Product: TM1
Version: 9.5.2 FP3
Excel Version: 2010

Re: Environment Migration

Post by jstrygner »

The name of the ODBC connection - I agree that the best way is to put it in a cube (or attribute that in fact also is a cube).

I once had an issue, when TM1 administrators were not supposed to see user id and password for the ODBC (if you'd store those in TM1, they would).

It was a windows, so in this case we used regedit and stored password and ID in here (attachment) and in TI you left user id and password blank.
Attachments
20110706 - ODBC - id and psswd.JPG
20110706 - ODBC - id and psswd.JPG (63.58 KiB) Viewed 12440 times
ub14
Posts: 25
Joined: Mon Aug 24, 2009 11:13 am
OLAP Product: TM1
Version: 10.2
Excel Version: 2010

Re: Environment Migration

Post by ub14 »

Hi,

We are trying to call set of TI Process through master TI Process by passing DataSource,userid and Password as parameters. with below prolog statment in master ti and calling the child TI Process.

master TI Prolog statment:
=========================
ExecuteProcess(processName,'PDataSource',DataSourceNameForServer,'PUserName',DataSourceUsername,'Ppassword',DataSourcePassword);

Child TI Prolog statements
======================
DataSourceNameForServer=PDataSource;
DataSourceUsername=PUserName;
DataSourcePassword=Ppassword;

The Process is failing with unable to open DataSource error everytime, but when we go and update password odbc dsn in registry, the process working fine.

We would like to know is there any way we can avoid this since we can't frequently update the password change in other environments (lke Production).
Thanks & Regards
vsu
Post Reply