Académique Documents
Professionnel Documents
Culture Documents
This document will cover the most commonly asked Financial Management copy
application utility questions and issues as well as covering the usage and functionality.
The utility screens will be shown and options will be explained for the most current utility
version, which as of this writing comes from the 11.1.2.2.303 and 11.1.2.3.000 releases.
Top of Document
Copy utilities from 11.1.2.0.000 through 11.1.2.1.103 should only be run from an
HFM application server.
Top of Document
When running against an Oracle database using the 64-bit copy utility from
releases 11.1.1.3.500+ and 11.1.2.1+, the Oracle Provider for OLE DB must be the
same major version as the database. If running against a 10.2.0.4 or 11R1 Oracle
database then the Oracle Provider for OLE DB must be patched to 10.2.0.4.21+ or
11.1.0.7.33+. Note that the 11.2.0.1 Oracle Provider for OLE DB does not require
patching. This requirement is documented in the HFM Readme for these releases
but is easily over looked when a newer copy utility version is used in an older
release environment that may not be patched.
Except for releases 11.1.2.0.000 through 11.1.2.1.103, the copy utility can be run
on any server or workstation that has a properly configured UDL file(s) with access
to Source and Target databases. Releases 11.1.2.0.000 through 11.1.2.1.103
should only be run from an HFM application server.
All 11.1.2 releases require you to manually create a UDL file. Prior to this release,
UDL files were created as part of the HFM application server configuration process
however starting with 11.1.2 the connection details are stored in HIT registry and
no UDL file is created during application server configuration.
The utility can copy between RDBMS versions and vendors: Oracle, MS SQL and
DB2.
The utility can be used to copy an older versioned application into a newer
versioned environment to allow the Schema Upgrade utility to upgrade the newly
copied application:
o Example: Copying an application from an older release in Production to a
newer release in a Test environment. The application can be refreshed from
production into test and schema upgrade utility run again.
For System 9 and 11 releases, the copied application must be registered with
Shared Services in the Target Environment after the application has been
successfully copied. A Security extract must be made in the Source environment
and loaded in the newly copied application before user provisioning is properly
setup. For cases where the Target application is being replaced, meaning the
copied application uses the same name of an existing application in the Target
environment, it is not required to re-register the application but security should still
Task Flows are not copied along with the Financial Management application; Task
Flows are stored in the Shared Services database. Use Life cycle management
introduced in 11.1.1.0 to export and import Task Flows between environments.
Task Flows must be manually created in earlier releases.
Starting with 11.1.1.3.050, the utility can copy EPM Architect enabled applications.
The Target application will be converted to a Classic application. If the Target
application already exists then it must be deleted prior to copying. After the copy is
complete, the application can be upgraded again to re-enable EPM Architect or it
can be left as a Classic application.
Do not copy over an existing application when the Target application is currently
running.
o Example: Copy an application from Production to Test and replacing an
application in Test while the application is open. This will cause the
application tables to be out of sync with the metadata and data loaded in
memory in the HsvDataSource process resulting in any number of application
related errors. When this happens the copied application in the Target
environment must be shut down and the copy run again.
It is not required that you delete a Classic application from the UI in the Target
environment before running the utility to copy over an existing application. The
utility provides options to drop all tables related to an application being copied in
the Target environment. However, deleting an application from the UI in the Target
environment is an effective way to ensure the application is shutdown in the Target
environment while the application is being copied.
The log file created during the application copy is now located in the
EPM_ORACLE_HOME\logs\hfm folder.
Do not copy an application when users are active in the Source application. The
utility copies a number of tables at a time, 1 table for every thread configured in
the Advanced Options tab. When users are active in an application, updates are
made to the application tables; therefore, if active users are updating tables in the
Source application while the copy is running, then this will result in the copied
No assertions are made about the utility’s performance. Due to the nature of the
utility copying many tables, typically with millions of rows per table, high database
loads are expected on Source and Target environments and performance will be
directly related to the infrastructure’s ability to handle the load.
The copy utility is not meant to replace the RDBMS vendor backup and restore
utilities to recover from catastrophic failures. The RDBMS backup and restore
software will always be faster and more secure and should be used whenever
possible.
The copy utility will cause a great deal of transaction log / redo log activity. Each
row copied will generate a transaction record. For MS SQL databases, the DBA can
change the Target database recovery model to Simple and create a full database
backup after the copy is complete. Another consideration for MS SQL is to shrink
the transaction logs after the copy is complete. For Oracle, if the instance is
configured for Archiving, the DBA should consider the impact on the redo logs and
the archive process. The amount of redo generated by the copy will impact the
Mean Time To Recover.
Top of Document
*New to the 11 releases is the ability to perform direct database copies. If the Target
application is in the same database for the same schema (user), then the data will not be
brought out prior to copying to the new tables. Instead, a database INSERT INTO …
SELECT FROM… will be executed. This will increase performance for the application copy.
The log file created during the application copy is now located in the
EPM_ORACLE_HOME\logs\hfm folder. If EPM_ORACLE_HOME environment variable is not
set, example would be when running the utility directly on the database server, then the
log will be created in %Temp%.
Top of Document
Welcome screen
Starting with 11.1.2.2.302, you now have the option to copy an application or to rename
the application in-place. Note that the renamed application must be registered to Shared
Services, just like a copied application, before it can be accessed.
Starting with 11.1.2.2.302, you have 3 options to connect to the data source:
Use Pre-configured HFM database connection: The utility reads the HFM
database connection details from HIT for the Source connection. This option is
available only when HIT configuration has been detected.
Use UDL File: Select the >> button to navigate to the proper UDL file for the
Source environment. UDL must be manually created.
Enter Connection Information: UI allows you to manually enter connection
details.
The list of applications is retrieved from the Hsx_DataSources table in the Source
environment.
Starting with 11.1.2.2.302, you have 3 options to connect to the data source:
Use Pre-configured HFM database connection: The utility reads the HFM
database connection details from HIT for the Target connection. This option is
available only when HIT configuration has been detected.
Use UDL File: Select the >> button to navigate to the proper UDL file for the
Source environment. UDL must be manually created.
Enter Connection Information: UI allows you to manually enter connection
details.
For the Target destination, the utility will read the Windows registry and populate the drop
down with the names of applications that were previously copied. If this is the first time
running the utility then it will show only the Source application name. The registry key
read is user specific, HKEY_CURRENT_USER\Software\Hyperion
Solutions\HfmCopyApplication\Settings or HKEY_CURRENT_USER\Software\Hyperion
Solutions\HfmCopyApplication_x64\Settings, and the values read to populate the drop
down are DestApp00 – DestAppXX. You may select an existing application name from the
drop down or manually type a new application name. The Target application name must
adhere to the naming convention as covered in the Financial Management Administrators
guide.
Options
Copy Application Data: This box is typically checked to generate an identical copy of the
Source application. Clear this check box to create a “shell” application. Application
metadata tables will be copied and populated while data tables are only created but are
not populated.
Copy Cluster Settings: This check box should normally not be checked. This will copy
the Financial Management Cluster related tables only if the Source environment has a
cluster defined. Copying this information between Production and Test can cause cross
over connections where Test environments connecting to a cluster actually connect to the
Production application servers.
Overwrite existing Application (if it exists): In general always select “Drop All
Application tables prior to copy”. It is possible for the Target application to have Scenario
and Year data populated that the Source application does not have and not dropping these
tables would introduce variances in the newly copied application compared to the Source
application. The circumstances in which “Only drop tables that are being copied” would be
a valid option would be rare.
*Note that the HFM_Errorlog table is not copied by this utility regardless of the options
selected.
The Advanced Options dialog is broken up in to three pages. It would typically not be
required to make any changes to any selections on these tabs unless directed by Support
to address a specific situation.
Use Client-Side Cursors: This option will bring all row data to the client from the
RDBMS server. The server will cache no data. All caching will occur on the client,
meaning the client will require more memory and the server will require less memory.
Reduce the number of threads to 2 x Number of CPUs if this option is selected. Use this
option if Server-Side cursors fail.
Use Server-Side Cursors: This option will run faster and require less memory on the
client. The data set will be cached on the server (requiring more resources on the
server). This is the default option.
SQL Binding: This option specifies how the SQL statement is executed on the server.
The default is to use SQL binding. Change this option to not use SQL binding if excessive
errors occur or “Multi-Step OLE DB Errors” occur. It is best to leave this option on and
then restart any failed processes with this option disabled (if the error is a “Multi-Step…”
error).
Thread Usage: This option allows the user to specify the number of processing threads.
The minimum is one and the maximum is twenty. This option basically controls how
Log SQL Errors: This option specifies whether to output every SQL error to the log file.
Please note, some errors are expected. You may see errors for the attempt to drop tables
that do not exist or the defaulting of sequence values. This is acceptable. Do not use the
presence of SQL errors in the log to gauge whether the processing succeeded. This option
is not checked by default to reduce confusion when reviewing the log.
Number of Task retries: This option specifies the number of times a query should be
re-executed in the event of a failure. This is to resolve possible deadlock issues when
inserting data in the database.
Data Options
The Data Options tab allows you to control what data is actually copied. The Copy
Application Data check box must be checked on the Options screen before any data will be
copied. The screen shot below shows non-default selections where the utility would only
copy data in years 2006 and 2007 for the Actual Scenario:
Year Options
Limit Data to one or more Years: Select this option when you need to copy a
subset of historical data. Be careful to consider the impact Rules may have when
previous Year data is not copied.
Limit data to one or more Scenarios: Select this option to copy only a subset of
the overall application. Be care to consider the impact Rules may have when
Scenarios are not copied
Data Options
Do not export Numeric Data: When this option is selected the numeric data is
not copied but cell text and line item detail information is copied.
Do not export User data (grids, forms, reports, etc): This is information
maintained in the USERPARAMS.
Note the warning that these options will impact performance and require more database
sort area. The utility does a join on the DCN and DCE tables with the metadata ITEM
tables.
Filter invalid Calc Status Records: Invalid Calc status records are the result of
Meta Data changes. This option selects only the rows for which the entity and
value exist in the database.
Filter invalid Data Records: Invalid Data status records are the result of Meta
Data changes. This option selects only the rows where the entity, account, ICP,
custom1-4 exist.
Filter Zero value data records: Zeros in the application can impact application
performance. The utility does not copy rows found to have zeros for all periods.
Data Table: consist of all Scenario/Year tables (DCN, DCE, CSN, CSE, LID, TXT, RTD,
etc). These tables are generally written to and read from quite frequently. They
generally have large amounts of relatively small rows.
Metadata Tables: consist of all of the metadata based tables (DESC, LAYOUT, HEADER,
ITEM). These tables are read from and written to fairly infrequently. They have small
numbers of small rows.
System Tables: are read from rather frequently (HSV, HSX, HFM). Excluding the
HFM_ERRORLOG table (which is not read or written to by the Copy App utility) these
tables have small row counts.
Audit Tables: generally have large numbers of rows of medium sized data. They are
written to rather frequently and read from infrequently.
BLOB Tables: (the current option shows LOB tables but will be changed to read BLOB in
the next release) have BLOB columns that are broken up to 2Kb chunks. These tables are
read from more frequently than written to.
Data Tablespace: Allows you to control where data objects are created by copy utility.
Change from <Default> is only needed in environments where DBA wants to separate
data and index objects. Note that the HFM application server(s) should also be configured
to use the same tablespace options so new tables are created in the expected location.
Index Tablespace: Allows you to control where index objects are created by copy
utility. Change from <Default> is only needed in environments where DBA wants to
separate data and index objects. Note that the HFM application server(s) should also be
configured to use the same tablespace options so new indexes are created in the expected
location. When the Target database is MS SQL Server, you will see all File groups
configured for the specific database configured in the Target UDL. When the Target
database is Oracle, you will see a list of all tablespaces that the user has quota to create
objects.
Confirmation screen
This screen allows you to verify all settings before selecting “Next” to start the copy
process.
The processing status screen displays the current status of each task. To see the log
entries for any given task at any time during processing, simply double-click on the task
row to display the Task Entry Log screen.
Note that when the Source and Target are the same database and the same schema
(user) the utility does not process each table row by row, instead an INSERT
INTO…SELECT FROM statement is used. As a result of this, the utility will not display a
row count showing the number of rows that have been processed but the log still will
show the number of rows copied.
Completed Tasks
To see the log entries for any task, running or completed, double click on the entry in the
Task Status window. If the Display SQL Errors option has been selected, the error
generated by the RDBMS will also be displayed in the log.
If the Task Entry Log screen is displayed after all processing has completed, you will have
the option of restarting the task.
Once all processing has completed, you can go to any task in the list, double-click on the
entry and activate the Restart Task page. From this page you can change task options
and select the Restart Task button. The task will then be re-executed with the new
options (if any). The task entry in the Processing Status screen will be updated with
current Task progress.
If all tables have successfully copied then select “OK” to see the Finish screen.
From the Finished screen, you can review the log file.
Top of Document
The command line utility has the same options as the GUI based utility with the exception
being that there is no progress window to look at competed tasks and no option to retry a
failed task. In order to run the command line utility, the machine running the utility must
have installed the Microsoft Visual C++ 2005 SP1 Redistributable Package. This package
is installed by the EPM 11 release installer so it does not need to be manually installed
when running from an HFM application server but it may be necessary to install if the copy
utility is run on a database server directly. The Redistributable Package may be
downloaded from Microsoft directly:
for x86
http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647
http://www.microsoft.com/downloads/details.aspx?familyid=EB4EBE2D-33C0-4A47-9DD4-B9A6D7BD44DA for x64.
Usage:
Optional Parameters:
-o="<log file path>" Default is HYPERION_HOME\logs\hfm\HfmCopyApp.log
-cd=Y/N Copy data (default is Y)
-cdt=Y/N Copy data tables (default is Y) see notes
-ca=Y/N Copy Audit data (default is N)
-cc=Y/N Copy Cluster information (default is N)
-r=Y/N Replace destination app if it exists (default is Y)
-da=Y/N If Replace Existing is true, this flag specifies whether to drop all tables
prior to copy (default Y) or only drop tables being copied (N)
-e=Y/N Log and SQL errors generated during copy (default is N)
-ss=Y/N Use server-side cursors (default is Y)
-sb=Y/N Use SQL binding (default is Y)
-fn=Y/N Filter numeric data (default is N)
-fu=Y/N Filter user data (default is N)
-ic=Y/N Filter invalid Calc Status records (default is N)
-id=Y/N Filter invalid data records (default is N)
-z=Y/N Filter zero value data records (default is N)
-t=<Num> Number of processing threads (default is num CPUs x 2)
-c=<Num> SQL Command Timeout setting (default is zero. no timeout)
Notes:
Place quotes around all parameters that contain spaces.
In order to disable creation of data tables (cdt), you must disable data copy (cd). The
option -cd=N must appear before the -cdt=N. If this order is not correct, tables will be
created anyway.
Tablespaces (index and data) must be listed in the following order. If you do not wish to
provide a tablespace for a given type, simply omit it but leave its semi-colon delimiter.
-dts="DEFAULT;DATA;METADATA;SYSTEM;AUDIT;LOB;"
where
DEFAULT = The tablespace where all un-specified tables or indexes will reside
DATA = The tablespace where Data table (DCN,DCE,CSE,CSE, etc) data or indexes
will reside
METADATA = The tablespace where all Metadata tables or indexes will reside
SYSTEM = The tablespace where all system tables or indexes will reside
AUDIT = The tablespace where all audit table data or indexes will reside
LOB = The tablespace where the BINARYFILES and USERPARAMS tables or indexes
will
reside
All parameters must be listed on a separate line. Parameters can be in any order. Use
command HfmCopyAppCmd.exe -cf="<filename>" to create a blank parameter file.
hfmcopyappcmd_x64.exe -
S="D:\oracle\Middleware\EPMSystem11R1\products\FinancialManagement\hfm.udl" -s=Comma11
-D="D:\oracle\Middleware\EPMSystem11R1\products\FinancialManagement\hfm.udl" -
d=Comma112 -r=Y -da=Y
The following shows what the top section of a log looks like:
One step in the initialization is the creation of 2 cache tables in the Source environment
named HFMCAU_COLUMN_INFO and HFMCAU_INDEX_INFO. These 2 tables contain the
table and index Data Definition Language (DDL) to use when creating the new tables in
the Target environment. The cache tables are dropped when the copy utility successfully
completes. An error in the initializing section related to these 2 cache tables usually
either means the RDBMS user in the Source UDL file does not have the rights to create
tables or that these 2 cache tables already exist but were created from an older version of
the utility. DBA can check and drop these 2 tables if they are found to exist when the
copy utility is not running. The information contained in these 2 tables allows the utility to
create the Target tables faster as the DDL can be retrieved faster from the tables rather
than generating the DDL one table at a time while the utility is running. If the cache
tables are not able to be created for any reason the Target application can still be
successfully copied.
Next is an example of an error caused when a newer version of the copy utility tries to
update preexisting cache tables left over from a failed copy attempt started from an older
utility version. Manually dropping these 2 tables prevents the error from happening the
next time the utility is run:
The next log snippet shows an error occurring while copying a table when the database
ran out of space:
Top of Document