web viewgoing into fdm classic image to find name of hfm app there / fdm app there and will try...

34
FDM Classic and FDMEE Relational Repositories In Red – hypFDM – is a restore from an FDM Classic relational repository backup. An FDM Classic relational repository was backed up on a different server. The backup file was then copied to this FDMEE server and restored (into “hypFDM”). Below in the Topology section, we configure ODI to be able to use this hypFDM DB as a Source for the Migration Utility. HYPFDMEE (in blue) is a new relational repository created in conjunction with the install for FDMEE. Below in the Topology section, we configure ODI to be able to use this HYPFDMEE DB as a Target for the Migration Utility. (Already done) Step – Backup the FDM Classic Repository. (Already done) Step – Move this repository backup to same DB Server with “new” FDMEE Repository and restore it – you can see the result of this in the red and blue screen above. (Already done) Step – Download patch. You can see this patch unzipped in C:\ClassFiles\p21379349_111240_Generic 1) Let’s look at the Migration guide published by Oracle – it was unzipped on your image. It is part of the patch zip.

Upload: buithuy

Post on 30-Jan-2018

230 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

FDM Classic and FDMEE Relational RepositoriesIn Red – hypFDM – is a restore from an FDM Classic relational repository backup. An FDM Classic relational repository was backed up on a different server. The backup file was then copied to this FDMEE server and restored (into “hypFDM”). Below in the Topology section, we configure ODI to be able to use this hypFDM DB as a Source for the Migration Utility.

HYPFDMEE (in blue) is a new relational repository created in conjunction with the install for FDMEE. Below in the Topology section, we configure ODI to be able to use this HYPFDMEE DB as a Target for the Migration Utility.

(Already done) Step – Backup the FDM Classic Repository.

(Already done) Step – Move this repository backup to same DB Server with “new” FDMEE Repository and restore it – you can see the result of this in the red and blue screen above.

(Already done) Step – Download patch. You can see this patch unzipped in C:\ClassFiles\p21379349_111240_Generic

1) Let’s look at the Migration guide published by Oracle – it was unzipped on your image. It is part of the patch zip.

Page 2: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

(done) FDM Classic – Here I will display the topology we configure for the source (FDM Classic) applicationFDM Classic Data ServerFDM Classic Data Server Definition

User : hypsql

PW : Passw0rd

Page 3: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

(done) FDM Classic Data Server JDBC

Page 4: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

(done) FDM Classic Physical Schema FDM Classic Physical Schema Definition

Page 5: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

(done) FDM Classic Physical Schema Context

Page 6: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

(done) FDMEE FDMEE Data Server – Here we configure the target ( new FDMEE repository)(done) FDMEE Data Server Definition

User : hypsql

PW : Passw0rd

Page 7: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

(done) FDMEE Data Server JDBC

Page 8: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

FDMEE Physical Schema (done) FDMEE Physical Schema Definition

Page 9: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

(done) FDMEE Physical Schema Context

Note : AIF_TGT is hardcoded in Migration Utility so this exact name must be used.

Page 10: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

FYI Source FDM version

What if FDM is on SQL and FDMEE is on Oracle ? or vice versa?

2) Let’s Look at this together

When running aif_fdmc_create_common.sql (see migration guide and sql from oracle in unzipped patch location). on source fdm db, if you try to run this on MS SQL SERVER, it is missing the word “Go” at the end. Easy fix, just add the word “Go” at the end of this SQL Script. If you run it out of the box, you get this error:Msg 156, Level 15, State 1, Procedure TDATASEG_ALL, Line 23Incorrect syntax near the keyword 'CREATE'.

This takes place in the Oracle FDM to FDMEE Migration Guide on Page 9 step 5 :

Page 11: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

1) Import scenarios – point to JUST the directory, then the files will show up down below.Click on the arrow “Load Plans and Scenarios” >> Import Scenario >> Navigate to c:\classfiles\P21379 (see screenshot) and import the two xml files.

Page 12: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB
Page 13: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

NOTE (in guide) : FDMEE does not support parent locations across different target applications. In FDMEEsince a new parent has to be created, before running the migration, copy maps betweenlocations in FDM. You copy maps and set correct parent within the same target application,and then migrate with no parent locations across different target applications. In this wayyou don't have to recreate maps for the second application.

1) Run “setup” scenario

Page 14: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

2) Enter TRAINHFM2 for app name (see screenshot below)3) Enter a prefix – Use your name (see screenshot below)

Page 15: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

Potential Gotchya:

Ran Scenario but got error – (from Operator) ODI-1222: Session start failure on agent Internal: logical schema AIF_TGT cannot be found in the master repository.Caused By: com.sunopsis.core.SnpsInexistantSchemaException: ODI-17523: There is no connection for this logical schema / context pair: AIF_TGT / GLOBAL.

