FDQM/EE Loading Metadata to on-premise and cloud EPM Applications – Part-2


Import Format

The import format will map the columns from the source file to the dimensions in the custom application, or set defaults for properties that are the same for every member. In other cases, some of the members are set to the text “BLANK” so that mapping will succeed, but then values for the BLANK members may or may not be set by the by the event script. The use of the text for BLANK is specifically required when using the output dat file to generate the metadata file. If pulling directly from TDATASEG the user may not need to use this method.

Please also note that the AMOUNT field should be set to any valid numeric amount so that the input file will be successfully processed. In addition, a SKIP row may be required if the input file includes a header record.
For this example, the Import Format is defined as follows:

Event Scripts
In this example, an AftExportToDat and BefLoad script were used to process the file and then push the metadata to HFM. It’s possible to perform everything needed in a single script if desired by the user, and alternate implementations are possible. The script details are as follows:

AftExportToDat – Generate the metadata file in the format required by HFM

import shutil
#Open the .dat file generated by FDMEE
datFileName = str(fdmContext[“OUTBOXDIR”].replace(“\\”,”/”)) + “/” + str(fdmContext[“TARGETAPPNAME”]) + “_” + str(fdmContext[“LOADID”]) + “.dat”
datFile = open(datFileName,”r”)
#Open the .app file to be created for HFM
appFileName = str(fdmContext[“OUTBOXDIR”].replace(“\\”,”/”)) + “/” + str(fdmContext[“TARGETAPPNAME”]) + “_” + str(fdmContext[“LOADID”]) + “.app”
appFile = open(appFileName,”w”)
#Create .app file Header lines
appFile.write(“!FILE_FORMAT=11.12\n!VERSION=11.1.5250\n!CUSTOM_ORDER=Movement;CostCenter;Location;Nature\n\n”)
appFile.write(“!MEMBERS=Entity\n’Label;DefCurrency;AllowAdjs;IsICP;AllowAdjFromChildren;SecurityClass;UserDefined1;UserDefined2;UserDefined3;HoldingCompany;SecurityAsPartner;Default Parent;Description(s)\n”)
#Include a counter to skip record in the .dat file generated by FDMEE
i = 0
#Parse the records in .dat file & replace BLANKs with empty string. (FDMEE puts BLANK for empty columns by default & might be rejected by target EPM application.)
for memberLine in datFile:
i = i + 1
if i > 1:
memberLine = memberLine.replace(“BLANK”,””)
memberLine = memberLine.split(“,”)
#Derive the Default Parent
if memberLine[15] != “”:
DefParent = memberLine[14]
elif memberLine[14] != “”:
DefParent = memberLine[13]
else:
DefParent = ‘#root’
#Write the .app file record for members using the below format.
appFile.write(“%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;%s;DefaultParent=%s;English=%s\n” % (memberLine[0],memberLine[1],memberLine[2],memberLine[3],memberLine[4],memberLine[5],memberLine[6],memberLine[7],memberLine[8],memberLine[9],memberLine[10],DefParent,memberLine[12]))
#Create another header record in the .app file for the hierarchy section.
appFile.write(“\n!HIERARCHIES=Entity\n”)
#Close the .dat file
datFile.close()
#Open the .dat file again for parsing the records for hierarchy section.
datFile = open(datFileName,”r”)
#Write a logic such that hierarchy sections are not repeated in the .app file.
j = 0
seen = set()
for hierarchyLine in datFile:
j = j + 1
if j > 1:
hierarchyLine = hierarchyLine.replace(“BLANK”,””)
hierarchyLine = hierarchyLine.split(“,”)
gen1 = “;%s\n” % (hierarchyLine[13])
gen2 = “%s;%s\n” % (hierarchyLine[13],hierarchyLine[14])
gen3 = “%s;%s\n” % (hierarchyLine[14],hierarchyLine[15])
if gen1 not in seen and hierarchyLine[13] != “”:
seen.add(gen1)
appFile.write(gen1)
if gen2 not in seen and hierarchyLine[14] != “”:
seen.add(gen2)
appFile.write(gen2)
if gen3 not in seen and hierarchyLine[15] != “”:
seen.add(gen3)
appFile.write(gen3)
#close the .app file & .dat file.
appFile.close()
datFile.close()

BefLoad – Load the file to HFM

