Cepheus
How-To Guide
navis@cepheusonline.com
Cepheus Navis

SAP Business Objects → Power BI Migration

Convert SAP Business Objects Web Intelligence workbooks to Microsoft Power BI. Proven calculation equivalence, tamper-evident audit trails, airgapped operation.

The complete pipeline at a glance
navis init                         # creates spec.toml — edit the paths inside
navis-extract spec.toml            # pull data and definitions from source
navis analyze spec.toml            # portfolio assessment + License Request PDF
                                   # → email PDF to navis@cepheusonline.com
navis verify-license spec.toml     # confirm license is valid
navis convert spec.toml            # convert to Power BI
navis-deploy spec.toml             # wire data so output opens populated

# Open the converted output in Power BI — your reports are ready.

Requires Python 3.9, 3.10, 3.11, 3.12, or 3.13.

Requires access to the SAP BusinessObjects server (Raylight REST API).

🔗

navis runs every step. init, analyze, verify-license, and convert are sub-commands of navis (e.g. navis analyze spec.toml). For parity with the standalone navis-extract and navis-deploy tools — and so any single step can be scripted on its own — analyze and convert also have matching hyphenated commands: navis-analyze and navis-convert are exact equivalents of navis analyze and navis convert. If you have more than one Navis migration package installed on the same machine, use the explicit forms — navis-bo-pbi-extract, navis-bo-pbi-analyze, navis-bo-pbi-convert, navis-bo-pbi-deploy — so the right converter is invoked.

Create Your Spec File

All Navis commands read from a configuration file you point them at. Run init to generate one with all required fields pre-filled:

navis init

This creates spec.toml in your current directory. You can pass a different filename if you prefer — every subsequent command just takes the file as its argument. Open it and fill in the paths:

spec.toml — the lines you need to edit
[pipeline]
input   = "/path/to/source/files"     # folder containing your source files
working = "/path/to/working"          # staging folder (created automatically)
output  = "/path/to/engagement"         # engagement folder: Navis arranges everything inside it


[convert]
license = "/path/to/cepheus-license.pdf"  # the license file Cepheus sends you
📄

One file, every command. Every step in the pipeline reads from the same configuration file. Set your paths once and run each command in sequence — no flags, no other arguments to remember.

Your Engagement Folder

output names the engagement folder. Navis arranges everything it writes inside it, the same way every time, so analysis paperwork, converted reports and audit evidence never mix:

engagement/
  spec.toml
  analysis/      License Request PDF, assessment documents, analysis gaps
  conversion/    one folder per converted report, with its documentation/
  evidence/      one <report>_CEC.zip Evidence Capsule per report, plus the verification kit
  working/       data staged by the extract and deploy steps
spec.toml — minimal example
[general]
epoch = "2025-11-14T09:00:00-05:00"  # pin this — same epoch reproduces byte-identical output

[pipeline]
input   = "C:/Workbooks"  # folder of .navis-bo files (produced by extract step)
output  = "C:/Engagements/Northwind"
working = "C:/Working"  # staging folder for pre/deploy steps


[convert]
license = "cepheus-license.pdf"

[extract]
doc_id     = "FAAb..."            # BO document ID or CUID
base_url  = "http://your-bo-server:6405"
user      = "Administrator"
password  = ""
folder_id = "6910"

[deploy]
# Reads [extract].base_url + credentials to export data provider CSVs

Every command reads from spec.toml. Relative paths resolve from the spec file’s directory.

Extract Source Data Definitions

The SAP Business Objects source platform is either a proprietary binary or lives on a server. The extract step connects to the SAP BusinessObjects server via Raylight REST API, exports each report's structure as a portable .navis-bo file, and saves the underlying data to your working folder. The analyze and convert steps then run entirely offline — no server, no engine, no network required.

ⓘ

Run once per source workbook. The .navis-bo artifact is portable. You can produce it on a machine with access to the SAP Business Objects engine, then carry the artifact to an airgapped machine to analyze and convert.

