Command Reference
Run erpl-adt --help for the live listing; this page documents the same surface offline. The CLI is organised as erpl-adt [global-flags] <group> <action> [args]. Every command accepts --json for machine-readable output.
SEARCH
search <pattern> Search for ABAP objects
--type <type> Object type: CLAS, PROG, TABL, INTF, FUGR, DTEL, …
--max <n> Maximum number of results
OBJECT
Read, create, delete, lock/unlock ABAP objects.
object create Create an ABAP object
--type <type> Object type (required, e.g. CLAS/OC, PROG/P)
--name <name> Object name (required)
--package <pkg> Target package (required)
--description <text> Object description
--transport <id> Transport request number
object delete <uri> Delete an ABAP object
--handle <handle> Lock handle (skips auto-lock if provided)
--transport <id> Transport request number
object lock <uri> Lock an object for editing
--session-file <path> Save session for later unlock
object read <name-or-uri> Read object structure
object run <class-name-or-uri> Run an ABAP console class (IF_OO_ADT_CLASSRUN)
object unlock <uri> Unlock an object
--handle <handle> Lock handle (required)
--session-file <path> Session file for stateful workflow
SOURCE
Read, write, and check ABAP source code.
source check <name-or-uri> Check syntax
source edit <name-or-uri> Open in $EDITOR and write back
--type <type> Object type for name resolution
--section <section> main | localdefinitions | localimplementations | testclasses
--transport <id> Transport request number
--activate Activate after writing
--no-write Open editor but do not write back
source read <name-or-uri> Read source code
--version <version> active (default) | inactive
--section <section> main (default) | localdefinitions | localimplementations | testclasses | all
--type <type> Disambiguate name resolution
--color / --no-color ANSI syntax highlighting
--editor Open in $VISUAL/$EDITOR (plain text)
source write <name-or-uri> Write source code
--file <path> Path to local source file (required)
--section <section> main (default) | localdefinitions | localimplementations | testclasses
--handle <handle> Lock handle (skips auto-lock if provided)
--transport <id> Transport request number
--session-file <path> Session file for stateful workflow
--activate Activate after writing
--optimistic Try lockless write first (pre-7.51 SAP)
ACTIVATE
activate <name-or-uri> Activate an inactive ABAP object
TEST / CHECK
test <name-or-uri> Run ABAP Unit tests
check <name-or-uri> Run ATC quality checks
--variant <name> ATC variant (default: DEFAULT)
TRANSPORT
transport create Create a transport
--desc <text> Transport description (required)
--package <pkg> Target package (required)
transport list List transports
--user <user> Filter by user (default: DEVELOPER)
transport release <number> Release a transport
DATA DICTIONARY
ddic cds <name> Get CDS source
ddic table <name> Get table definition (fetches abap_type + check_table by default)
--no-resolve-types Skip data-element lookup; show field names and types only (fast)
--raw Print raw SAP XML response
PACKAGE
package exists <name> Check if package exists
package list <name> List package contents (one level)
package tree <name> List package contents recursively (BFS)
--type <type> Filter: CLAS, PROG, TABL, INTF, FUGR, …
--max-depth <n> Maximum recursion depth (default: 50)
DISCOVER
discover services Discover ADT services
--workspace <name> Filter by workspace (e.g. "Object Repository")
BW
SAP BW/4HANA Modeling operations. See the BW guide for usage. Each subcommand below is documented as a top-level command; flags are listed exactly as erpl-adt bw <action> --help prints them.
bw activate
Activate BW objects.
bw activate <type> <name>
--validate Pre-check only, don't activate
--simulate Dry run of activation
--background Run as background job
--force Force activation even with warnings
--exec-check Set execChk=true in activation payload
--with-cto Set withCTO=true in activation payload
--sort Validate mode: sort dependency order
--only-ina Validate mode: only inactive objects
--transport <corrnr> Transport request
bw adturi
Show BW-to-ADT URI mappings.
bw adturi
bw applog
Read BW repository application logs.
bw applog
--username <user> Filter by user
--start <timestamp> Filter by start timestamp
--end <timestamp> Filter by end timestamp
bw changeability
Show BW changeability settings.
bw changeability
bw create
Create a BW object.
bw create <type> <name>
--package <pkg> Target package
--copy-from-name <name> Copy source object name
--copy-from-type <type> Copy source object type
--file <path> Optional XML payload file for create request body
bw datavolumes
Read BW data volumes.
bw datavolumes
--infoprovider <name> InfoProvider filter
--max <n> Max rows
bw dbinfo
Show HANA database info.
bw dbinfo
bw delete
Delete a BW object.
bw delete <type> <name>
--lock-handle <handle> Lock handle (required)
--transport <corrnr> Transport request number
--transport-lock-holder <corrnr> Explicit Transport-Lock-Holder header
--foreign-objects <value> Foreign-Objects header
--foreign-object-locks <value> Foreign-Object-Locks header
--foreign-correction-number <corrnr> Foreign-Correction-Number header
--foreign-package <pkg> Foreign-Package header
bw discover
Discover BW modeling services.
bw discover
bw export-area
Export all objects in a BW InfoArea to JSON or Mermaid.
bw export-area <infoarea>
--mermaid Output Mermaid dataflow diagram instead of JSON
--shape <catalog|openmetadata> JSON output shape: catalog (default) or openmetadata
--max-depth <n> Max recursion depth for nested infoareas (default: 10)
--types <T1,T2,...> Comma-separated TLOGO type filter (e.g. ADSO,DTPA). Default: all
--no-lineage Skip DTP lineage graph collection (faster)
--no-queries Skip query graph collection
--no-search Skip search supplement, use BFS tree only (faster)
--no-xref-edges Skip xref-based INFOPROVIDER→QUERY edge collection
--no-elem-edges Skip orphan ELEM XML parsing for provider edge recovery
--iobj-edges Show InfoObject nodes (dimensions, filters, variables) in Mermaid
--version <a|m> Object version: a (active, default) or m (modified)
--out-dir <dir> Save {name}_catalog.json and {name}_dataflow.mmd to directory
--service-name <name> Service name for openmetadata FQN (default: erpl_adt)
--system-id <id> System ID for openmetadata FQN prefix
bw export-cube
Export a single BW InfoProvider and its connected graph to JSON or Mermaid.
bw export-cube <cube-name>
--mermaid Output Mermaid dataflow diagram instead of JSON
--shape <catalog|openmetadata> JSON output shape: catalog (default) or openmetadata
--no-lineage Skip DTP lineage graph collection (faster)
--no-xref-edges Skip xref-based edge collection (faster, fewer API calls)
--no-elem-edges Skip orphan ELEM XML parsing for provider edge recovery
--iobj-edges Show InfoObject nodes (dimensions, filters, variables) in Mermaid
--version <a|m> Object version: a (active, default) or m (modified)
--out-dir <dir> Save {name}_catalog.json and {name}_dataflow.mmd to directory
--service-name <name> Service name for openmetadata FQN (default: erpl_adt)
--system-id <id> System ID for openmetadata FQN prefix
bw export-query
Export a single BW query and its connected graph to JSON or Mermaid.
bw export-query <query-name>
--mermaid Output Mermaid dataflow diagram instead of JSON
--shape <catalog|openmetadata> JSON output shape: catalog (default) or openmetadata
--no-lineage Skip DTP lineage graph collection (faster)
--no-queries Skip query graph collection
--no-xref-edges Skip xref-based edge collection (faster, fewer API calls)
--no-elem-edges Skip orphan ELEM XML parsing for provider edge recovery
--iobj-edges Show InfoObject nodes (dimensions, filters, variables) in Mermaid
--version <a|m> Object version: a (active, default) or m (modified)
--out-dir <dir> Save {name}_catalog.json and {name}_dataflow.mmd to directory
--service-name <name> Service name for openmetadata FQN (default: erpl_adt)
--system-id <id> System ID for openmetadata FQN prefix
bw favorites
List or clear BW backend favorites.
bw favorites
bw job
BW background job operations.
bw job <action>
bw lineage
Build a canonical BW lineage graph rooted at a DTP. Returns typed nodes, typed edges, and per-call provenance. JSON output is intended to round-trip into OpenMetadata, DataHub, or a custom catalog.
bw lineage <dtp_name>
--trfn <name> Optional explicit transformation name
--version <v> Version: a (active, default), m (modified), d (delivery)
--max-xref <n> Maximum xref neighbors to include (default: 100)
--no-xref Disable xref expansion for a strict DTP/TRFN graph
bw lock
Lock a BW object for editing. Stateful — pair with bw save and bw unlock.
bw lock <type> <name>
--activity <code> Activity: CHAN (default), DELE, MAIN
--parent-name <name> Parent object name (lock context)
--parent-type <type> Parent object type (lock context)
--transport-lock-holder <corrnr> Explicit Transport-Lock-Holder header
--foreign-objects <value> Foreign-Objects header
--foreign-object-locks <value> Foreign-Object-Locks header
--foreign-correction-number <corrnr> Foreign-Correction-Number header
--foreign-package <pkg> Foreign-Package header
--session-file <path> Save session state for multi-step workflow
bw locks
Monitor and break BW object locks.
bw locks <list|delete>
--user <name> Filter / specify lock owner user
--search <pattern> Search pattern for list
--max <n> Maximum results (default: 100)
--table-name <name> Table name from list (for delete)
--arg <base64> Encoded arg from list (for delete)
--mode <code> Lock mode, default: E (for delete)
--scope <n> Lock scope, default: 1 (for delete)
--owner1 <base64> Owner1 from list (for delete)
--owner2 <base64> Owner2 from list (for delete)
bw message
Resolve a BW message text.
bw message <identifier> <textype>
--msgv1 <value> Message variable 1
--msgv2 <value> Message variable 2
--msgv3 <value> Message variable 3
--msgv4 <value> Message variable 4
bw move
List BW move requests.
bw move
bw nodepath
Resolve a BW object node path.
bw nodepath
--object-uri <uri> BW object URI (e.g. /sap/bw/modeling/adso/…) (required)
bw nodes
Show BW object node structure.
bw nodes <type> <name>
--datasource Use DataSource structure path instead of InfoProvider
--child-name <name> Filter by child name
--child-type <type> Filter by child type
bw qprops
Read BW query properties rules.
bw qprops
bw read
Generic BW object reader. Use the family-specific readers (bw read-adso, bw read-dtp, …) when you want a parsed view.
bw read <type> <name>
--version <v> Version: a (active, default), m (modified), d (delivery)
--source-system <name> Source system (required for RSDS, APCO)
--uri <path> Direct URI from search results (overrides type/name path)
--raw Output raw XML
bw read-adso
Read BW ADSO field structure.
bw read-adso <name>
--version <v> Version: a (active, default), m (modified), d (delivery)
bw read-dmod
Read BW DMOD topology.
bw read-dmod <name>
--version <v> Version: a (active, default), m (modified), d (delivery)
bw read-dtp
Read BW DTP connection details (source, target, mode, runtime settings).
bw read-dtp <name>
--version <v> Version: a (active, default), m (modified), d (delivery)
bw read-query
Read a BW query-family component. Defaults to a Mermaid-rendered graph; switch to --format table or --json for structured output.
bw read-query <name>
--version <v> Version: a (active, default), m (modified), d (delivery)
--format <f> Non-JSON output format: mermaid (default) or table
--layout <l> Mermaid layout: detailed (default) or compact
--direction <d> Mermaid direction: TD (default) or LR
--max-nodes-per-role <n> Reduce fan-out: keep at most n nodes per role; add summary nodes
--focus-role <r> Limit reduction to a specific role (rows|columns|free|filter|member|subcomponent|component)
--json-shape <s> JSON output shape: legacy (default), catalog (flat), or truth (lineage v3)
--upstream <m> Upstream resolution mode: explicit (default) or auto
--upstream-dtp <name> Compose query graph with upstream BW lineage rooted at DTP
--upstream-no-xref Disable xref expansion for upstream lineage composition
--upstream-max-xref <n> Maximum xref neighbors in upstream lineage composition (default: 100)
--lineage-max-steps <n> Maximum auto-upstream planner expansion steps (default: 4)
--lineage-strict Fail when auto-upstream resolution is ambiguous or incomplete
--lineage-explain Emit upstream resolution warnings/decisions for troubleshooting
bw read-rsds
Read BW RSDS field structure.
bw read-rsds <name>
--source-system <logsys> Source system (required, e.g. ECLCLNT100)
--version <v> Version: a (active, default), m (modified), d (delivery)
bw read-trfn
Read BW transformation definition.
bw read-trfn <name>
--version <v> Version: a (active, default), m (modified), d (delivery)
bw reporting
Read BW reporting metadata.
bw reporting <compid>
--dbgmode Set dbgmode=true query parameter
--metadata-only MetadataOnly header
--incl-metadata InclMetadata header
--incl-object-values InclObjectValues header
--incl-except-def InclExceptDef header
--compact-mode CompactMode header
--from-row <n> FromRow header
--to-row <n> ToRow header
bw save
Save a modified BW object. Pair with bw lock (to acquire the handle) and bw unlock (after save).
bw save <type> <name>
--lock-handle <handle> Lock handle from bw lock (required)
--transport <corrnr> Transport request number
--timestamp <ts> Server timestamp from lock response
--transport-lock-holder <corrnr> Explicit Transport-Lock-Holder header
--foreign-objects <value> Foreign-Objects header
--foreign-object-locks <value> Foreign-Object-Locks header
--foreign-correction-number <corrnr> Foreign-Correction-Number header
--foreign-package <pkg> Foreign-Package header
bw search
Search BW objects across the catalog. Supports rich metadata filtering by type, subtype, status, change history, InfoArea assignment, and reverse dependency lookup.
bw search <pattern>
--type <code> Object type (ADSO, HCPR, IOBJ, TRFN, DTPA, RSDS, …)
--subtype <code> Object subtype (REP, SOB, RKF, …)
--max <n> Maximum results (default: 100)
--status <code> Object status: ACT, INA, OFF
--changed-by <user> Last changed by filter
--changed-from <date> Changed on or after date
--changed-to <date> Changed on or before date
--created-by <user> Created by filter
--created-from <date> Created on or after date
--created-to <date> Created on or before date
--depends-on-name <name> Filter by dependency object name
--depends-on-type <type> Filter by dependency object type
--infoarea <name> Filter by InfoArea assignment (e.g. 0D_NW_DEMO)
--search-desc Also search in descriptions
--search-name Search in names (default: true)
bw search-md
Show BW search metadata.
bw search-md
bw sysinfo
Show BW system properties.
bw sysinfo
bw transport
Transport lifecycle for BW objects.
bw transport <check|write|list|collect>
--transport <corrnr> Transport number (for write/collect)
--package <pkg> Package name (for write)
--own-only Show only own transport requests
--rddetails <mode> Check/list detail mode: off|objs|all (default: all)
--rdprops Check/list include properties section
--allmsgs Include all messages where supported
--simulate Dry run (write only)
--mode <code> Collection mode (e.g. 000, 001, 002, 003, 004, 005, 033)
--transport-lock-holder <corrnr> Explicit Transport-Lock-Holder header
--foreign-objects <value> Foreign-Objects header
--foreign-object-locks <value> Foreign-Object-Locks header
--foreign-correction-number <corrnr> Foreign-Correction-Number header
--foreign-package <pkg> Foreign-Package header
bw unlock
Release a BW object lock.
bw unlock <type> <name>
bw validate
Validate (lint) a BW object.
bw validate <type> <name>
--action <name> Validation action name (default: validate)
bw valuehelp
BW value-help lookup.
bw valuehelp <domain>
--query <qs> Raw query string (k=v&k2=v2)
--max <n> Max rows
--pattern <text> Pattern filter
--type <code> Object type filter
--infoprovider <name> InfoProvider filter
bw virtualfolders
Read BW virtual folders.
bw virtualfolders
--package <pkg> Package filter
--type <type> Object type filter
--user <user> User filter
bw xref
Show BW cross-references.
bw xref <type> <name>
--version <v> Object version: A (active), M (modified)
--association <code> Filter by association code (001, 002, 003, …)
--assoc-type <type> Filter by associated object type (IOBJ, ADSO, …)
--max <n> Maximum number of results to return
MCP SERVER
mcp Start MCP server (JSON-RPC over stdio)
See the MCP guide for client wiring and the full tool catalogue.
CREDENTIALS
login Save connection credentials (~/.adt.creds, chmod 600)
logout Remove saved credentials
GLOBAL FLAGS
--host <host> SAP hostname (default: localhost)
--port <port> SAP port (default: 50000)
--user <user> SAP username (default: DEVELOPER)
--password <pass> SAP password
--password-env <var> Read password from env var (default: SAP_PASSWORD)
--client <num> SAP client (default: 001)
--https Use HTTPS
--insecure Skip TLS verification
--json Machine-readable JSON output
--timeout <sec> Request timeout in seconds
--session-file <path> Persist session for lock/write/unlock workflows
--color / --no-color ANSI colored output (auto-detects TTY)
-v Verbose logging (INFO level)
-vv Debug logging (DEBUG level)
Credential resolution: explicit --password flag > --password-env > .adt.creds (via login) > SAP_PASSWORD env var.
EXIT CODES
| Code | Meaning |
|---|---|
0 | Success |
1 | Connection / authentication error |
2 | Not found (object, package, etc.) |
3 | Clone error (deploy workflow) |
4 | Pull error (deploy workflow) |
5 | Activation error |
6 | Lock conflict |
7 | Test failure |
8 | ATC check error |
9 | Transport error |
10 | Timeout |
99 | Internal error |
Tip: erpl-adt <group> <action> --help prints command-specific examples and the latest flag listing — useful when a release adds something this page hasn't picked up yet.