#Import required HFM & Java libraries
from java.util import Locale
from java.io import File
import shutil
from oracle.epm.fm.hssservice import HSSUtilManager
from oracle.epm.fm.domainobject.application import SessionOM
from oracle.epm.fm.domainobject.loadextract import LoadExtractOM
from oracle.epm.fm.common.datatype import transport
#HSS Username / Password
UserName = “admin”
Password = “Password”
#Target HFM connection properties
clusterName = “HFMCluster”
application = “DEVHFM”
#Authenticate user & create HFM Session
ssoToken = HSSUtilManager.getSecurityManager().authenticateUser(UserName,Password)
hfmsession = SessionOM().createSession(ssoToken, Locale.ENGLISH,clusterName,application)
#Load members to HFM
loadOM = LoadExtractOM(hfmsession)
appFileName = str(fdmContext[“OUTBOXDIR”].replace(“\\”,”/”)) + “/” + str(fdmContext[“TARGETAPPNAME”]) + “_” + str(fdmContext[“LOADID”]) + “.app”
metadata_file = File(appFileName)
memberLoadOptions = transport.MetadataLoadOptions()
memberLoadOptions.setUseReplaceMode(False)
memberLoadOptions.setEntities(True)
memberLoadOptions.setDelimiter(“;”)
setCustomDims = [False,False,False,False]
memberLoadOptions.setCustomDims(setCustomDims)
loadInfo = loadOM.loadMetadata(metadata_file, memberLoadOptions)
logFile = loadInfo.getLogFile()
logFileName = str(fdmContext[“OUTBOXDIR”].replace(“\\”,”/”)) + “/” + str(fdmContext[“TARGETAPPNAME”]) + “_” + str(fdmContext[“LOADID”]) + “.log”
shutil.copy(logFile.getPath().replace(“\\”,”/”),logFileName)
SessionOM().closeSession(hfmsession)
fdmAPI.showCustomMessage(“Metadata Loaded Successfully”)

Continue – Part-3

Advertisements

FDQM/EE Loading Metadata to on-premise and cloud EPM Applications – Part-1


On-premise FDMEE will be used as the tool that facilitates loading metadata to the target EPM application. The high level process to use on-premise FDMEE to load metadata is
as follows:

1) Create a target custom application in FDMEE that includes a column for each of the attributes that the user wishes to load. Some of these attributes will be in the source file, and some may be defaulted during the import process. For example, the source file may contain the member name, description, parent, IsICP flag, SecurityClass, ValidForPlanType, etc.

2) Define an import format in FDMEE to map the columns in the source file to the dimensions in the target custom application. For attributes not in the source file, define an optional default in the import format.

3) Enter any necessary mapping rules for any required transformations.

4) When running the integration with FDMEE, the system will create a .dat file in the outbox directory with all the columns specified in the custom Application definition when the Export button is clicked. This file cannot be directly loaded into the target EPM application and requires further processing to match the required format of the target EPM application.

5) Create an AftExportToDat event script that will be used to format the data loaded to FDMEE into the file format required to load data to the target application. An additional script (BefLoad) will also be used to call the necessary API to load the file to the desired target application. In some cases file headers, section headers, etc. may be required as part of the metadata load file.

Please note that there is more than one way to generate a metadata file from FDMEE that can be loaded to a target application. Some users prefer to load data to TDATASEG, and then query TDATASEG to select the necessary data. Other users will scan the system generated file from the export process to generate the file to load rather than selecting data from the TDATASEG table.

Both methods are valid, and it is really the user’s preference to select the method they desire. Once these artifacts are defined in FDMEE, users can begin to load metadata from a file using FDMEE. It is assumed that the reader of this document is familiar with FDMEE, and Jython scripting.

Custom Application Setup
The first step is to create a custom application in FDMEE that can be used as a dummy target for setting up the FDMEE artifacts. The custom application will contain a column for each attribute that the user intends to load as part of the metadata import process. In addition, the customer can also add description and attribute columns to the import format to extend the number of attributes beyond what is defined in the custom application. Please note that the customer is constrained by the TDATASEG table definition in regards to the number of columns that can be used to support the desired set of attributes. The set of columns that can be used includes Account, Entity, ICP, UD1-20, ATTR1-14, DESC1-2 which is a total of 39 columns that can be used to define the metadata that is desired to be loaded. (DATAX is not used because custom applications only support numeric data loads.)

