FDMEE – Unable To See Newly Created PBCS Plan Type When Creating Data Load Rule

After creating new Plan Type in PBCS, it cannot be used in Data Management as a Target a Plan Type. When creating Data Load Rule in Data Management (FDMEE), the Target Plan Type drop down will not show the newly created Plan Type.

Follow the below steps to see the newly created Plan Type under Target Plan Type in Data Management.

– Add a new Cube at Administration > Manage > Cubes
– Refresh Database as usual
– Check that the new cube appears at the Planning Application windows
– Refresh Metadata and Members at Data Management Target Application window
– Click on Save
– Check that the new cube is not shown in the Plans list at Data Load Rule creation




FDMEE – Export the ODI Operator Log from the ODI Console


I am frequently getting this query for Below solution

This is a simple procedure that can be carried out by anyone who has access to the ODI console and knows the username and password for the ODI Console.

  1. Logon to the ODI Console by going to http://server:19000/odiconsole in a web browser (where server is the server where FDMEE is installed).
  2. Expand ‘Runtime’, then expand ‘Sessions/Load Plan Executions’ and you should be able to see the ODI sessions that have been run.
  3. Click on ‘Sessions/Load Plan Executions’ & then click the ‘Export’ icon (a small white square with a blue arrow pointing upwards on the ‘Browse’ tab).

Show the Operator logs

4. In the ‘Export Log’ screen, select a date and time for the ‘From’ and ‘To’ values that match when the FDMEE process started and finished (so that only a relevant subset of the logs are exported).

Set date filters for the export

5. Click the export button and you will get logs.



Load Data From FDMEE To ARM Error:” Export terminated due to mismatched currency buckets.”

When loading data to ARM  from FDMEE getting the error message:
Export terminated due to mismatched currency buckets “XXXXXX”. Ensure that Financial Data
Quality Management, Enterprise Edition Category names match ARM currency/buckets.


To Fix-

Verify that currency bucket in ARM match currency in FDM:

Check currency mappings in FDMEE:

1. Log into Workspace

2. Navigate->Administer-> Setup->  Category Mapping ->  Application Mapping

3. Ensure that Target Application is “Account Reconciliation Manager”.

4. Make sure that you have appropriate Categories Setup.




FDMEE – LCM Migration Failing Error: “Service unavailable’ “


I was working on FDMEE and found this issue and here reference for you –


User Receive “Service unavailable’ error when attempting to migrate FDMEE Planning application metadata via LCM.
[2015-05-21T14:08:12.625-05:00] [FoundationServices1] [TRACE] [EPMLCM-54037] [oracle.EPMLCM] [tid: 156] [userId: ] [ecid: 00iTJ48khon13j15nvK6yZ0001Sg000MOa,0:1:4:3:1:3:3:3:3:4:3:3:4:4:4:4:3:3:4:4:3:3:3:4:3:4:3:3:4:3:3:4:4:3:3:3:3:3:3:3:4:3:3:3:3:4:4:4:4:3:4:4:4:3:3:3:3:3:3:1:1:1] [APP: SHAREDSERVICES#] [URI: /workspace/logon] [SRC_CLASS: com.hyperion.lcm.handler.util.status.TaskStatus] [SRC_METHOD: getMessageContext:69] A task type error has occurred when performing the operation for task 0 defined in the migration definition file.
[2015-05-21T14:08:12.625-05:00] [FoundationServices1] [NOTIFICATION] [EPMLCM-13000] [oracle.EPMLCM] [tid: 156] [userId: ] [ecid: 00iTJ48khon13j15nvK6yZ0001Sg000MOa,0:1:4:3:1:3:3:3:3:4:3:3:4:4:4:4:3:3:4:4:3:3:3:4:3:4:3:3:4:3:3:4:4:3:3:3:3:3:3:3:4:3:3:3:3:4:4:4:4:3:4:4:4:3:3:3:3:3:3:1:1:1] [APP: SHAREDSERVICES#] [URI: /workspace/logon] Service currently not available.
[2015-05-21T14:08:12.625-05:00] [FoundationServices1] [ERROR] [EPMLCM-37066] [oracle.EPMLCM] [tid: 156] [userId: ] [ecid: 00iTJ48khon13j15nvK6yZ0001Sg000MOa,0:1:4:3:1:3:3:3:3:4:3:3:4:4:4:4:3:3:4:4:3:3:3:4:3:4:3:3:4:3:3:4:4:3:3:3:3:3:3:3:4:3:3:3:3:4:4:4:4:3:4:4:4:3:3:3:3:3:3:1:1:1] [APP: SHAREDSERVICES#] [URI: /workspace/logon] [SRC_CLASS: com.hyperion.lcm.common.LCMLogger] [SRC_METHOD: logMessages:939] Status document parsing failed. Nested exception is [[
org.xml.sax.SAXParseException: The reference to entity “Prom” must end with the ‘;’ delimiter.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1427)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:881)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1547)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1320)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:232)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
at weblogic.xml.jaxp.RegistryDocumentBuilder.parse(RegistryDocumentBuilder.java:163)
at com.hyperion.lcm.handler.Task.updateStatusDocument(Task.java:422)
at com.hyperion.lcm.handler.util.Migration._importGroupingUnit(Migration.java:681)
at com.hyperion.lcm.handler.util.Migration.migrate(Migration.java:303)
at com.hyperion.lcm.handler.TaskHandler.processMigrationQueue(TaskHandler.java:609)
at com.hyperion.lcm.handler.TaskHandler.runTasks(TaskHandler.java:420)
at com.hyperion.lcm.handler.TaskHandler.execute(TaskHandler.java:86)
at com.hyperion.lcm.clu.async.AsyncMigrator.run(AsyncMigrator.java:54)
at java.lang.Thread.run(Thread.java:662)


