Skip to main content

Template reference

The screen editor's Add template menu inserts a JSON skeleton at the cursor for each section and field type. This page lists every property each template accepts, whether it is required, its default, and an example value.

Each property is annotated with its type, whether it is required, its default value, and whether it is bindable, meaning it accepts an {{input}} binding instead of a literal (see input binding for information).

General rules

  • A screen definition is a JSON array of sections (regular sections and/or tables). Fields live inside a section's fields array.
  • IDs (id on sections and fields) must start with a letter and contain only letters, digits, _, or -. Field IDs become the screen's output parameter names and must be unique across the screen; section IDs must also be unique, as must field IDs within a table.
  • {{input}} binding: almost every property value can be a template string such as "{{myInput}}" instead of a literal, binding it to a screen input (for example a value collected on an earlier screen).
  • $comment: every section and field accepts an optional $comment string — a developer-only note, never shown to users.
  • The editor validates the definition as you type and highlights problems inline. Apply additionally rejects: duplicate field IDs, duplicate section IDs, duplicate field IDs within a table, inputs used with conflicting types, and invalid format patterns.

Common field properties

All field templates share these properties:

PropertyDescription
id
Required property
Unique identifier. This becomes the output parameter name.

Type: string
type
Required property
The field type, set by the template.

Type: string

Example: "text", "select"
label
Required property
Label shown next to the field. Bindable property.

Type: string
valueInitial / default value of the field. Bindable property.

Type: type-specific

Default: null (false for boolean)
helpTextHelp text shown in the UI. This should explain the expected format. Required whenever regex is set on text-based fields. Bindable property.

Type: string

Default: ""
availableWhether the field is visible and enabled. Bind to an input to show / hide fields dynamically. Bindable property.

Type: boolean

Default: true
requiredWhether the user must provide a value. Available on every field type except boolean.

Type: boolean

Default: false
$commentDeveloper-only note.

Type: string

Optional.

The sections below list only the properties each template adds on top of these.


Section template

A regular section: a titled group of fields, rendered as an accordion.

{
"type": "section",
"id": "connection",
"title": "Connection settings",
"description": "Where the workflow should connect to.",
"optional": false,
"fields": [ ]
}
PropertyDescription
id
Required property
Unique section identifier.

Type: string
type
Required property
Always "section".

title
Required property
Section heading. Bindable property.

Type: string

Example: "Connection settings"
descriptionExplanatory text under the heading. Bindable property.

Type: string

Default: ""
optionalIf true, the user can toggle the whole section on/off. Bindable property.

Type: boolean

Default: false
availableShow / hide the section. Bindable property.

Type: boolean

Default: true
fields
Required property
The field objects in this section.

Type: array

Table section template

A tabular section: the fields array defines the columns, and the user enters one or more rows. Each field ID must be unique within the table.

{
"type": "table",
"id": "hosts",
"title": "Target hosts",
"optional": false,
"fields": [ ],
"values": [
{
"row": [
{ "name": "hostname", "value": "sapprd01" },
{ "name": "reboot", "value": true }
]
}
]
}

Takes all the section properties above (with type: "table"), plus:

PropertyDescription
valuesInitial rows. Each entry is { "row": [ { "name": "<field id>", "value": … }, … ] }; the value type must match the column's field type (string, boolean, number, or array). Bindable property.

Type: array or null

Default: null

Boolean template

A toggle.

note

No required property, as a boolean always has a value.

{
"type": "boolean",
"id": "restart-after",
"label": "Restart after update?",
"value": false,
"trueText": "Yes",
"falseText": "No"
}
PropertyDescription
valueInitial state. Bindable property.

Type: boolean

Default: false
trueTextLabel for the true option. Bindable property.

Type: string

Default: "Yes"
falseTextLabel for the false option. Bindable property.

Type: string

Default: "No"

Datetime template

A date-time picker.

{
"type": "datetime",
"id": "maintenance-start",
"label": "Maintenance window start",
"required": true,
"allowPast": false,
"allowFuture": true
}
PropertyDescription
valueInitial date-time. Bindable property.

Type: string or null

Default: null
allowPastWhether dates in the past can be selected. Bindable property.

Type: boolean

Default: true
allowFutureWhether dates in the future can be selected. Bindable property.

Type: boolean

Default: true

Text, Text (Long), and Text (Secure) templates

Single-line input (text), multi-line text area (text_long), and masked/encrypted input (text_secure). All three share the same properties, only type differs. A secure text value is encrypted and becomes a Password variable in the workflow.

{
"type": "text",
"id": "ticket-ref",
"label": "Change ticket reference",
"required": true,
"regex": "/^CHG-[0-9]{6}$/",
"helpText": "Format: CHG- followed by six digits, e.g. CHG-004711.",
"minLength": 10,
"maxLength": 10
}
PropertyDescription
valueInitial text. Bindable property.

Type: string or null

Default: null
minLengthMinimum text length. Bindable property.