Import Format
The import format is used to map the data from the input file to the dimensions in the target application, and is also a way to set defaults for attributes that are not included in the source file. As of the date of publication, custom applications only allow loading of numeric data, and the user will need to define the source file type as “Delimited – Numeric Data”, and provide a number as a default in the expression field for the amount. This does not impact the metadata load process, but is required to successfully load the file to FDMEE as non-numeric amounts are rejected by FDMEE while performing a numeric data load.

Additional FDMEE Setup
Users will perform the rest of the required setup like a regular data load process and define the required periods, categories, mapping rules and data load rules. Artifacts like periods and categories are not required to load metadata, but are required in FDMEE to successfully process a data load file and will need to be setup. A generic category/period mapping like Metadata / Metadata_Period for example can be created for this purpose.

Event Script
An event script is used to either extract data from the TDATASEG table and reformat into a text file, or process the data file that is generated from the custom application export process. In addition to reformatting the data into the correct format for the target application, the event script must also call the appropriate API or command for the target application. For HFM, the script needs to call the HFM Java API. For on-premise planning, the script must call the outline load utility or the REST API (11.1.2.4 version). For the cloud, the script must call the REST API
or EPMAutomate.

Load to on-premise Financial Management (HFM)
For this blog , we are assuming that the user is loading metadata to HFM version 11.1.2.4.x, and will be using the Java API to load the metadata file. The unique aspect about loading metadata to HFM is that the metadata load file includes multiple sections, and the event script needed to output the metadata and load the file will need to take these different sections into consideration. This
example will show how to load a data file in a specific format to an HFM application. It is possible that users may need to load a metadata file with additional sections not included in this example, and the user should reference the HFM administration guide to understand the format required for any additional information.

Please note that the process to generate the metadata file to load to HFM is as follows:

1. Import file into FDMEE.
2. Perform mapping.
3. Process *.dat file from the export step to generate member data and hierarchy data. The output file will be read one time to generate the individual member data, and one time to generate the hierarchy section of the file.
4. Any logic to determine the “Default Parent” needs to defined accordingly.

Source File
For this example, the following file was used:
EntityName,Description,IsICP,SecurityClass,HFMLevel1,HFMLevel2,HFMLevel3

World,Earth,N,OPWP_90,World,,
Asia,Asian Countries,N,OPWP_90,World,Asia,
Europe,European Countries,N,OPWP_90,World,Europe,
North America,Northern America,N,OPWP_90,World,North America,
India,India,Y,OPWP_90,World,Asia,India,Asia
China,China,Y,OPWP_90,World,Asia,China,Asia
United Kingdom,England Wales & Scotland,Y,OPWP_90,World,Europe,United Kingdom
Canada,Canada,Y,OPWP_90,World,North America,Canada

The input file includes a header row which documents the layout of the file.Loading metadata to HFM also requires a hierarchy, and this data is included in the metadata file in the last 3 positions labeled as HFMLevel1, HFMLevel2 and HFMLevel3.
The intended member output for the load file is defined as the following:

‘Label;DefCurrency;AllowAdjs;IsICP;AllowAdjFromChildren;SecurityClass;UserDefin
ed1;UserDefined2;UserDefined3;HoldingCompany;SecurityAsPartner;Default
Parent;Description(s)

Some of the output is not included in the input file, and these items will be added as defaults from the import format, or as part of the event script that generates the output file.

Custom Application Definition
The custom application used in this example uses the following dimensions:

Dimension Name Dimension Class Data Table Column
AllowAdjFromChildren Generic UD5
AllowAdjs Generic UD3
DefaultParent Generic UD12
DefCurrency Generic UD2
Description Generic UD13
HoldingCompany Generic UD10
IsICP Generic UD4
Level1 Generic UD14
Level2 Generic UD15
Level3 Generic UD16
MemberName Generic ACCOUNT
SecurityAsPartner Generic UD11
SecurityClass Generic UD6
UserDefined1 Generic UD7
UserDefined2 Generic UD8
UserDefined3 Generic UD9

Please note that this is just an example, and the custom application used for this process can use other dimensions as required – you are not locked into this definition. Below is a partial screen shot of the custom target application definition in FDMEE. (Please note that ACCOUNT is a required dimension in a custom application.)