In some cases the LCM export would not check that all the dependencies have been met when exporting so sometimes you get failures when importing it again


Set Skip Validation to Yes.

Navigate to Administration>Migration Options –>Import Options

ERP Integrator – Skip Validation Yes/ No. Set to Yes.



FDM claissic time to say ‘GoodBye’


I was personally very strong fan of FDM and doing stuff with VB was real magic with all sorts of mapping etc.

Bu now FDMEE is the future and we have to move ahead with Jython .

FDM classic will be supported till and after also patch .700.  After that version there will no longer be further bug fixes.

So Starting from you can have only FDMEE where a migration from FDM to FDMEE would be required.



ODI – view FDMEE Scheduled tasks

Follow the below steps to view FDMEE tasks.

1.) Open ODI Studio and click Connect To Repository.
2.) From the login screen, click the green Plus sign.
3.) Enter a name for the Login (can be anything).
4.) ODI Connection User is SUPERVISOR.
5.) Enter ODI Connection Password.
6.) Master Repository User is the FDMEE database username.
7.) Choose Microsoft SQL Server Datadirect Driver from the Drive List dropdown.
8.) Enter the URL: jdbc:weblogic:sqlserver://<db host>;databaseName=<database name>.
9.) Select Work Repository radio button and click the magnifying icon, then select desired FDMEE repository.
10.) Click the Test button (if you do not see “Successful Connection” the information provided is incorrect). Click OK, and then OK one more time.
11.) The log in screen should be visible again at this point. Select the Login Name created and press OK to log in to your FDMEE Work Repository.
12.) Click on the Operator tab in ODI Studio.
13.) Expand the Scheduling selection in the Operator tab.
14.) Expand the All Schedules selection to view scheduled tasks in ODI.
15.) Expand Scheduling under your scheduled batch.
16.) Right click OracleDIAgent and click Open.
17.) This screen will show the scheduled times/dates of which it should run.



FDMEE LCM Import issue for IMPORT_FORMAT Artifact

Issue: Unable to import , LCM IMPORT_FORMAT artifact alone. But rest of the Artifacts able to import except IMPORT_FORMAT.

ErpIntegrator.log having below errors.