Configure the BO server URL and credentials in [extract]:

[extract]
base_url  = "http://your-bo-server:6405"
user      = "Administrator"
password  = ""
folder_id = "6910"
doc_id    = "FAAb..."  # BO document CUID or numeric ID
navis-extract spec.toml

It reads your source folder, saves the exported definitions and data to your working folder, and produces a working.sig integrity manifest that the analyze and convert steps verify to detect tampering.

Analyze Your Workbooks

Scan .navis-bo artifacts (produced by the extract step) to assess what can be automatically migrated before committing to a conversion.

Complexity Ratings
Per-workbook complexity assessment across the portfolio
Automation Rate
How many calculations can be auto-converted with proven accuracy
Fidelity Gap Report
Features that need manual attention, disclosed upfront
SHA-256 Checksums
Embedded in the PDF for license issuance
navis analyze spec.toml                  # Analyze all workbooks
navis analyze spec.toml --summary-only     # High-level numbers only
navis analyze spec.toml --no-recursion     # Top-level folder only

Submit the License Request PDF to navis@cepheusonline.com. The PDF embeds cryptographic fingerprints of your workbooks. Cepheus replies with a license file.

⚠

Why checksums? The license is tied to your workbook files as they existed when analyzed. Modified files won’t match and conversion is blocked — preventing accidental conversion of untested workbooks.

Get & Verify Your License
  1. Run navis analyze and save the License Request PDF
  2. Email the PDF to navis@cepheusonline.com
  3. Receive a license file back
spec.toml
[convert]
license = "cepheus-license.pdf"
navis verify-license spec.toml
StatusMeaning
VALIDLicensed and ready to convert
MISMATCHLicensed, but file has changed since the license was issued
UNLICENSEDNot covered by this license
⚠

Checksum mismatch? The workbook file changed after analysis. Re-run analyze and request an updated license.

Convert
navis convert spec.toml

What Navis produces

For each workbook: a .pbip folder (Power BI Project), plus a _CEC.zip Evidence Capsule.

How calculations are converted

Navis translates SAP Business Objects expressions to their Power BI equivalents using a formal atom-by-atom mapping that has been tested against actual SAP Business Objects output. If an expression cannot be converted with verified accuracy, Navis flags it in the Evidence Capsule rather than guessing.

Deploy

Windows only. The converter produces a .pbip project with the correct semantic model and DAX measures, but the M queries point to placeholder data sources. The deploy step writes the source data as CSV files alongside the project and repoints the M queries at those CSVs — so you can open the project in Power BI Desktop and see live data immediately.

⚠

Verification aid only. The CSV data and M query rewrites are a temporary scaffold for demo and QA. Your data team will reconnect to production sources using Power BI Desktop's Change Source dialog or the Admin portal.

Connects to the BO server (using [deploy].base_url) and exports each data provider's result set to CSV via the Raylight API.

[deploy]
base_url = "http://your-bo-server:6405"   # required
user     = "Administrator"
password = ""
navis-deploy spec.toml

After the deploy step, open the .pbip file in Power BI Desktop — all visuals will populate with data. Review the conversion, check the Evidence Capsule PDF for any fidelity gaps, and hand off to your data team.

Open in Power BI Desktop

Navigate to the _wired folder for any converted workbook and open the .pbip file in Power BI Desktop (File → Open report). Your report pages load with data immediately.

✓

You're done. Walk through each report page and compare against the original. Open the report’s _CEC.zip in evidence/ for the full audit PDF. When satisfied, hand the wired project off to your data team to reconnect to the production data source.

Connecting to production data

In Power BI Desktop: Home → Transform data → Data source settings. Select the CSV source and click Change Source. The semantic model and all measures are already correct — no other changes needed.