Continuation-

Hyperion Financial Management (HFM) Application Not Releasing Database Connections


HFM applications taking too many connections and releasing the connections once the user log off.

This is actually a bug and there is a patch set available to fix.

To implement the solution, please execute the following steps:

1. Download and review the readme Oracle Patch 23527466 .

2. Apply the patch in a test environment.

3. Retest the issue.

4. Migrate the solution as appropriate to other environments.

Hyperion Financial Management (HFM) 11.1.2.4.000 Application Startup Fails


Generally we copy the database via application backup from 11.1.2.2 and restored in brand new 11.1.2.4 installation and then upgraded using in place upgrade option.

1. It initially failed with errors below:

<Apr 29, 2015 12:49:51 PM PDT> <Error>
<oracle.FM.HSXDATAACCESS.oracle.epm.fm.dal.manager.DALSession> <BEA-000000> <An error occurred in Data Access Layer. Message: Could not rollback as there is no open transaction.>
<Apr 29, 2015 12:49:51 PM PDT> <Error> <oracle.FM.HSX.SERVER.oracle.epm.fm.common.HsxServerConfig> <BEA-000000> <An unexpected error has occurred. Message: An error occurred in Data Access Layer. Message: Could not rollback as there is no open transaction. oracle.epm.fm.dal.exception.DALException: An error occurred in Data Access Layer. Message: Could not rollback as there is no open transaction.

2. After running the Schema upgrade utility again, user was able to open the application and load data, metadata without any problems. The application is running fine. The below error occurs in the HFM application logs frequently.

<Apr 29, 2015 12:49:51 PM PDT> <Warning>
<oracle.FM.HSXDATAACCESS.oracle.epm.fm.dal.dao.BaseDAOImpl> <BEA-000000>
<SELECT MAX(UPDATEDON) LAST_UPDATED FROM XFM_PARAMETERS>
<Apr 29, 2015 12:49:51 PM PDT> <Error>
<oracle.FM.HSXDATAACCESS.oracle.epm.fm.dal.dao.UserOnSystemDAOImpl>
<BEA-000000> <An error occurred while reading settings from the table : [  ][SQLServer JDBC Driver][SQLServer]Invalid column name ‘UPDATEDON’..
java.sql.SQLSyntaxErrorException: [FMWGEN][SQLServer JDBC Driver][SQLServer]Invalid column name ‘UPDATEDON’.
at weblogic.jdbc.sqlserverbase.ddb_.b(Unknown Source)
at weblogic.jdbc.sqlserverbase.ddb_.a(Unknown Source)
at weblogic.jdbc.sqlserverbase.ddb9.b(Unknown Source)
at weblogic.jdbc.sqlserverbase.ddb9.a(Unknown Source)

3. In addition, the following occurs:

  • Application is in Admin mode and user receives the following error:

EPMHFM-66122: An unexpected error occurred while stopping the admin task for Logistics application.

 

  • Unknown Error will occur when accessing Settings and Admin tasks menu under Admin tasks.

The root Cause for this issue is XFM_PARAMETERS and XFM_PARAMETERS_DEFAULTS tables are not created as part of inplace upgrade process.

 

First check whether the XFM_PARAMETERS and XFM_PARAMETERS_DEFAULTS are created in the HFM database.

If not, user needs to execute the below two scripts:

1. <EOH>\products\FinancialManagement\Server\conf\<DBVENDOR>_from_11.1.2.1.000_to_11.1.2.2.000_SchemaUpgrade.sql

2. <EOH>\products\FinancialManagement\Server\conf\<DBVENDOR>_from_11.1.2.3.000_to_11.1.2.4.000_SchemaUpgrade.sql

 

Note: This issue occurs when upgrading to 11.1.2.4.000 using in-place upgrade option.

NOTE : – Make sure you have a FULL backup before making any changes to the system.

 

Thanks,

~KKT~

HFM Error: “EPMHFM-65536 – An Unexpected Error has Occurred”


EPMHFM-65536” is a very generic error message and can be caused by a number of different factors; ranging from an improper install to application processes crashing.

Below are some of the more common causes and solutions of the error:

 

1) User is Unable to Open the Application after applying 11.1.2.4.100 patch:

