Thoughts, ideas and solutions from a few EPM consultants.

Python Tools

I've been playing around with python/jython a lot lately and have thrown together a small set of tools. These tools can be found on GitHub. Below I'll try to explain the purpose of each. This may end up being a mutlipart post as I plan to add to the repo when I find new useful ways to use python in EPM.

This script does muliple replacement on a file using a set of delimited mappings. The default delimiter for the maps is tab.

-f, --file      Essbase extract file (required)
-m, --map       Mapping file for replacements (required)
-d, --delim     Delimiter used to separate source and target in map

- h             Help

Example: python --file=test-data\replace-source.txt --map=test-data\replace-maps.txt

Extracts all the member names that appear in a non column format essbase extract file (the only format currently suppored in ASO.) This can be especially useful for finding problems before load when compared to a list containing members names in the outline.

-f, --file     Essbase extract file (required)
-o, --output   Output file

-h             Help
-s, --stats    Include statistics on number of occurrences in file

Example: python --file=test-data\essbase-extract-data.txt

This assumes that the user is using a version of EPM that supports the MaxL command to export an xml extract of the outline and they know how to use it. When run it creates a "diff" report between two xml outline extracts. Currently it only compares parent, child, consolidation operator and aliases for differences but I hope to add member formulas soon. It's been quite useful to me as of late and I have to thank Jake Turrell for the idea.

-s, --source   Source XML File (required)
-t, --target   Target XML File (required)
-o, --output   Output File

-h             This Help
-v, --verbose  Creates source.txt and target.txt files

Example: python --source=test-data\source-outline.xml --target=test-data\target-outline.xml

Alright that's it for now thanks for watching ;)