Skip to main content

workspace: Local ↔ SAP sync

Bidirectional sync between local files and SAP objects, like git clone. SID-aligned layout, manifest tracking, conflict detection.

Related guides: workspaces.

10 commands.

abapctl workspace init

WRITE

Create workspace: discover objects, download sources, write manifest

read-only with --dry-run

OptionRequiredDescription
package (positional)yespackage (object/name argument)
--connectionnoconnection profile name
--source-dirnosource file subdirectory name
--transportnodefault transport for push operations
--filternoonly include objects matching name pattern
--typenoonly include object types, comma-separated
--recursivenorecurse into sub-packages
--depthnosub-package recursion depth (implies --recursive)
--no-downloadnocreate manifest only, then pull later
--concurrencynoparallel download limit (default: 5)
--forcenore-initialize if workspace already exists
--dry-runnoshow discovery results without downloading or writing
abapctl workspace init ZFINANCE --dry-run

abapctl workspace status

READ IDEMP

Show sync state (overview or detailed)

OptionRequiredDescription
package (positional)nopackage (object/name argument)
--connectionnoconnection profile name
abapctl workspace status ZFINANCE

abapctl workspace list

READ IDEMP

List tracked objects (reads manifest only)

OptionRequiredDescription
package (positional)nopackage (object/name argument)
--connectionnoconnection profile name
abapctl workspace list ZFINANCE

abapctl workspace pull

IDEMP

Download/refresh sources from SAP

read-only with --dry-run

OptionRequiredDescription
package (positional)yespackage (object/name argument)
objects (positional)noobjects (object/name argument)
--connectionnoconnection profile name
--forcenooverwrite local changes even if modified
--dry-runnoshow sync plan without downloading
abapctl workspace pull ZFINANCE ZCL_FOO ZCL_BAR --dry-run

abapctl workspace push

DESTR

Upload local changes to SAP and activate

prompts for confirmation; read-only with --dry-run

OptionRequiredDescription
package (positional)yespackage (object/name argument)
objects (positional)noobjects (object/name argument)
--connectionnoconnection profile name
--yesnoskip confirmation prompt
--forcenoskip conflict detection
--no-activatenoupload without activating
--transportnooverride transport for this push
--dry-runnoshow what would be pushed
abapctl workspace push ZFINANCE ZCL_FOO ZCL_BAR --dry-run

abapctl workspace diff

READ IDEMP

Show local changes vs SAP baseline

OptionRequiredDescription
package (positional)yespackage (object/name argument)
object (positional)noobject (object/name argument)
--connectionnoconnection profile name
--sapnodiff against live SAP source
--name-onlynolist changed files only
abapctl workspace diff ZFINANCE ZCL_FOO

abapctl workspace add

IDEMP

Add objects to an existing workspace

read-only with --dry-run

OptionRequiredDescription
package (positional)yespackage (object/name argument)
objects (positional)yesobjects (object/name argument)
--connectionnoconnection profile name
--concurrencynoparallel download limit (default: 5)
--dry-runnoshow what would be added without downloading
abapctl workspace add ZFINANCE ZCL_FOO ZCL_BAR --dry-run

abapctl workspace remove

IDEMP

Stop tracking objects

--delete requires --yes for file removal; read-only with --dry-run

OptionRequiredDescription
package (positional)yespackage (object/name argument)
objects (positional)yesobjects (object/name argument)
--yesnoskip confirmation prompt
--deletenoalso delete local source files (requires --yes)
--dry-runnoshow what would be removed without removing
--connectionnoconnection profile name
abapctl workspace remove ZFINANCE ZCL_FOO ZCL_BAR --dry-run

abapctl workspace reset

DESTR IDEMP

Discard local changes, restore baseline

prompts for confirmation; read-only with --dry-run

OptionRequiredDescription
package (positional)yespackage (object/name argument)
objects (positional)noobjects (object/name argument)
--connectionnoconnection profile name
--yesnoskip confirmation prompt
--sapnore-download from SAP instead of stored baseline
--dry-runnoshow what would be reset without writing files
abapctl workspace reset ZFINANCE ZCL_FOO ZCL_BAR --dry-run

abapctl workspace refresh

WRITE

Discover and download new objects not yet in workspace

read-only with --dry-run

OptionRequiredDescription
package (positional)yespackage (object/name argument)
--connectionnoconnection profile name
--recursivenorecurse into sub-packages
--depthnosub-package recursion depth (implies --recursive)
--filternoonly include objects matching name pattern
--typenoonly include object types, comma-separated
--concurrencynoparallel download limit (default: 5)
--forcenoskip SID affinity validation
--dry-runnoshow what would be added without downloading
abapctl workspace refresh ZFINANCE --dry-run