Migrating Discoverer EULs From Development To Production
February 19th, 2005 by Mark Rittman
I was with a client this week who had an issue with migrating Discoverer End
User Layers from one environment to another. He would make some changes in the
development EUL, then import the changed business areas into the test EUL, but
often he’d get multiple copies of folders, items and hierarchies, and every once
in a while a worksheet would refuse to run as a certain join could not be found.
From speaking to the client, the process he went through to migrate an EUL
was as follows:
- Firstly, he’d use the Discoverer Administrator Export feature to export
an ".eex" file containing one or more business areas - Next, he’d log on to his target EUL, and then use the Import Wizard to
select the .eex file he’d created. - Then, he’d import in the .eex file using the default settings :
and proceed with the import.
What happened then is that the Import Wizard would create an additional
folder for each imported one that already existing in the EUL, giving it the
name "Customers1" if for example the original folder name was "Customers". In
addition, the Import Wizard would create additional copies of any hierarchies
that were imported but already existed in the EUL, which after a while led to a
situation where multiple copies of folders, items and hierarchies existed for
each import that had taken place.
The next step the client took was to do the export as before, but this time
manually delete any business areas from the target EUL before importing in the .eex
file. Whilst this got round the problem of creating multiple incarnations of
folders and hierarchies, the problem now was that certain worksheets, when
opened, complained that joins could not be found and had to be recreated before
they could be used.
I’d heard of this problem before but also knew that there was a recommended
way to migrate EULs from one environment to another without these problems
occurring. The first step therefore was to take a look on metalink, and I
quickly came across note 62513.1 entitled
"Migrating a Discoverer Environment Between Two Databases" which looks at
both migrating whole EUL and in our instance migrating individual business
areas. I also had a word with Michael
Armstrong-Smith, who’s a
regular
contributor to the
OTN Discoverer
Forum and is the author behind the forthcoming
Oracle Press
Discoverer Handbook, Second Edition. Michael’s advice on this process was:
"When importing data into the Admin edition, a user will be presented
with a dialog box called Import Wizard Step 2. Step 1 is where the user
names the EEX file to be imported. In step 2 of the wizard the use has to
answer certain questions. These are:
- if two object match what action should occur?
I would normally select the fourth option - Refresh the object and then
check the sub-box called Preserve display related properties
- How should two objects be matched up?
If I am confident that my EULs were in sync before I changed one of
them, I would always go by Identifier. However, if I have manually
changed any of my identifiers then I would have no choice but to select
By Display Name. There is an issue here in that if the user has changed
the display name and inadvertently changed the identifier as well,
Discoverer will be unable to confirm that this import does in fact
contain a change and it will create a new business area. It is very
important therefore that users do not change both identifiers and
display names at the same time!
- Should the current user take ownership of imported workbooks?
I would normally set this to Only take ownership if original owner
cannot be found."
What this does then is use the contents of the .eex file to refresh existing
folders (and their items) if they exist already, and create new folders if they
don’t currently exist in the target EUL. It matches the folders by identifier,
which in most cases should match up, and only changes ownership of the workbooks
if the the original owner doesn’t have an account on the target database. The
only change I’d make to Michael’s approach is to uncheck the "Preserve display
related properties" checkbox as otherwise any changes you’ve made to object
names (folders, items etc) won’t be brought through when you refresh the
business areas.

Thanks to Michael
for his help with this topic.


February 22nd, 2005 at 2:04 pm
BEWARE:
If the timestamp of the Target EUL is the same as the source EUL, then Discoverer will assume that the EUL’s are the same and match objects by internal ID instead of the developer key. An ID in the source can by assigned to a totally different item in the target, depending on what (Manual) changes you applied to the EUL’s
Please read Metalink Note:267476.1 in addition to this: http://metalink.oracle.com/metalink/plsql/ml2_documents.showFrameDocument?p_database_id=NOT&p_id=267476.1