Next Generation Outline Extractor Versions

3.0.0

A ground-up rewrite around a source-neutral Common Outline Format: any extractor can be paired with any writer, rather than each source format needing its own dedicated writers.

  • Requires Java 17 or newer (previously Java 8)

  • New extraction sources: Essbase REST API, Oracle EPM Cloud/PBCS, and a relational round-trip (read back an outline previously written by the JDBC writer)

  • The JDBC writer gained an easy embedded-H2 mode (embedded: true, no other configuration needed) alongside its existing support for an arbitrary JDBC URL - and any other database’s driver can be added yourself, with no rebuild, by dropping its jar into ~/.ngoe/drivers

  • Load File, Generation, Level, and Documentation text writers carried forward from 2.5.x, with their full field-selection and UDA-handling options intact

  • 2.5.x’s MaxL/XML export writer lives on as essbase-xml-writer - same outline XML format, paired with the essbase-xml extractor for a full round trip through a local file

  • The graphical interface was redesigned around a single window (property table with checkbox rendering for booleans, a persistent extraction progress dialog, recent-configuration history) in place of the previous step-by-step wizard

  • The command-line interface was rebuilt with structured JSON configuration, describe-providers for self-documenting provider discovery, and a stable set of exit codes for scripting

  • Not carried forward: the Hyperion Planning 11 writer, and two per-member concepts across every writer - alias table values and attribute-dimension associations - neither has a home yet in the new source-neutral model. If you need Hyperion Planning 11 output, extract with 3.0.0 and point the 2.5.x tool at that output. The two per-member gaps have different root causes: alias values are purely a Common Outline Format gap - the underlying essbase-outline-export-parser library already models them (Member.aliases), nothing currently reads or writes that field. Attribute-dimension associations go one level deeper - the real Essbase export XML carries them (<AttributeMember dimension="…​" name="…​"/> under each base member), but the library’s Member model has no field for it at all, so the data is silently dropped by JAXB before NGOE code ever sees it. Closing that one means extending the library first, not just NGOE.

  • Also not carried forward, on the extraction side: 2.5.x’s dimension filtering (export.dimensions) applied uniformly to every Essbase input mode - today only pbcs can extract a dimension subset (dimension-list); the Essbase Java API and REST extractors always pull every dimension. Also missing: member-level include/exclude filters (calc-style member-selection specs), and the throttling/retry knobs (query cursor size, inter-batch delay with auto-backoff, TCP-port-exhaustion cooldown) that made large or flaky-network extracts self-healing. None of these have come up as needed yet - a full extraction paired with a full write is by far the common case - but they’re known gaps worth knowing about if that changes.

2.5.0

  • Removed SQL extraction

  • Removed log4j dependency

  • All available versions of Essbase JAR files now included in a single distribution

2.1.4

  • Update olapunderground-outline-extractor.cmd file to pass parameters through to program

  • Fix shipped default.properties file to include Hibernate properties

2.1.3

  • Now store Hibernate properties and encrypted password in properties file

  • Properties no longer in the persistence.xml file

  • Internal cleanups (SortedProperties)

  • Add newer Essbase Java API files for 11.1.2.4.010 through 11.1.2.4.017

  • New shell file to help launch extraction on Unix platforms

2.1.2

  • (Internal) clean up build process

  • Fix issue where output formats that do not work with MaxL files were not being disabled properly

2.1.0

  • Add indent-by-generation feature to DocumentationTextWriter

  • Fix issue when not printing parent of a member showing extra comma on line

  • No longer print blank line in output when not printing headers

  • Cleanup FileWriterBase implementations with respect to header output implementation

Versions before 2.1.0

Older releases were tracked by internal build number and dated, numbered issues rather than a clean version and a short description - preserved here as-is, just reformatted into the same heading-and-list structure as the versions above.

2.0.6

Supported Essbase versions: 9.3.1, 9.3.1.1, 9.3.1.2, 9.3.3, 11.1.1, 11.1.1.1, 11.1.1.2, 11.1.1.3, 11.1.1.4, 11.1.2, 11.1.2.1, 11.1.2.1.102, 11.1.2.1.103, 11.1.2.1.104, 11.1.2.1.105, 11.1.2.1.106, 11.1.2.2, 11.1.2.2.102, 11.1.2.2.103, 11.1.2.2.104, 11.1.2.3, 11.1.2.3.001, 11.1.2.3.002, 11.1.2.3.003, 11.1.2.3.500, 11.1.2.3.501, 11.1.2.3.502, 11.1.2.3.505, 11.1.2.3.507, 11.1.2.4, 11.1.2.4.001, 11.1.2.4.002, 11.1.2.4.003, 11.1.2.4.006, 11.1.2.4.008, 11.1.2.4.009.