[2016-02-16T10:34:41.141+01:00] [ErpIntegrator0] [ERROR] [ERPI-102101] [oracle.apps.erpi.model] [tid: 25] [userId: <anonymous>] [ecid: 00iYbO0Pq8SDOd85njDCiZ0001lk0000yA,0:1:4:3:3:4:3:3:3:4:4:4:4:4:3:4:3:3:3:3:3:4:3:1:1:1:3] [APP: AIF#] [URI: /workspace/logon] [SRC_CLASS: com.hyperion.aif.lcmintegration.util.XmlImportExportViewObjectImpl] [SRC_METHOD: importXML] Exception encountered while importing artifact[[
oracle.jbo.ReadXMLException: JBO-25025: Rowset with XML tag ImportGroupsAdapterVO cannot be loaded.

Caused by: oracle.jbo.RowReadXMLException: JBO-25026: Row oracle.jbo.Key[BC_Format_Import ] with XML tag ImportGroupsAdapterVORow cannot be loaded.

Caused by: oracle.jbo.AttributeReadXMLException: JBO-25027: Attribute ImportFormatItemAdapterVO at index 21 with XML tag ImportFormatItemAdapterVO cannot be loaded.

Caused by: oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[BC_Format_Import ERP 1 ].
at oracle.jbo.server.ViewObjectImpl.updateRowSetFromXML(ViewObjectImpl.java:18546)
… 39 more
## Detail 0 ##
oracle.jbo.RowReadXMLException: JBO-25026: Row oracle.jbo.Key[BC_Format_Import ] with XML tag ImportGroupsAdapterVORow cannot be loaded.

The issue is caused by duplicate Records for Source Import_Format artifact in  TBHVIMPITEMADAPTER DB table

select * from TBHVIMPITEMADAPTER where impgroupkey = ‘BC_Format_Import’;

“1” “BC_Format_Import” “ERP” “ICP” “10134” “” “” “” “” “”
“2” “BC_Format_Import” “ERP” “UD1” “10136” “” “” “” “” “”
“3” “BC_Format_Import” “ERP” “UD2” “10135” “” “” “” “” “”
“4” “BC_Format_Import” “ERP” “ACCOUNT” “10135” “” “” “” “” “”
“5” “BC_Format_Import” “ERP” “ENTITY” “10133” “” “” “” “” “”
“6” “BC_Format_Import” “ERP” “ICP” “10134” “” “” “” “” “”
“7” “BC_Format_Import” “ERP” “UD1” “10136” “” “” “” “” “”
“8” “BC_Format_Import” “ERP” “UD2” “10135” “” “” “” “” “”
“9” “BC_Format_Import” “ERP” “ACCOUNT” “10135” “” “” “” “” “”
“10” “BC_Format_Import” “ERP” “ENTITY” “10133” “” “” “” “” “”

To Fix this

Remove the duplicate records in TBHVIMPITEMADAPTER DB table based on IMPSEQ column.

Then Re_Export LCM and do the Import LCM

Note : IMPSEQ is not Primary key (Sometime IMPSQL having duplicates) . so use RowId to delete duplicate records.





Does FDMEE adaptors available for Hyperion strategic finance

In FDM G4-F driver was available to load data from Essbase/Planning to HSF rather than HSF Batch & Map.
Since FDMEE users can’t see any reference to HSF as a valid target.
Is there any ODI target / driver for HSF? No Currently thats supported in FDM classic and not in FDMEE.

Below are valid EPM target applications for FDMEE.

Supported EPM target applications (Oracle Hyperion EPM Architect and Classic) are:

– Planning
– The Planning module, Oracle Hyperion Public Sector Planning and Budgeting
– Financial Management
– Essbase aggregate storage and Essbase block storage—If Essbase has been deployed in
standalone mode, it must be registered with Shared Services since it does not work directly
with FDMEE. Planning applications that rely on the standalone Essbase application cannot
work directly with FDMEE either.

– Account Reconciliation Manager (ARM)

=>The HSF adapter is only supported at the moment for FDM. You can use FDM in and the HSF adapter to load HSF.

The HSF adapter is on the road map for FDMEE for a release after

Data Export From FDMEE To HFM Hangs and Never Completes


Data Export from FDMEE to HFM hangs, with a timeout error after a few minutes: A connection to the server has failed. (status=503), even though there is no issue accessing the HFM application via Workspace.

1. In Process Details, the job stays on the timer icon and never changes. After 5-10 mins, a timeout error “A connection to the server has failed. (status=503)” is returned. Even after leaving 2-3 hours, it never completes.

With debug option set to 5, when clicking on show Log in Process Details , the last action which is recorded within seconds of the start of the export is:

2013-07-31 13:08:16,750 DEBUG [AIF]: HFM Load command:
%EPM_ORACLE_HOME%/products/FinancialDataQuality/bin/HFM_LOAD.vbs “133” “+Rgrz%2Fu506JtoCFjpuMkLm5X0V614WUiWjH5QYbzTJdC0fQ4Mq9CAyc5jjgXwWmnSSyaUDMqPspXis9imet8ar8wyUsAo%2FzKSfO5XSuFsMhujldu0JdoZQJScjeGMfGcO08NdnUpeA8cxs9rzyGksyk5cYlIzedZfaexuNNwYqTiOJgPhIgbIMSsXUJumy8V5QllwlJKkTiU3l%2FvsRqXzTsA4ZYHjG8HmdUQJH3gVOMZR5y1pe6DN44fyKCnM9NwgR8LdeeFG4PeBq6fXQZevP4bDyx0xbRu%2Bgtp66oxBRa%2FkDOaYRbL%2BqsL9jpU4Mngbe%2FtG0JIsUcVRJhtj%2BLhVmX0VFj5Xrdl2sv40%2Bi5xrQUB0VEjI7GQVQ8cCApSko4VpMeKFW4UMcGH6Tt4WMJgKegurkaR8VKn6x1TtHo7DzU%3D%0D” “F%3A%5Capps%5COracle%5CMiddleware%5Cuser_projects%5Cepmsystem1” “%25EPM_ORACLE_HOME%25%2F..%2Fjdk160_35”

2. In ODI studio, there is no progress either . The lightning bolt remains on HFM Load Data – Procedure – HFM Load Data – and there is no error seen in ODI when double-clicking on those procedures.
3. HFM application is not started by launching the export, as there is no hsvdatasource process in Task Manager.

to fix-

On Windows server, the default host script is wscript. This needs to be switched to cscript, as the FDMEE code is issuing a cscript command from ODI to launch the HFM_LOAD.vbs script.

Additionally, short session timeout setting on OHS server may contribute to this issue.

1. Open a command prompt window as Administrator.
2. Run the following command:
cscript //H:cscript
3. This changes the default host script to cscript, and allows the HFM_LOAD.vbs to be executed.

When using Oracle HTTP Server (OHS) as the web server the default timeout is set at 5 minutes. In order to increase the timeout the following must be performed:

1. In the C:\Oracle\Middleware\user_projects\epmsystem1\httpConfig\ohs\config\OHS\ohs_component directory you will find a mod_wl_ohs.conf file. In this file you will find:
WLForwardUriUnparsed ON
KeepAliveEnabled ON
KeepAliveSecs 20
DynamicServerList OFF
2. Add the following two lines just after the KeepAliveSecs 20 line (1800 seconds is 30 minutes)
WLIOTimeoutSecs 1800
HungServerRecoverSecs 1800
3. Save the file and restart the OHS Service and ERPi Web Service.


FDMEE Scripts sample

The scope of this post is to provide some samples of common scripts that may be used in FDM Enterprise Edition for use in customizations. (FDM version –

Example #1


Trying to use the Process Status property in scripts to generate email alerts based on the failure/success of the events. How can this be done?


The fdmContext does return the correct status. The fdmcontext gets initialized at the start of the process and the status is not available. You can use the following to get the status. The following prints the status to a log file.

stat = fdmAPI.getProcessStates(fdmContext[“LOADID”])

Example #2

Conditional statements do not recognize any value for a variable that has not been set.

Initialize the variable before doing any conditional statements against the variable.

site = “”

site = fdmRow.getString(“UD5”)

if (site[0:1] == “A”):
fdmResult = “SITETEST”
elif (site == “”):
fdmResult = “No_Site”
fdmResult = “[” + site + “]”

Example #3

Is there a way I can make the BefImport event wait or the Import step wait until a batch completes? So the import step should start only after a data file is generated?

p = subprocess.Popen(command)

retcode = p.wait()

This would be using if you try to run a O/S Script form Jyton.

Example #4

This script replaces the ‘ and , characters in a description field so that the amount can be returned.

def FixAmt(strfield, strrec):

cleanrec = strrec.replace(“‘”, “”)

qstart = strrec.find( ‘”‘ )

if qstart > 0:

qend = strrec.rfind(‘”‘, qstart)

ndesc = strrec[qstart+1:qend].replace(“‘”, “”).replace(“,”, “”)

cleanrec = strrec[0:qstart]+ndesc+strrec[qend+1:]

seg = cleanrec.split(“,”)

return seg[2]

Example #5

Customer wants to run a calc script to perform an Essbase extract, and then load the extract file with FDMEE.

1)Create a batch file (.bat) that performs the extract from Essbase.

2)Then you call the batch file from the BefImport event script.

