Skip to main content

create: Create new objects

Create new ABAP objects. Most types accept --source <path> for a one-shot create + body + activate; some carry typed flags. Each runs validate → transport check/auto-select → create.

Related guides: object-creation.

21 commands.

abapctl create class

WRITE

Create a new ABAP class

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--connectionnoconnection profile name
--descriptionnoobject description
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to source file (repeat for multi-include; filename suffix selects slot)
--no-activatenoskip activation after writing sources
abapctl create class ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create function-group

WRITE

Create a new function group

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--connectionnoconnection profile name
--descriptionnoobject description
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to source file (repeat for multi-include; filename suffix selects slot)
--no-activatenoskip activation after writing sources
abapctl create function-group ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create annotation-definition

WRITE

Create a new CDS annotation definition

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--connectionnoconnection profile name
--descriptionnoobject description
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
abapctl create annotation-definition ZCL_FOO --dry-run

abapctl create table

WRITE

Create a new database table

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--connectionnoconnection profile name
--descriptionnoobject description
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to DDL source file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create table ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create structure

WRITE

Create a new DDIC structure

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--connectionnoconnection profile name
--descriptionnoobject description
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to DDL source file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create structure ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create data-element

WRITE

Create a new data element (DTEL)

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--connectionnoconnection profile name
--descriptionnoobject description
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to raw XML body file (mutually exclusive with typed flags)
--typenotype kind: 'domain' or 'predefinedAbapType' (inferred from --domain or --data-type if omitted)
--domainnoreference an existing domain (mutually exclusive with --data-type)
--data-typenoABAP predefined data type (CHAR, NUMC, INT4, DEC, etc.)
--lengthnofield length (required with --data-type)
--decimalsnodecimal places (numeric data types only)
--label-shortnoshort label (max 10 chars)
--label-mediumnomedium label (max 20 chars)
--label-longnolong label (max 40 chars)
--label-headingnocolumn heading (max 55 chars)
--search-helpnosearch help reference
--search-help-parameternosearch help parameter
--set-get-parameternoSPA/GPA parameter
--no-activatenoskip activation after writing properties
abapctl create data-element ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create domain

WRITE

Create a new domain (DOMA)

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--connectionnoconnection profile name
--descriptionnoobject description
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to raw XML body file (mutually exclusive with typed flags)
--data-typenoABAP data type (CHAR, NUMC, DEC, etc.)
--lengthnofield length
--decimalsnodecimal places (numeric types only)
--lowercasenoallow lowercase values
--conversion-exitnoconversion exit function (e.g. ALPHA)
--value-tablenocheck table reference
--fixed-valuenofixed value: low | low:high: | low::text | low:high:text (repeatable)
--no-activatenoskip activation after writing properties
abapctl create domain ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create program

WRITE

Create a new ABAP program

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--descriptionyesobject description (required by SAP)
--connectionnoconnection profile name
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create program ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create interface

WRITE

Create a new ABAP interface

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--descriptionyesobject description (required by SAP)
--connectionnoconnection profile name
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create interface ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create include

WRITE

Create a new include program

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--descriptionyesobject description (required by SAP)
--connectionnoconnection profile name
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create include ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create ddl-source

WRITE

Create a new CDS DDL source

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--descriptionyesobject description (required by SAP)
--connectionnoconnection profile name
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create ddl-source ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create service-definition

WRITE

Create a new service definition

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--descriptionyesobject description (required by SAP)
--connectionnoconnection profile name
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create service-definition ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create access-control

WRITE

Create a new CDS access control

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--descriptionyesobject description (required by SAP)
--connectionnoconnection profile name
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create access-control ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create metadata-extension

WRITE

Create a new CDS metadata extension

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--descriptionyesobject description (required by SAP)
--connectionnoconnection profile name
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create metadata-extension ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create function-module

WRITE

Create a new function module

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--groupyesfunction group name
--connectionnoconnection profile name
--descriptionnoobject description
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create function-module ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create function-group-include

WRITE

Create a new function group include

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--groupyesfunction group name
--connectionnoconnection profile name
--descriptionnoobject description
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create function-group-include ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create message-class

WRITE

Create a new message class

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--descriptionyesobject description (required by SAP)
--connectionnoconnection profile name
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create message-class ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create auth-field

WRITE

Create a new authorization field

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--descriptionyesobject description (required by SAP)
--connectionnoconnection profile name
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create auth-field ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create auth-object

WRITE

Create a new authorization object

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--descriptionyesobject description (required by SAP)
--connectionnoconnection profile name
--transportnotransport request number
--dry-runnovalidate and resolve transport without creating
--sourcenopath to body file (writes after shell create, then activates)
--no-activatenoskip activation after writing the source
abapctl create auth-object ZCL_FOO --source ./ZCL_FOO.clas.abap

abapctl create service-binding

WRITE

Create a new service binding

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--packageyespackage name
--serviceyesservice definition name
--connectionnoconnection profile name
--descriptionnoobject description
--transportnotransport request number
--protocolnoOData protocol for the binding (default v2)
--binding-categorynobinding category: ui or webapi (default by protocol)
--no-activatenoskip activation after creating the binding (leaves it inactive and not publishable until activated)
--dry-runnovalidate and resolve transport without creating
abapctl create service-binding ZCL_FOO --dry-run

abapctl create package

WRITE

Create a new SAP package

read-only with --dry-run; validates and resolves transport without creating

OptionRequiredDescription
name (positional)yesname (object/name argument)
--descriptionyespackage description
--swcompyessoftware component
--transport-layeryestransport layer
--connectionnoconnection profile name
--package-typenopackage type (development|structure|main)
--super-packagenoparent package
--transportnotransport request number
--record-changesnorecord changes in transport (auto-detected from transport layer)
--dry-runnovalidate and resolve transport without creating
abapctl create package ZCL_FOO --dry-run