This is b/c there was a section in the guide that was not at all clear about how to set up the ODI “topology” for the target FDMEE (new) DB

AIF_TGT designates the target FDMEE database schema and this specific name (letter for letter) is required.

Page 16: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

Note : Thanks to yours truly, this is done for you on this KScope lab image but you will need to configure this if you are using MS Sql Server (instead of Oracle). If so, you must download sqljdbc4.jar and place it in the ODI Agent’s drivers’ location (details on this ODI Agent drivers’ location below). The JDBC drivers can be downloaded from MS:

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774

pick version 4.0

This jar must be put in the ODI Agent drivers location which, in windows is here :

Page 17: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

JDBC Class : com.microsoft.sqlserver.jdbc.SQLServerDriver

JDBC URL : jdbc:sqlserver://localhost:1433;database=HYPFDMEE

Page 18: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

Post migration :Locations that were migrated :

Page 19: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

Eclipse exercise

Here is what the functions looked like in VBScript:

Function DescOnly(strField, strRecord)

'------------------------------------------------------------------

DescOnly = DW.Utilities.fParseString(strField,2,2,"-")

End Function

Function AccountOnly(strField, strRecord)

AccountOnly = DW.Utilities.fParseString(strField,2,1,"-")

End Function

Here is what it looks like when it comes over from FDM:

Page 20: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

For FDMEE, we will create a script called “StripAccount.py”. We will put this into your import format. Please be sure to use the import format that you created – you can know based on the prefix you chose when you did the import.

1) You may need to fix the product pass Through :

Page 21: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

2) You may need to : Fix the empty products by mapping blank to [None}]

Remember, when you want to see what FDMEE has done to your data records, we can decipher it from workbench… or just look at the dat file in the outbox. (c:\classfiles\outbox)

3) Go to Setup >> Import Format >> Add the script line you see below to the Account row.

Reminder : make sure you do this on your import format (identified by the prefix you used)

Page 22: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

4) (Optional – if time- See Eclipse scripting demo below)5) Add the pre-written script as an “Import Script” called “StripAccount”

a. Setup >> Script Editor >> Import >> Choose “TrainHFM2” as target >> Choose Jython as Technology

Page 23: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

b.

def StripAccount(strfield,strrecord): Fields= strrecord.split("-") Field1=Fields[0] StripAccount=Fields[1] return StripAccountHint – this script has a slight bug in it.

Page 24: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

6) Use Workbench to do a loada. Data Load Rule (Should already be created):

b. Let’s go fishing!

Page 25: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

c. Down on the bottom of the workbench, change to the POV for your migration (depending on the prefix you used)

d. Click Import Fish >> take defaultse. Click Export Fish >> take defaults

HFM Validation1) Finally, let’s Validate your data in HFM

Hint: the POV is wrong.

Page 26: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

Let’s do some Jython Scripting :

Appendix

Create in “Physical Architecture” a new “Data Server” and, under that, a new “Physical Schema”

Page 27: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

And don’t forget to specify which Logical schema to use in the “Global” or whatever context you will use to execute this integration.

We need to create a Logical Schema with this name. It is apparently hardcoded in the integration so we must copy this name exactly : AIF_TGT. We then map the context we will use to the physical schema that points to our target – FDMEE_Target.Hypfdmee.hypsql

Now, when we look at the global context, there is a mapping there for AIF_TGT.

Page 28: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB
Page 29: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

Add a logical schema for the FDMEE (new) target

Page 30: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

Hypsql

Passw0rd

All the logical schemas in Global contexts must be mapped to physical schemas :

Page 31: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

Next error (heads up / gotchya – Just FYIs) :

ODI-1228: Task p_src_con_opr (Variable) fails on the target connection FDMC_DATA_SERVER.

Caused By: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'tCtrlOption'.

Next error : RuntimeError: Target application not found on the source: name=TOTCONSOL, type=HFM

so we have to point to our new hfm application

Got same when I tried FDMTARGET2 which is the name of the target HFM app. Next, I’m trying TRAiNHFM b/c I think that was the name of the source HFM app in classic.?? TBD

Trainhfm didn’t work either. Going into FDM classic image to find name of HFM app there / FDM app there and will try both.

Just tried hypFDM which is what the relational DB (restored from fdm classic install) is named

Just tried FDMAPP which is the name of the FDM APP. RuntimeError: Target application not found on the source: name=FDMAPP, type=HFM

Is this the target app in the classic environement ?

Page 32: Web viewGoing into FDM classic image to find name of HFM app there / FDM app there and will try both. Just tried hypFDM which is what the relational DB

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'hypfdmee.hypsql.AIF_SEQUENCES'.

ODI-1227: Task SrcSet0 (Loading) fails on the source GENERIC_SQL connection FDMC_DATA_SERVER.

Caused By: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'hypFDM.kscope.TPOVPERIOD'.

***** Conclusion : Target HFM app must be TRAINHFM2 *****