2.0.5.1288

  • Resolved an issue where too many UDA columns were being displayed in Documentation Text Writer, and added formatting options to "stack" the UDAs, "condense" them, or use the existing behavior (Issue 1381, April 28, 2016).

  • Extracts now use the /output folder (instead of the root of the program) when no other folder is specified (Issue 1408, April 28, 2016).

  • UDAs are now parsed out of MaxL extracts (Issue 1464, April 28, 2016).

  • Fixed an issue where options weren’t showing in the UI when extracting from Essbase (Issue 1465, April 28, 2016).

  • Added enhanced UDA treatment options to Load File Writer and Documentation Text Writer: UDAs can now be collapsed, condensed, or stacked, giving a column per UDA, a column per unique UDA (up to a limit), or all of them in one column separated by a given delimiter (Issue 1466, April 28, 2016).

  • Fixed a null pointer error when trying to process an existing MaxL XML file (Issue 1478, June 3, 2016).

2.0.5.1073

Supported Essbase versions: 9.3.1, 9.3.1.1, 9.3.1.2, 9.3.3, 11.1.1, 11.1.1.1, 11.1.1.2, 11.1.1.3, 11.1.1.4, 11.1.2, 11.1.2.1, 11.1.2.1.102, 11.1.2.1.103, 11.1.2.1.104, 11.1.2.1.105, 11.1.2.1.106, 11.1.2.2, 11.1.2.2.102, 11.1.2.2.103, 11.1.2.2.104, 11.1.2.3, 11.1.2.3.001, 11.1.2.3.002, 11.1.2.3.003, 11.1.2.3.500, 11.1.2.3.501, 11.1.2.3.502, 11.1.2.3.505, 11.1.2.3.507, 11.1.2.4, 11.1.2.4.001, 11.1.2.4.002, 11.1.2.4.003, 11.1.2.4.005.

  • Resolved an issue where only one alias table was exported when using MaxL as the extract source (Issue 1401, November 23, 2015).

  • Resolved an issue where extracts using MaxL input with Unicode member names could print incorrect characters in the output (Issue 1402, November 23, 2015).

  • Resolved an issue where aliases and UDAs could be improperly placed on parent members (Issue 1403, November 23, 2015).

2.0.4.887

Supported Essbase versions: 9.3.1, 9.3.1.1, 9.3.1.2, 9.3.3, 11.1.1, 11.1.1.1, 11.1.1.2, 11.1.1.3, 11.1.1.4, 11.1.2, 11.1.2.1, 11.1.2.1.102, 11.1.2.1.103, 11.1.2.1.104, 11.1.2.1.105, 11.1.2.1.106, 11.1.2.2, 11.1.2.2.102, 11.1.2.2.103, 11.1.2.2.104, 11.1.2.3, 11.1.2.3.001, 11.1.2.3.002, 11.1.2.3.003, 11.1.2.3.500, 11.1.2.3.501, 11.1.2.3.502, 11.1.2.3.505, 11.1.2.3.507, 11.1.2.4, 11.1.2.4.001.

  • Renamed two labels on the Sources tab: "MaxL Extracted Outline" to "Extract and Process MaxL Outline XML", and "MaxL Extract File" to "Use Previously Extracted MaxL Outline XML" (Issue 1370, May 26, 2015).

  • Updated MaxL outline file parsing to correctly read and write aliases and UDAs containing special characters such as the ampersand (&) or single quote ('), and stopped wrapping aliases in double quotes in the MaxL XML file when they didn’t need it (Issue 1367, May 7, 2015).

  • Stopped logging the username and password passed via the -essbase.username and -essbase.password command-line parameters (Issue 1366, May 7, 2015).

2.0.3.791

  • Fixed a StringIndexOutOfBoundsException upon completion of some extracts (Issue 1356, March 3, 2015).

  • All writers can now replace line feeds, carriage returns, tabs, and extraneous spaces in formulas (Issue 1355, February 15, 2015).

  • Changed the Relational Writer’s default database name from dodeca to extractor (Issue 1354, February 13, 2015).

  • Added CONSOLIDATION_TYPE_SYMBOL, SHARE_FLAG_SYMBOL, TIME_BALANCE, TIME_BALANCE_SYMBOL, TIME_BALANCE_SKIP, TIME_BALANCE_SKIP_SYMBOL, EXPENSE_FLAG, EXPENSE_FLAG_SYMBOL, TWO_PASS_FLAG, and TWO_PASS_FLAG_SYMBOL columns to the Relational Writer’s CACHED_OUTLINE_MEMBERS table (Issue 1353, February 13, 2015).

  • Added Server, Application, and Cube columns to the Relational Writer’s CACHED_OUTLINE_VERSIONS table (Issue 1352, February 13, 2015).

  • Fixed an issue with the Load File Writer where UDA column headers were incorrectly written as UDAS0,DimName instead of UDA0,DimName (Issue 1351, February 13, 2015).