What Gets Converted
SAP Business ObjectsPower BI
WebI report sections / blocksPower BI report pages with visuals
Data providers (universes / freehand SQL)Power BI semantic model tables
Objects (measures, dimensions)DAX measures and columns
Formula expressions (Sum, Count, etc.)Equivalent DAX functions
VariablesDAX measures
Conditional formatting formulasPower BI conditional formatting rules
Filters (report, section, block)Power BI page / visual filters
Charts (bar, line, pie, cross-tab)Matching Power BI visual types
Cross-tab / table blocksPower BI table visuals
Data types (string, number, date)Power BI semantic model column types
What Needs Manual Attention

Review the PDF report inside the Evidence Capsule for anything flagged:

  • Data connections — connect to your production data source after import.
  • Unmapped formula functions — BO-specific functions without an equivalent; clearly marked.
  • Universe objects without direct SQL — universe-derived objects need manual data modeling.
  • Alerting and scheduling — not transferred.
  • Linked reports and sub-reports — noted as fidelity gaps.
  • Nothing is ever silently skipped. If Navis can’t convert something, it tells you.
Understanding the Output

Power BI Project folder

SalesDashboard/
  SalesDashboard.pbip              <-- open this in Power BI Desktop
  SalesDashboard.Report/
    definition.pbir
    report.json
  SalesDashboard.SemanticModel/
    definition.pbism
    definition/
      model.tmdl
      database.tmdl
      tables/

Open SalesDashboard.pbip in Power BI Desktop. The semantic model and all DAX measures are fully defined — you only need to point the data source at your production data.

Each report’s Evidence Capsule, in the engagement’s evidence/ folder, contains the PDF audit report with formula-level conversion evidence, SHA-256 checksums, and any fidelity gaps.

Evidence Capsule (_CEC.zip)

Every conversion produces a <report>_CEC.zip in the engagement’s evidence/ folder, next to the verification kit (verify_cec.py and CEC_HASH_FOLD_SPEC.pdf). It contains:

  • A signed PDF with formula-level translation evidence
  • SHA-256 checksums of all input files
  • A machine-readable JSON manifest of all conversions and fidelity gaps
  • A timestamp and license reference

The capsule is tamper-evident: any modification to the converted output invalidates the checksums in the PDF. Keep the evidence/ folder with your converted reports as your audit record.

Digital Signing

The Evidence Capsule PDF is cryptographically signed by Cepheus. The signature certifies:

  • The workbooks that were analyzed match the license issued
  • The conversion was performed by an authentic, unmodified Navis binary
  • The formula translations are the ones Cepheus has validated

Signature verification does not require internet access. The public key is embedded in the license file.

Audit Logs

Every command writes a structured log alongside the output. Log entries include:

  • Per-workbook conversion decisions and fidelity gaps
  • SHA-256 of each input file at conversion time
  • Formula translation records (source expression → target expression)
  • Any warnings or skipped elements

Logs are in JSON Lines format for easy ingestion into SIEM or audit tooling.

Troubleshooting

License errors

ErrorFix
MISMATCHFile changed after analysis. Re-run analyze, request new license.
UNLICENSEDFile not in the license. Check path matches analyzed workbook.
EXPIREDLicense past validity date. Contact navis@cepheusonline.com.
INVALID_SIGLicense file corrupted or modified. Request replacement.

Common issues

SymptomFix
No workbooks foundCheck the input path in your spec file. Use absolute paths.
Fidelity gaps in every workbookExpected — review the PDF. Gaps are documented, not hidden.
Output folder not createdCreate the parent directory first; Navis creates the final folder.

For other issues: navis@cepheusonline.com

Named Pathlists

To analyze or convert a specific subset of workbooks, name the batch in your spec file and list the files you want:

spec.toml
[pipeline]
input = "my_batch"
working  = "C:/Working"
output   = "C:/Output"

[pathlists.my_batch]
base  = "C:/Workbooks"
files = [
    "Sales.twbx",
    "Finance.twbx",
    "subfolder/HR.twbx",
]

Each path in files is resolved relative to base. Use a named batch when you want to hand-pick specific files rather than converting an entire folder.