Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Taking Your FDM Application to the Next Level with Advanced Scripting


Published on

Ranzal Practice Director, Tony Scalese conducted this presentation at the recent ODTUG Kaleidoscope conference in Long Beach, California.

Published in: Technology
    Are you sure you want to  Yes  No
    Your message goes here

Taking Your FDM Application to the Next Level with Advanced Scripting

  1. 1. Taking Your FDM Application to the Next Level with Advanced Scripting Tony Scalese Edgewater Ranzal
  2. 2. About Edgewater Ranzal One of the Largest Oracle/Hyperion Practices in the U.S. Oracle / Hyperion Platinum 15 Years Partner - Highest Status 700+ clients 1000+ projects Vertical Expertise with High- Profile Clients from Coast to Coast Sound Project Methodology Insures Project Success “One Stop Shop” for ALL EPM Implementation needs
  3. 3. Our Services Business Consolidation Planning Intelligence Data Project Infrastructure Services Management
  4. 4. Who Is Tony Scalese Over 10 years Experience with Data Integration and Financial Planning & Consolidation on the Hyperion suite of products Established many innovative FDM design, customization and automation concepts that have evolved into standard Industry-wide practices. Certified HFM Consultant - System 9 & Fusion 11 Present at Oracle conferences, Ranzal webcasts and post on Oracle Technology Network (OTN) and blog on B.A. Economics, Allegheny College; MBA Candidate, Babson College
  5. 5. Agenda Script Types Import Scripts Event Scripts Custom Scripts Tips & Tricks Common Script Usage Batch Scripts Leveraging Workbench Scheduling Scripts Solution Overview & Wrap-up Smart Replace Resources Scripting Challenge
  6. 6. What is FDM Scripting? FDM has a powerful scripting engine that leverages the VBScript programming language to further extend the application’s functionality Scripts can be used to execute SQL queries Scripts can leverage windows objects (Shell) to execute batch command files FDM Scripting is as powerful as your programming skills & knowledge of the application architecture
  7. 7. Script Types Import: Execute during the import workflow stage when assigned to the import format used by the location processing data Event: Execute during predefined “events” within the application. These are similar to Excel workbook macros that execute “OnOpen” Custom: All other scripts that are used to perform additional actions/functions in FDM
  8. 8. Import Scripts DataPump – Used with Delimited & Fixed Width Import formats Execute for the dimension to which they are assigned in the import format. Execute for each line in the data file Integration – Used with Script Import Formats Used to provide direct integration to relational sources Executes SQL queries to retrieve data from source Often Utilizes an ADO connection Working example in the Admin Guide
  9. 9. Import Scripts – Some Facts API objects are not available for use in Import Scripts - Data Pump or Integration Data Pump scripts are passed the field (strField) defined by the import format – i.e, field x of y - as well as the entire record (strRecord) Temporary variables can be used during the import process and accessed by other import scripts – RES.pVarTempx You cannot execute Import scripts from the script editor
  10. 10. Import Scripts – The #1 Pitfall Pre/Cross Dimensional Mapping - if source account is X, Y or Z then Entity is A While there are times this can be necessary, robust event scripting can often address the need for this logic Why is this approach flawed? Limited visibility to the true source value for a given dimension Mapping “logic” is likely no longer an end user function; scripts are only visible to administrators Any time the logic changes, the data file must be re- imported ERPi does not currently support modifications to the source member that was extracted from the G/L
  11. 11. Example Integration Script Package Create connection to source Connection strings vary based on source DB type Run query to get source records SQL Select query Append query result to FDM worktable
  12. 12. Event Scripts – Some Facts Only execute when the Event actually has code Application passes certain arguments to the event script when triggered “Action” event scripts often execute multiple subprocesses and/or other event scripts You cannot add “new” Event scripts You cannot execute Event scripts from the script editor
  13. 13. Event ScriptsEvent Script ExecutedStartUp During Log In and Logout of the applicationShutDown Does not execute in When using the API function mStatusMessageSystemLocked When the system is LockedPOVChanged When the point-of-view is changedSecurityChanged When security is changedImportMap (Bef & Aft) During the Import of a mapping .TRx fileCopyMap (Bef & Aft) During the Copy of map from one location to anotherClearData (Bef & Aft) When data is cleared for a given point-of-viewFileImport (Bef & Aft) When a flat file is imported; does not apply to adaptor & script based import formats
  14. 14. Event ScriptsEvent Script ExecutedValidate (Bef & Aft) During Validate workflow stepExportToDat (Bef & Aft) During Export step when a data file is createdLoad (Bef & Aft) During Export step when data file export is loaded to target systemConsolidate (Bef & Aft) During a target system is consolidationCheck (Bef & Aft) When Check workflow stepCalculate (Bef & Aft) When Calculate is executed; Process Logic/MapsProcLogicGrp (Bef & Aft) When Logic groups applied; during Import & Process Logic/MapsProcMap (Bef & Aft) When Maps are applied; during Import & Process Logic/Maps; only executes for locations with Wildcard maps
  15. 15. Event ScriptsEvent Script ExecutedArchiveItemAction During archive of import & export filesControlsAction During Certification (un)Review & (un)SubmitImportAction When Import workflow step is runMemoItemAction When Memos are added, updated or deletedMultiloadAction During Multi-Load and Journal processingBatchAction During batch executionBatchAutoMapCorrect During a batch process that utilizes the autocorrect mapping feature
  16. 16. Custom Scripts – Some Facts
  17. 17. Custom Scripts 3 types of Custom scripts General: All other actions in FDM; example – Batch loader script Plug-In: No longer used Web: Used to create tasks flows that allow end users to execute scripts without requiring access to script editor
  18. 18. Running SQL from Scripts Select Queries – Used to retrieve data from a table Set rs = DW.DataAccess.farsKeySet(strSQL) DML Queries – Used to Update/Insert/Delete data blnResult = DW.DataManipulation.fExecuteDML(strSQL)
  19. 19. Scripting Objects File System Object Set FSO = CreateObject(“Scripting.FileSystemObject) Set objFile = FSO.CreateTextFile(PathToFile, OverwriteExisting, blnUnicode) Windows Shell Object Set wShell = WScript.CreateObject("WScript.Shell") lngResult = WShell.Run(strCommand, WindowStyle, blnWaitOnReturn)
  20. 20. Batch Loader From the Workbench, Tools Batch Processing Set the Batch Processing options and click Create Script
  21. 21. Batch Loader Script Package Process Level – Tells FDM which workflow steps to perform; see enmBatchProcessLevels Delimiter – File name delimiter use in the batch file name. Example: 1~Location~Category~Period~rr.txt Map Auto Correct – Controls if FDM should automap missing members to a default/suspense member; True/False
  22. 22. Object Browser Object Browser contains a list of all of the API functions that are available to be used in FDM scripts Object Browser is only available in WorkBench Many objects provide a description of the return or required arguments
  23. 23. Accelerators Accelerators are prewritten snippets of code that perform common scripting operations including: Get detailed POV information (location metadata) Create and loop through a recordset Work with text files using FSO Send email Accelerators provide 70-80% of the code, you will often need to update/refine
  24. 24. Using Accelerators Select the section of the script where you need the accelerator code Double click the accelerator and the code is inserted Refine as needed – you will need to review the code
  25. 25. Adaptor Specific Objects Import the Type Library of the Adaptor Right click the object browser and select Add Type Library Browse to the adaptor folder and import the AdaptorName.tlb file
  26. 26. Scheduling Scripts FDM Task Manager – FDM component that allows custom scripts to be scheduled on specific intervals; seconds, days of the week, specific day(s) each month FDM Shell Object – Used to execute custom scripts from a windows batch file; batch file can be scheduled within Windows Scheduled Tasks or any enterprise scheduling software
  27. 27. Task Manager Select application & script to execute Specify Login credentials – non expiring recommended Specify Time interval to execute
  28. 28. FDM Shell Shell object is in the SharedComponents of the installation directory Double click the UPSShell executable Open Notepad and paste Default syntax is provided Consists of 2 parts – Path to FDM Shell & Call to script
  29. 29. FDM Shell Syntax C:OracleMIDDLE~1EPMSYS~1productsFINA NC~1SHARED~1upsShell.exe CustomScriptEx=AppName~UserID~PW~DOMA IN~LoadBalancerName~LogDirectory~ScriptNa me~LanguageCode(Default=1033)~EncodeUnic ode(Default=0) C:OracleMIDDLE~1EPMSYS~1productsFINA NC~1SHARED~1upsShell.exe CustomScriptEx=App1~admin~password~~local host~C:Temp~BatchLoad~1033~0
  30. 30. Taking a Detour – HFM Architecture HFM subcubes are the intersection of the Accounts, ICP, Custom1-4 & Period for the Year, Entity, Scenario and Value dimensions When loading in replace mode, the entire subcube is cleared for each unique Year, Entity Scenario that is contained in the data This is the default HFM behavior – loading through FDM or directly in HFM through load tasks Data is “orphaned” in HFM if an entity is loaded and then in subsequent loads is not part of the data set – meaning potentially inaccurate financial results
  31. 31. Preliminary Load Preliminary load includes a errant G/L posting that misclassifies data into the ‘Rhode Island’ entity
  32. 32. Reload G/L posting is corrected and previous entry is re-classed from Rhode Island to Massachusetts Data is not cleared from Rhode Island since no data exists in the G/L file for R.I. HFM is wrong!
  33. 33. How Can FDM Help?Smart Replace is a Ranzal custom developedFDM solution that addresses this common dataquality issue caused by the default clearbehavior of HFM A list of the unique entities that have been loaded to HFM is maintained The data that is currently being loaded to HFM is compared against the list of historically loaded data If any “orphaned” entities are found, a data clearing record for that entity is added to the data set being loaded
  34. 34. Reload with Smart Replace G/L posting is corrected and previous entry is re-classed from Rhode Island to Massachusetts Data is cleared from Rhode Island by the custom Smart Replace functionality HFM is correct!
  35. 35. What To Learn More? FDM Adaptor Actions FDM API Guide Oracle Technology Network (OTN) tart=0 Ranzal & Associates W3 Schools Google
  36. 36. Scripting Challenge Tell me a problem you are facing in your FDM application that you believe or know custom scripting will address Entries can be dropped at the Ranzal booth or email me ( before the end of the conference I will select 1 challenge and create a script that addresses the issue I will schedule a 1 hr web session to demo the solution
  37. 37. QuestionsTony
  38. 38. Other Ranzal PresentationsCalculation Manager: The New and Improved Application to Create Hyperion Planning Business Rules – Monday, 11:15 am, Room 102CSecurity and Auditing in HFM – Tuesday, 4:30pm, 101BBest Practices for Using DRM with EPMA – Wednesday, 8:30am, 103AGetting Started with Calc Manager for HFM – Wednesday, 8:30am, 101BAdvanced Topics in Calc Manager for HFM – Wednesday, 9:45am, 101BMaximizing the Value of an EPM Investment with ERPi, FDM & EPMA – Wednesday, 11:15am, 101BTaking your FDM application to the next level with Advanced Scripting – Friday, 8:30am, 101BIFRS reporting within Hyperion Financial Management – Thursday, 10:30am, 101B