Type: integer or null

Default: null
maxLengthMaximum text length. Bindable property.

Type: integer or null

Default: null
regexPattern the text must match, as a JavaScript regex literal /pattern/flags (flags from g i m s u y, no duplicates). If set, helpText becomes mandatory so the user knows the expected format. Bindable property.

Type: string or null

Default: null

Example: "/^CHG-[0-9]{6}$/"

Text (List) template

A list of text values; the user can add multiple entries. Same validation properties as the text fields, applied per entry.

{
"type": "text_list",
"id": "email-recipients",
"label": "Notification recipients",
"required": false,
"value": ["basis-team@example.com"],
"regex": "/^[^@\\s]+@[^@\\s]+$/",
"helpText": "One email address per entry."
}
PropertyDescription
valueInitial entries. Bindable property.

Type: array of strings or null

Default: null
minLength / maxLengthLength limits per entry. Bindable property.

Type: integer or null

Default: null
regex/pattern/flags literal each entry must match. Requires helpText. Bindable property.

Type: string or null

Default: null

Integer and Float templates

Numeric inputs. integer accepts whole numbers only, and float accepts decimals. Same properties, differing only in the number type.

{
"type": "integer",
"id": "parallel-jobs",
"label": "Parallel jobs",
"required": true,
"value": 4,
"minValue": 1,
"maxValue": 16,
"step": 1
}
PropertyDescription
valueInitial value. Bindable property.

Type: number or null

Default: null
minValueSmallest value accepted. Bindable property.

Type: number or null

Default: null
maxValueLargest value accepted. Bindable property.

Type: number or null

Default: null
stepIncrement step for the input's spinner. Bindable property.

Type: number or null

Default: null

Files template

A file bundle selector. The value becomes a File bundle variable in the workflow.

{
"type": "files",
"id": "transport-files",
"label": "Transport files",
"required": true,
"fileBundleType": 1
}
PropertyDescription
valueInitial file bundle. Bindable property.

Type: string or null

Default: null
fileBundleTypeRestricts selectable bundles to one bundle type. Bindable property.

Type: number or null

Default: null

Select template

A drop-down list. Must define either options or predefined (exactly one of the two).

{
"type": "select",
"id": "environment",
"label": "Environment",
"required": true,
"multiSelect": false,
"options": [
{ "label": "Development", "value": "dev" },
{ "label": "Quality assurance", "value": "qas" },
{ "label": "Production", "value": "prd" }
]
}
PropertyDescription
optionsThe choices offered, one of options/predefined is required. Both label and value are required per option; value is what the workflow receives. Bindable property.

Type: array of {label, value}
predefinedUse a built-in option set instead of options, one of options/predefined is required. Currently STATUS (Avantra check statuses) is available; when set, options is ignored.

Type: "STATUS" or null.
valueInitially selected value(s), always given as an array of option values. Bindable property.

Type: array of strings or null

Default: null
multiSelectAllow selecting more than one option. Bindable property.

Type: boolean

Default: false

System template

A monitored-system selector. systemType is required and determines which systemSubType values (if any) are allowed.

{
"type": "system",
"id": "target-system",
"label": "Target SAP system",
"required": true,
"multiSelect": false,
"systemType": "SAP_SYSTEM"
}
PropertyDescription
systemType
Required property
System type to restrict selection to. One of SAP_SYSTEM, SAP_INSTANCE, DATABASE, SERVER, CLOUD_SERVICE, BUSINESS_SERVICE, SAP_BUSINESS_OBJECT. Bindable property.

Type: string
systemSubTypeFurther restriction; allowed values depend on systemType (see below). Bindable property.

Type: string or null

Default: null
valueInitially selected system ID(s). Bindable property.

Type: integer, array of integers, or null

Default: null
multiSelectAllow selecting multiple systems. Bindable property.

Type: boolean

Default: false

Allowed systemSubType values by systemType:

systemTypeAllowed systemSubType
SAP_SYSTEM, BUSINESS_SERVICE, SAP_BUSINESS_OBJECT, SERVERnone, must be omitted or null
DATABASEUNKNOWN, SAP_DB, ORACLE, DB2, MSSQL, SAP_HANA, SAP_SYBASE_ASE, SAP_SQL_ANYWHERE, SAP_IQ, POSTGRES, MySQL
SAP_INSTANCEDIALOG, JAVA_SCS, JAVA_SCS_WD, ABAP_SCS, ABAP_SCS_WD, CENTRAL, JAVA, DIALOG_JAVA, CENTRAL_JAVA, TREX, WEB_DISP, SMD, ERS, CS
CLOUD_SERVICEGENERIC, SAP_NEO, SAP_CLOUD_CONNECTOR, SAP_CLOUD_INTEGRATION, SAP_S4_PUBLIC_CLOUD, BTP_GLOBAL_ACCOUNT, BTP_SUB_ACCOUNT, BTP_APPLICATION, SAP_CLOUD_ALM