If you recently applied 11.1.2.4.100, please review and confirm the following:

a) Ensure you followed all steps in HFM 11.1.2.4.100 Patch 20455650 : Patch Set Update: 11.1.2.4.100 for Oracle Hyperion Financial Management Readme and applied the appropriate SQL script to upgrade the schema to 11.1.2.4.100. This is specifically listed as Step # 5 in the Readme; listed below:

FROM THE README for Patch 20455650: Patch Set Update: 11.1.2.4.100 for Oracle Hyperion Financial Management:

Execute the following sql command to upgrade the schema against the Financial Management database. Use appropriate sql as per your database type.

<EPM_ORACLE_HOME>\products\FinancialManagement\Server\conf\<DB Type>_from_11.1.2.4.000_to_11.1.2.4.100_SchemaUpgrade.sql

If you are using SQL Server, ignore the following warning:

Warning! The maximum key length is 900 bytes. The index ‘PK_XFM_PARAMETERS_NEW’ has maximum length of 1500 bytes. For some combination of large values, the insert/update operation will fail.

 

b) Rollback the patch and see if you still receive the error.

 

2) User is unable to open the Application After Installing or Upgrading to 11.1.2.4:

The problem could be the load stop and the data audit sequence have not been updated with the upgrade.

To solve the problem, please execute the following steps with the assistance of your DBA:

Note: Please make sure you have a FULL Database/System backup before applying any changes:

  

1. Identify the last data audit ID by executing the below query

select max(lrownum) from <Application name>_DATA_AUDIT;

2. Drop the data audit sequence

DROP SEQUENCE <Application name>_DATA_AUDIT_SEQ;

3. Create the data audit sequence with the correct ID number.

CREATE SEQUENCE <Application name>_DATA_AUDIT_SEQ

MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1

START WITH <Identified ID from the Query 1> CACHE 20 NOORDER NOCYCLE ;

 

3) 11.1.2.4 Upgrade Completed and Applications are Successfully Registered; however; error message is received when user opens the application: EPMHFM-66054: The system was unable to find the Datasource process for application <APPNAME>

To resolve, please check the following with the assistance of your DBA:

1. Confirm that the tables below exist:

XFM_PARAMETERS,
XFM_PARAMETERS_DEFAULTS,
HSX_ADMIN_TASKS,
HSX_DSN_DETAILS

2. Make sure that HFMTNS alias entry is added in tnsnames.ora file in:

  • \Oracle\Middleware\user_projects\config\dbclient\ AND
  • All DB client locations (\app\Administrator\product\11.2.0\client_1\network\admin)
  • Example:

HFMTNS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HFMSERVER)(PORT = 1521))
)
(CONNECT_DATA =
(SID = HEBEPM)
(SERVER = DEDICATED)
)
)

HFM – Steps to Extract Ownership Data


In order to extract the ownership data, the POV needs to be set correctly.

For example: POV should look like this:

 

HFM

Note:

If Ownership Data need to extracted then ACCOUNT AND ICP should be selected as SYSTEM Accounts and Custom1-Custom4 [None] member need to be selected because The POWN, PCON, PCTRL, SharesOutstanding, VotingOutstanding, SharesOwned and VotingOwned are all numeric values stored in Custom1-Custom4 [None] member
If Owership Data with [Method] account need be extracted then C1(Custome1) select as [CONSOLMETHODS]

Thanks,
~KKT~

 

HFM Smart View Error “Unknown Error in Hfmproviderdata at the Root Level Is Invalid. Line 1, Position 1” When Refreshing Large Worksheets


Unknown Error in HFMProviderData at the root level is invalid. Line 1, position 1. When refreshing large Smart View workbooks using the HFMOfficeProvider, users receive the following message:

Unknown Error in HFMProviderData at the root level is invalid. Line 1, position 1.

When a Fiddler trace is performed, you see the following message in the response from the HFMOfficeProvider.

<?xml version=”1.0″ encoding=”utf-8″ ?><exception errcode=”10000″ native=”-1″ type=”warning”><desc>Unknown Error in HFMProviderData at the root level is invalid. Line 1, position 1.</desc><details from=”HFMwsFormulas.GetVals.”>Insufficient memory to continue the execution of the program.</details></exception>

