Skip to main content

Automation section

This page describes the actions and parameters that can be configured in an automation section (MarkupJob) in the template. Actions run as background jobs when the automation section is triggered by an event (for example after saving, after loading data, or on cell changes).

Tasks run sequentially: the next active row starts only after the current row completes successfully.

note

When you add rows, extend the named cell range of the automation section, or new steps are ignored.

Triggers and scheduling

A job can be triggered by a user interaction (like a cell action — value changed, cell click, or file events) or run on a schedule via a CRON entry. When a model has a CRON job, it shows a clock icon in the Cell Storage Explorer in Design mode, where you can start/stop it or run it now.

warning

JobRanges and workflow setup currently require database configuration (tables u1.MarkupJob and u1.MarkupJobTrigger, CRON entries).

Automation section table structure

Each row defines one action (task). The columns have the following meaning:

ColumnFieldDescription
1NameName of the action (free text; appears in logs).
2TypeTechnical name of the action type (see below). Case-insensitive.
3Run1 = action runs; empty or 0 = row is skipped.
4Success messageOptional text logged on successful completion.
5Error messageOptional text logged on failure.
8StatusOutput: progress / completion status (filled by the system).
9ResultOutput: result text (filled by the system).
10–11Started by / atOutput: who started the action and when.
12Completed atOutput: time of completion.
From column 15Parameter 1 … nAction-specific input values (see each action section below).

Note: Parameters start at column 15 (first parameter = column 15, second = column 16, and so on).


Action type overview

Type (column 2)Description
MatrixDataCopyCopy data from one dataset selection to another.
MatrixDataRecalcRecalculate datasets (including optional import).
StateCloseClose inactive open dataset histories.
StateDeleteInactiveClean up and delete closed, inactive dataset histories.
BidataExportStartStart a data export (BI export).
DataPumpCsvImport a CSV file into a SQL table.
LinkCommandExecute a data query command (BxLink command).

Execution and error handling

  1. When the automation is triggered, all rows with Run = 1 are read.
  2. Unknown types in column 2 are ignored (with a notice in the app).
  3. Actions run sequentially. If an action fails, subsequent job rows are cancelled and an error notice is shown.
  4. The Status, Result, and timestamp columns are updated by the system during and after execution (if the section is configured for this).

Quick reference: parameters per action

ActionParam 1 (Col. 15)Param 2 (Col. 16)Param 3 (Col. 17)Param 4+
MatrixDataCopyModel codeOverwrite (0/1)Target selections, then source selections
MatrixDataRecalcModel codeOptions (JSON/Legacy)Selections
StateCloseModel code / ##ALL##(reserved)Minutes
StateDeleteInactiveModel code / ##ALL##(reserved)Minutes
BidataExportStartExport nameFull sync (0/1)Schema change (0/1)
DataPumpCsvJSON settingsCSV pathBCP XML pathBxLink, schema, table
LinkCommandJSON parametersCommand name

Common placeholders for selection parameters

For MatrixDataCopy and MatrixDataRecalc, selection parameters refer to the dataset selections of the specified model (in the order defined in the model configuration):

ValueMeaning
(data label code)A specific data label from its data label collection, for example 2024 or DE.
##ALL##All labels of the selection.
##NULL##No label / empty selection.

For optional or additional selections, an empty or unknown code may be tolerated; for required selections, a valid data label must be provided.


Action descriptions and parameters

MatrixDataCopy — Copy dataset data

Copies cell values from a source selection to a target selection in the specified model. Subordinate datasets can be included recursively.

Parameters

ParameterColumnDescription
Model code15Code of the model in which data is copied. The most recently published template version is used.
Overwrite161 = overwrite existing target data; 0 or empty = do not overwrite.
Target selection 1 … n17 …One data label code (or placeholder) per dataset selection — target.
Source selection 1 … nThen one value per selection — source (same count as target).

Example

Model PLAN with two selections (year, version):

151617181920
PLAN12025ACTUAL2024ACTUAL
→ Copies actual data from 2024 to 2025 (actual), overwriting existing target data.

