marga

ABAP editor

Work on any ABAP codebase. No SAP system required.

Open an abapGit export and work with it as in a full IDE: go to definition, where-used list, code completion, syntax checks, and git commit and push. No SAP connection, no logon and no Basis request. Zmarga runs on your machine, and your code goes only where you push it.

macOS: Apple silicon & Intel Windows

samples/abapGit/src Click a highlighted symbol to jump →
zcl_booking_report.clas.abap call site
28  METHOD generate_summary.2930    DATA(lo_booking) = NEW zcl_flight_booking( iv_carrier ).3132    LOOP AT it_requests INTO DATA(ls_request).33      lo_booking->add_booking(34        iv_flight_id = ls_request-flight_id35        iv_class     = ls_request-class ).36    ENDLOOP.3738    " total across every booking just added39    rv_luggage = lo_booking->calculate_total_luggage( ).4041  ENDMETHOD.
zcl_flight_booking.clas.abap definition

        
-> Resolved add_booking on zcl_flight_booking → zcl_flight_booking.clas.abap:55

Why it exists

The code is right there. The system isn't.

ABAP developers are often handed a folder of .abap files with no system to open it in. These are the most common cases.

// handover

Taking over an undocumented codebase

Custom code from a previous consultant, exported and handed over. You need to understand it before the kickoff, and system access arrives next week.

// review

Reviewing changes without system access

The change is in a client system where you have no user, only the export. SE80 is not available, and a plain text editor is not enough.

// estimate

Estimating from an export

A prospect wants an estimate for migrating their custom code and has sent an export rather than a logon. An accurate estimate depends on understanding that code first.


What you get

A real IDE, on a folder of files

Go to definition

Ctrl-click any method call and land on its implementation — across files, not just within one. Works through zcl_x=>m( ), zif_x~m( ) and variable receivers, resolving the variable's type from its declaration.

F3Ctrl / ⌘ + click

Where-used list

Every call site for a method, split into exact matches and likely ones, so an ambiguous receiver is flagged rather than silently dropped. One keystroke shows whether a signature can safely change.

Ctrl / ⌘ + Shift + G

Outline & dependency map

Classes and interfaces with their methods, own and inherited separated, jump on click. The map shows which objects a class depends on, giving an overview of the codebase before you read the code.

Ctrl / ⌘ + O

Mock-data debug simulator

Step through a method without a system. Supply the inputs, watch variables and internal tables change line by line. Control flow, assignment and table basics are simulated; method calls take a value you provide.

F5 stepF8 run

Completion that knows your classes

After ->, => or ~, Zmarga lists what that object actually offers, grouped as the class is built: methods, attributes, each interface, each superclass. Enter writes the whole call with its parameters named; Tab inserts just the name. It follows your file's upper or lower case.

Ctrl + Space↵ full call⇥ name

Syntax errors as you type

Unparsable statements and unclosed blocks are underlined while you write, with a pointer to the actual mistake — the misspelt keyword, the missing period — rather than the line where the parser gave up.

Every change in one place

The Changes tab shows each file you have edited against what is on disk, side by side. Revert or save each file, or all of them at once, before you commit.

Git, built in

Commit, fetch, pull and push from inside the app, using the git login you already have, or a token for GitHub, GitLab, Bitbucket or Azure DevOps. It only goes online when you click.

Privacy

Your client's source code stays on your machine.

Zmarga never contacts Marga Concepts or any other service. No telemetry, no crash reports, no licence check over the internet: your key is checked on your machine. There is no account to create and no server to send anything to. The only connections it ever makes are the git fetch, pull and push you click, straight to your own git server.

This is easy to verify: with no network connection, everything except git works as normal.


Tested on real code

Built against abapGit's own source

768
files in the test corpus
~3s
to parse all of them
8,431
methods indexed
0
parse failures

Measured on the abapGit repository, an MIT-licensed export of real production ABAP. Every release is tested against it.

Pricing

Buy it once. It keeps working.

No subscription. Zmarga runs entirely on your machine, so a licence is a one-time purchase, and the app keeps working after your update period ends.

Personal licence

$99 once

  • Yours permanently, on all your machines
  • One year of updates included
  • Second year of updates: $49, optional
  • Every year after that: $29
  • macOS and Windows
Request early access

Includes a 30-day trial, counted only on days you open Zmarga. No card or account is needed. Prices are in US dollars, and a full refund is available within 14 days of purchase.

Questions

Frequently asked questions

Do I need an SAP system or a connection?

No. Zmarga reads ABAP source files from disk: an abapGit export, a repository checkout or any folder of .abap files. It does not connect to SAP systems and contains no RFC or OData client.

How does the trial work?

The trial lasts 30 days, counted only on days you open the app. No card or account is needed. When it ends, Zmarga becomes read-only: you can still open and read everything, and a licence key turns editing back on. Your files are never changed.

How does this compare to ADT in Eclipse?

When you have system access, use ADT: it has SAP's full syntax check and can run your code. Zmarga is for when you don't: no logon and no Eclipse installation, and a folder opens in seconds.

Does it understand SAP standard classes?

Only those included in your export. Standard classes such as cl_salv_table are part of the SAP system, not of an abapGit repository, so navigation stops at the call. Everything in your own namespace resolves fully.

Is my code uploaded anywhere?

No. There is no account, no server and no telemetry, and the licence check runs on your machine against a key you enter once. Zmarga goes online only when you click fetch, pull or push, and then only to your own git server. You can verify this by using Zmarga with no network connection.

Which ABAP statements does the simulator support?

A defined subset: DATA and assignment, IF/ELSEIF/ELSE, CASE, LOOP AT ... INTO, WHILE, APPEND, CLEAR, CHECK, EXIT, CONTINUE, RETURN and WRITE. Method calls are not executed; you supply each return value. Other statements are stepped over and labelled "not simulated".

Can it be installed on a managed corporate laptop?

Zmarga installs no background service, driver or kernel extension, and its only network access is the git fetch, pull and push you start, to your own git server. The installer is not yet code-signed, so the first launch needs the standard "Open anyway" step in Gatekeeper (macOS) or SmartScreen (Windows). Code signing is in progress.

Try it before the first release.

Zmarga is in early access. Email us and we'll send you a build for macOS or Windows to try on your own exports. No sign-up and no mailing list, and your code stays on your machine.