This issue is caused by the IIS Setting AspMaxRequestEntityAllowed being set too low for the amount of data that the customer is requesting via Smart View. The AspMaxRequestEntityAllowed IIS parameter limits the an ASP page’s response to a request to a certain number of bytes. The default value is 200 kB.

To resolve this issue, perform the following steps on all HFM web servers:

  1. Backup the metabase.xml file in the windows\system32\inetsrv directory
  2. Stop WWW Publishing Service
  3. Using Wordpad, Edit the metabase.xml file in <windows>\system32\intsrv directory
  4. Find the first Entry of AspMaxRequestEntityAllowed entry which is after the
    <IIsWebService Location =”/LM/W3SVC”

    entry. This is the default setting for all websites in IIS. Changing this will affect all websites, unless it is specified for the specific website. If you only want to change this setting for HFMOfficeProvider find the entry:

    <IIsWebVirtualDir Location =”/LM/W3SVC/1/ROOT/hfmofficeprovider”

    and add the AspMaxRequestEntityAllowed entry there:

    AspMaxRequestEntityAllowed=”204800″

    The value is the number of bytes that an ASP response will be limited to. The default is 204800, which limits responses to about 200 kB. Our suggestion is to set this much higher. For example, to set it to 1 GiB, change the value to

    AspMaxRequestEntityAllowed=”1073741824″
  5. Once you have made the change, then Start WWW Publishing service.
  6. Test and verify you can refresh the sheet that was throwing the memory error in the fiddler trace. If you still get the memory error, increase the ASPMaxRequestEntityAllowed further.

To make this change in IIS 7

  1. Launch IIS Manager
  2. Expand Default web site
  3. Click on HFM
  4. Click on the Asp icon in the right pane.
  5. Right click on the Asp icon and click on Open Feature
  6. Expand Limit properties
  7. Increase the MaximumRequestEntityBodyLimit
  8. Once you have made the change, then Start WWW Publishing service.
  9. Test and verify you can refresh the sheet that was throwing the memory error in the fiddler trace. If you still get the memory error, increase the MaxRequestEntityAllowed further.

Thanks

~KKT~

Index Update Utility in HFM


Oracle provides an index utility that is designed to inspect the indexes on the database tables for most versions of the Oracle/Hyperion Financial Management software.  The utility is designed to examine the indexes on the database tables and compare them against the required indexes to see if any changes should be made.

The utility can be used after a database migration, database restore or some other tasks where the validity of the indexes may be in question.  The utility can also be used to generate indexes creation scripts for a DBA to use to migrate the indexes to separate tablespaces to improve HFM’s database performance.

It can also be used to repair an issue that may have been caused by certain versions of the HFM Copy Application utility..  The Index Update utility can identify and correct the indexes on affected tables.

The utility operates in three modes:

  • The first is to examine the existing database table indexes on an HFM application and generate a report outline any potential problems that may exist.
  • The second option will generate a report and a file of SQL commands to drop and recreate any possibly missing or incorrect indexes.
  • The third form generates a report and instantly executes the commands to drop/recreate indexes.

Thanks,

~KKT~

How to Create a New Hyperion Financial Management (HFM) Cluster and Configure Access From Workspace


General Information

yperion Financial Management (HFM) allows for the grouping of one or more HFM application servers behind a “friendly” cluster name. Advantages of using an HFM cluster over an explicit HFM application server by name is that the HFM cluster allows you to add and remove servers without end users having to make any changes. When more than one HFM application server is added to an HFM cluster, new user sessions randomly pick one of the HFM application servers to connect. If the HFM application server that was randomly selected is currently not online the then user session automatically directed to another HFM application server. HFM clusters do not allow for automatically failover of active user sessions. When a user makes multiple connections to an application using an HFM cluster, Sticky Server feature ensures that all user sessions are directed to the same HFM application server.

HFM allows for creating more than one cluster to allow for specific HFM application server(s) be accessed by specific users. The most common configuration uses 2 HFM clusters. The first HFM cluster is accessed by the majority of users to run reports, data grids and smart view and the second HFM cluster is used primarily by HFM application administrators to run consolidations. Most new installations will start off with a single HFM cluster. The need for a dedicated consolidation server usually arises when end users notice slower running reports or longer running refreshes while consolidations are running. Depending on how many HFM application servers exist in the current HFM cluster, a second HFM cluster can be created by moving a existing server(s) or by adding new HFM application server(s) to a second HFM cluster.

