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
fieldsarray. - IDs (
idon 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$commentstring — 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:
| Property | Description |
|---|---|
idRequired property | Unique identifier. This becomes the output parameter name. Type: string |
typeRequired property | The field type, set by the template. Type: stringExample: "text", "select" |
labelRequired property | Label shown next to the field. Bindable property. Type: string |
value | Initial / default value of the field. Bindable property. Type: type-specific Default: null (false for boolean) |
helpText | Help text shown in the UI. This should explain the expected format. Required whenever regex is set on text-based fields. Bindable property.Type: stringDefault: "" |
available | Whether the field is visible and enabled. Bind to an input to show / hide fields dynamically. Bindable property. Type: booleanDefault: true |
required | Whether the user must provide a value. Available on every field type except boolean. Type: booleanDefault: false |
$comment | Developer-only note. Type: stringOptional. |
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": [ ]
}
| Property | Description |
|---|---|
idRequired property | Unique section identifier. Type: string |
typeRequired property | Always "section". |
title Required property | Section heading. Bindable property. Type: stringExample: "Connection settings" |
description | Explanatory text under the heading. Bindable property. Type: stringDefault: "" |
optional | If true, the user can toggle the whole section on/off. Bindable property.Type: booleanDefault: false |
available | Show / hide the section. Bindable property. Type: booleanDefault: true |
fieldsRequired 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:
| Property | Description |
|---|---|
values | Initial 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 nullDefault: null |
Boolean template
A toggle.
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"
}
| Property | Description |
|---|---|
value | Initial state. Bindable property. Type: booleanDefault: false |
trueText | Label for the true option. Bindable property. Type: stringDefault: "Yes" |
falseText | Label for the false option. Bindable property. Type: stringDefault: "No" |
Datetime template
A date-time picker.
{
"type": "datetime",
"id": "maintenance-start",
"label": "Maintenance window start",
"required": true,
"allowPast": false,
"allowFuture": true
}
| Property | Description |
|---|---|
value | Initial date-time. Bindable property. Type: string or nullDefault: null |
allowPast | Whether dates in the past can be selected. Bindable property. Type: booleanDefault: true |
allowFuture | Whether dates in the future can be selected. Bindable property. Type: booleanDefault: 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
}
| Property | Description |
|---|---|
value | Initial text. Bindable property. Type: string or nullDefault: null |
minLength | Minimum text length. Bindable property. Type: integer or nullDefault: null |
maxLength | Maximum text length. Bindable property. Type: integer or nullDefault: null |
regex | Pattern 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 nullDefault: nullExample: "/^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."
}
| Property | Description |
|---|---|
value | Initial entries. Bindable property. Type: array of strings or nullDefault: null |
minLength / maxLength | Length limits per entry. Bindable property. Type: integer or nullDefault: null |
regex | /pattern/flags literal each entry must match. Requires helpText. Bindable property.Type: string or nullDefault: 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
}
| Property | Description |
|---|---|
value | Initial value. Bindable property. Type: number or nullDefault: null |
minValue | Smallest value accepted. Bindable property. Type: number or nullDefault: null |
maxValue | Largest value accepted. Bindable property. Type: number or nullDefault: null |
step | Increment step for the input's spinner. Bindable property. Type: number or nullDefault: 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
}
| Property | Description |
|---|---|
value | Initial file bundle. Bindable property. Type: string or nullDefault: null |
fileBundleType | Restricts selectable bundles to one bundle type. Bindable property. Type: number or nullDefault: 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" }
]
}
| Property | Description |
|---|---|
options | The 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} |
predefined | Use 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. |
value | Initially selected value(s), always given as an array of option values. Bindable property. Type: array of strings or nullDefault: null |
multiSelect | Allow selecting more than one option. Bindable property. Type: booleanDefault: 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"
}
| Property | Description |
|---|---|
systemTypeRequired 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 |
systemSubType | Further restriction; allowed values depend on systemType (see below). Bindable property.Type: string or nullDefault: null |
value | Initially selected system ID(s). Bindable property. Type: integer, array of integers, or nullDefault: null |
multiSelect | Allow selecting multiple systems. Bindable property. Type: booleanDefault: false |
Allowed systemSubType values by systemType:
systemType | Allowed systemSubType |
|---|---|
SAP_SYSTEM, BUSINESS_SERVICE, SAP_BUSINESS_OBJECT, SERVER | none, must be omitted or null |
DATABASE | UNKNOWN, SAP_DB, ORACLE, DB2, MSSQL, SAP_HANA, SAP_SYBASE_ASE, SAP_SQL_ANYWHERE, SAP_IQ, POSTGRES, MySQL |
SAP_INSTANCE | DIALOG, JAVA_SCS, JAVA_SCS_WD, ABAP_SCS, ABAP_SCS_WD, CENTRAL, JAVA, DIALOG_JAVA, CENTRAL_JAVA, TREX, WEB_DISP, SMD, ERS, CS |
CLOUD_SERVICE | GENERIC, SAP_NEO, SAP_CLOUD_CONNECTOR, SAP_CLOUD_INTEGRATION, SAP_S4_PUBLIC_CLOUD, BTP_GLOBAL_ACCOUNT, BTP_SUB_ACCOUNT, BTP_APPLICATION, SAP_CLOUD_ALM |