Getting Started

What’s in the distribution

outline-extractor.sh

Launches the graphical interface (macOS, Linux)

outline-extractor-cli.sh

Launches the command-line interface (macOS, Linux)

outline-extractor.cmd

Launches the graphical interface (Windows)

outline-extractor-cli.cmd

Launches the command-line interface (Windows)

OutlineExtractor.pdf

This manual, as a PDF

lib/

The application and every library it depends on

lib/providers/essbase-japi/

Additional Essbase Java API versions you can select at run time

Requirements and launching

Installation only requires a Java 17 (or newer) runtime and extracting the distribution zip to a directory - there’s no separate install step. Run the launcher for your platform from the directory you extracted into; each one looks for JAVA_HOME first, then java on PATH, and the shell scripts additionally fall back to /usr/libexec/java_home -v 17 on macOS. If none of those resolve to a usable Java installation, the launcher exits with a message telling you to set JAVA_HOME.

The launchers use a classpath relative to their own location, so they change to that directory first - you can invoke them by full path from anywhere, and on Windows you can double-click outline-extractor.cmd.

The GUI launchers deliberately start Java without a console window (javaw on Windows), so a failure during startup is reported by the application rather than printed to a terminal. Use the -cli launcher if you want startup output on the console.
If you installed the macOS app (the .dmg) or the Windows app (the .msi) instead of this zip, there’s no outline-extractor-cli.sh on disk - see From the GUI to Automation for where its CLI actually lives.

How it fits together

Every run is the same three-part shape, no matter which source or destination is involved:

source system  --[ extractor ]-->  Common Outline Format  --[ writer ]-->  output

An extractor connects to a source (a live Essbase or PBCS cube, an exported XML file, a relational table) and builds a Common Outline Format outline from it. A writer consumes that same outline and produces some output (a CSV, an XML file, a database table). Neither side knows anything about the other - a writer never asks "was this extracted from Essbase or PBCS?" - which is exactly what makes every extractor/writer combination valid.

Both are selected the same way everywhere - by a short provider ID (essbase-xml, documentation, jdbc, and so on): the GUI’s source/target dropdowns list them, the CLI’s --extractor/--writer flags take them directly, and describe-providers (Discovering providers) prints the authoritative list along with every property each one accepts. See Extractors and Writers for the full list, and The Common Outline Format for what actually flows between them.