Important points to be aware of

  • You cannot choose which HFM application(s) run on a specific HFM application server or HFM cluster. All HFM applications defined in the database repository, that the HFM application server is configure to access, can run on that server.
  • You cannot prevent a user from accessing a specific HFM application server or HFM cluster.
  • All HFM applications servers in a HFM cluster must point to the same database schema. In System 9 this is configured manually in the UDL file and in System 11 the database connection string is configured in the EPM System Configurator.
  • If the goal is to separate HFM applications and limit which HFM applications run on which HFM application servers then you must configure HFM application server(s) or cluster(s) to access a different schema. This document will primarily focus on accessing the same HFM application from different HFM clusters from Hyperion Workspace but a brief explanation is also included to explain accessing different HFM applications that reside in different HFM clusters from Workspace.

In the case of adding a second HFM cluster to an existing environment, if an existing HFM application server is to be moved to the new cluster it must first be removed from the existing cluster. HFM application server can belong to only one cluster at a time.

Steps for removing an existing HFM application server from a HFM cluster

System 9

  1. On any HFM application server, run the Server and Web Configuration utility. This can be done on any HFM application server as these updates occur in the database.
  2. Select the Application Server Cluster tab.
  3. In the Servers that will participate in the Cluster window, select the server to be removed.
  4. Select Remove Server.
  5. Select Apply.
  6. Select OK to close utility.

System 11

  1. On any HFM application server, run the EPM System Configurator utility. This can be done on any HFM application server as these updates occur in the database.
  2. Under Financial Management, put a check next to Configure Application Cluster.
  3. Select Next.
  4. On the Configure Financial Management – Server /Cluster screen, select the server to be removed from the cluster under Servers in Cluster.
  5. Select Remove.
  6. Select Next.
  7. Select Next.
  8. Select Finish to close utility.

Steps for creating a new HFM cluster and adding a HFM application server

System 9

  1. On any HFM application server, run the Server and Web Configuration utility. This can be done on any HFM application server as these updates occur in the database.
  2. Select the Application Server Cluster tab.
  3. Select Add Cluster.
  4. Type in a Cluster Name.
  5. Select OK.
  6. Select Add Server.
  7. Enter the Hostname of the HFM application server.* Do not use Fully Qualified names here as Sticky server feature will not work – Unpublished Bug 7704770.
  8. Select OK.
  9. Select Apply.
  10. Select OK to close utility.

*Note that there is no validation here so if you incorrectly type the server name you will not be able to register this new cluster.

System 11

  1. On any HFM application server, run the EPM System Configurator utility. This can be done on any HFM application server as these updates occur in the database.
  2. Under Financial Management, put a check next to Configure Application Cluster.
  3. Select Next.
  4. On the Configure Financial Management – Server /Cluster screen, select Add.
  5. Type in a Cluster Name.
  6. Select OK.
  7. Under Available Servers, select the server to be added to new HFM cluster. **
  8. Select Add
  9. Select Next.
  10. Select Next.
  11. Select Finish to close utility.

**Only HFM application servers that have been previously registered to Hyperion Foundation will appear under Available servers.

Steps for making new HFM cluster available to Workspace users

System 9

  1. On each HFM Web servers, run the Server and Web Configuration utility.
  2. Select the Server/Cluster Registration tab.
  3. Ensure the Use Automatic Load Balancing radio button is selected.
  4. In the field, type in the hostname of HFM application server belonging to the cluster you want to add. If the HFM cluster has more than one HFM application server then you can type in any of the server hostnames.
  5. Select Add.
  6. Select Apply.
  7. Select OK to close utility.

System 11

  1. On each HFM Web server, run the EPM System Configurator utility.
  2. Under Financial Management, put a check next to Register Application Servers / Cluster.
  3. Select Next.
  4. On the Register Financial Management – Server /Cluster screen, select the HFM cluster under Available Servers / Clusters.
  5. Select Add.
  6. Select Next.
  7. Select Next.
  8. Select Finish to close utility.

Steps for users to configure to access new HFM cluster