MatrixDataRecalc — Recalculate datasets

Recalculates datasets for the specified selections. Optionally, import templates and filter options can be set.

Parameters

ParameterColumnDescription
Model code15Code of the model.
Options16JSON object or legacy format for import (see below). Empty = default behavior.
Selection 1 … n17 …One data label code (or placeholder) per dataset selection.

Options (column 16)

As JSON (recommended):

{
"onlyExistingDatasets": "true",
"migrationName": "MyImportTemplate",
"migrationDocId": "12345"
}
JSON keyDescription
onlyExistingDatasetstrue = recalculate only already existing datasets.
migrationNameName of an import template in the current template version (optional).
migrationDocIdNumeric ID of the import document (required when migrationName is set).

Legacy format (still supported):

<importTemplateName>##<documentId>

Example: Jahreswechsel##4711

StateClose — Close inactive datasets

Closes open dataset histories from the history that have been inactive for longer than the specified time (reducing parallel-processing warnings). Only datasets of the current tenant are considered; app and tenant are taken from the running session.

Parameters

ParameterColumnDescription
Model code15Code of the model. ##ALL## = all models.
(reserved)16Not currently evaluated — leave empty.
Inactivity (minutes)17Minimum inactivity duration in minutes. Only values > 0 trigger execution.

Example

151617
PLAN120
→ Closes open PLAN datasets that have been inactive for more than 120 minutes.

StateDeleteInactive — Delete inactive datasets

Permanently removes closed, inactive dataset histories (deletion stage). Tenant and app are taken from the running session.

Parameters

ParameterColumnDescription
Model code15Code of the model. ##ALL## = all models.
(reserved)16Not currently evaluated — leave empty.
Inactivity (minutes)17Minimum inactivity duration in minutes since closing. Only values > 0 trigger execution.

BidataExportStart — Start a data export

Starts the synchronisation of a configured data export (BI schema).

Parameters

ParameterColumnDescription
Export name15Caption (name) of the data export definition in the app.
Force full export161 = force a full export; otherwise empty/0.
Allow schema changes171 = allow schema/table changes at the export target; otherwise empty/0.

If an export job for the same definition is already running, the new job is cancelled.

DataPumpCsv — CSV import

Imports a CSV file into a SQL table using a BCP format XML file via a data integration (BxLink).

Parameters

ParameterColumnDescription
Import settings (JSON)15Optional JSON configuration (see below). Empty = default values.
CSV file path16Full path to the CSV file on the server.
BCP format XML path17Full path to the XML file with the BCP column definitions.
Data integration18Name of the SQL data integration (BxLink).
Database schema19Target schema in the database.
Target table20Name of the target table.
Import settings (JSON, column 15)
{
"Delimiter": ";",
"HasHeader": true,
"Culture": "de-DE",
"Encoding": "UTF8",
"DropTmpTable": false,
"UseExistingTable": false,
"IdentityColumnName": "Id",
"CommandTimeoutSec": 600,
"NoEscape": true
}
FieldDescription
DelimiterColumn delimiter in the CSV file.
HasHeadertrue = first row contains column headers.
CultureCulture for number and date formats, for example de-DE.
EncodingCharacter encoding, for example UTF8.
DropTmpTableDelete the temporary import table after completion.
UseExistingTabletrue = use the existing target table (no rebuild).
IdentityColumnNameName of the identity column on table creation (default: Id).
CommandTimeoutSecSQL timeout for bulk steps in seconds.
NoEscapetrue (default) = treat quotes as regular characters; false = RFC-4180 quoting.

LinkCommand — Execute a data query command

Executes a configured data query command (BxLink command) and loads the data into the app.

Parameters

ParameterColumnDescription
Command settings (JSON)15Optional parameters for the command (see below). Empty = default.
Command name16Name of the data query command in the app.
Command settings (JSON, column 15)
{
"Parameters": {
"Year": 2025,
"Tenant": "ACME"
}
}

The keys under Parameters correspond to the parameter names of the command in the data integration configuration.