import os

import subprocess

import shutil


command = “D:\temp\BatchFiles\helloworld.bat > helloworld.out”

p = subprocess.Popen(command)

retcode = p.wait()

3)Then you would load helloworld.out using FDMEE

Example #6

After Import Event Script Used to update data imported from a adapter based source system, such as SAP.

updateStmt = “””UPDATE TDATASEG_T
WHEN UD5 IN (‘1801’ , ‘1018’ , ‘1255’ , ‘1256’ , ‘1257’ , ‘0460’ , ‘0469’ , ‘1100’ , ‘4100’ , ‘4274’ , ‘9100’ , ‘9150’ , ‘9274’ , ‘0458’ , ‘4150’ , ‘1481’ , ‘1482’ , ‘1488’ , ‘1492’ , ‘1494’ , ‘1637’) THEN UD5||’.’||UD6
WHEN SUBSTR(ACCOUNT, 1, 1) IN (‘6’, ‘7’) AND UD6 IS NULL THEN ‘910000’
ELSE ‘[None]’
params = [ fdmContext[“LOADID”] ]
updateCount = fdmAPI.executeDML(updateStmt, params, True)

Example #7

Using classic FDM to load, this script can remove the zero balance values.
Set the “Enable Event Script Execution” option to Yes in the Application Setting
Create a AftImport event script with the following code:

delStmt = “””
DELETE FROM tdataseg_t
WHERE loadid = ?
AND amount = 0
params = [ fdmContext[“LOADID”] ]
delCount = fdmAPI.executeDML(delStmt, params, True)