Which HFM application server or HFM cluster an HFM application opens on when a user selects the application is not directly visible to users. Unless a user follows the steps provided below to set an Application Startup Preference, the HFM application will open on the last HFM server or HFM cluster that the HFM application was registered against. In most cases, this is the same HFM server or HFM cluster that they HFM application creator specified when creating the HFM application. In the event that you find an HFM application not opening on the expected HFM cluster, you can re-register the HFM application at anytime without having to restart. See the section below on Steps to change where HFM application opens by default from Workspace for steps on changing the default HFM cluster. For users that need to access an HFM application on an HFM cluster that is not the default follows the steps outlined below. Note that this must be done on a per user basis and is also a per HFM application setting.

Setting Preference for HFM application startup

  1. For Workspace File Menu, select Preferences.
  2. On the left side, select Consolidation.
  3. Under List of Applications, select the down arrow to return all HFM applications available.
  4. Select an HFM application.
  5. Under List of Clusters, select down arrow to return list of all available HFM servers and HFM clusters. If you do not see the HFM Cluster expected then see the section above on Steps for making new HFM cluster available to Workspace users to register the HFM cluster on all HFM Web servers.
  6. Select Save.
  7. Select OK to acknowledge the warning prompt that re-login is necessary.
  8. Select OK to close Preferences.
  9. Log out of workspace for change to take effect.

Steps to change where HFM application opens by default from Workspace

The following can be skipped if the existing HFM cluster is known to be working correctly.

To register a Classic System 9 HFM application from Workspace

  1. From the Navigate menu select Administer.
  2. Select Classic Application Administration.
  3. Select Consolidation Administration.
  4. In the left hand side, expand Tasks.
  5. Expand Consolidation Administration.
  6. Select Register Application.
  7. At this point you will see a list of HFM servers and HFM clusters, you only see what has been registered on the HFM web server. If you do not see the HFM Cluster expected then see the section above on Steps for making new HFM cluster available to Workspace users to register the HFM cluster on all HFM Web servers.
  8. Select the HFM cluster you want to be the default. This would be the HFM cluster you want users without a Preference set to access when logging in to Workspace.
  9. Select the HFM application.
  10. Verify the entry in Cluster/Server Name field points to the correct HFM Cluster.
  11. Set the User Management Project to the correct project. This should be the same as originally set and can be verified by finding the application under Projects in the Hyperion Shared Services Console.
  12. Verify Financial Management Web Server URL for Security Administration points to the correct location, this point wither to http://<workspace&gt;:<port>/hfm or to http://<HFM_WebServer>/hfm.
  13. Select Register.

To register a Classic System 11 HFM application from Workspace

  1. From the Navigate menu select Administer.
  2. Select Classic Application Administration.
  3. Select Consolidation Administration.
  4. Select Register Application.
  5. At this point you will see a list of HFM servers and HFM clusters, you only see what has been registered on the HFM web server. If you do not see the HFM Cluster expected then see the section above on Steps for making new HFM cluster available to Workspace users to register the HFM cluster on all HFM Web servers.
  6. Select the HFM cluster you want to be the default. This would be the HFM cluster you want users to access when logging in to Workspace.
  7. Select the HFM application.
  8. Verify the entry in Cluster/Server Name field points to the correct HFM Cluster.
  9. Set the User Management Project to the correct project. This should be the same as originally set and can be verified by finding the application under Projects in the Hyperion Shared Services Console.
  10. Verify Financial Management Web Server URL for Security Administration points to the correct location, this point wither to http://<workspace&gt;:<port>/hfm or to http://<HFM_WebServer>/hfm.
  11. Select Register.

Hyperion Financial Management (HFM) – Usage of JOM API “VALIDATECUSTOMMEMBERS” Produces “Socket Connection Error”


This is to tuning of HFM for those who have customizations and use the JOM API “VALIDATECUSTOMMEMBERS.”

If this API is called from the customer’s customization program too frequently (for example: 2-3 times a second) repeatedly, then you will encounter a “Socket Connection Error“.

Please note that HFM as a product will not encounter it; but when FDMEE calls our API (or a customer writes custom code that calls our JOM APIs), the users should be aware of this and make the recommended updates to the registry.

In order to avoid the error, please apply the following registry settings. A restart is required.

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]

“MaxUserPort”=dword:0000fffe

  • [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

Value Name: TcpTimedWaitDelay
Value Type: DWORD
Data: 30 (decimal)