# xMart Pipeline Script Guide
Markdown version v4.32.10, generated at 2026-04-16T15:32:29
Links to user documentation should point at https://extranet.who.int/xmart4/pipeline-script-guide#{CommandName}
## XmartPipeline template
A pipeline should have the following structure:
```xml
Possible values: empty, csvList, martQuery, tableCode, userSelectedSource |
| `TableCode` | Attribute | - | [For Inputs] Use with Source="martQuery" |
| `Type` | Attribute | - | For
Possible values: text, date, number, select, origin |
| `date` | Element | - | an input date should be used |
| `number` | Element | - | an input number should be used |
| `origin` | Element | - | To identify values already provided at upload time by origin |
| `select` | Element | - | a dropdown should be used |
| `text` | Element | - | a standard input text should be used |
| `Values` | Attribute | - | [For Inputs] Use with Source="csvList" |
### Add
[In the Context / OriginValues / Origin element] Provides a default value for a particular origin, the user of this origin won't be prompted for this value anymore.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `Key` | Attribute | - | Name of the value to provide |
| `Label` | Attribute | - | Label of the value, optional, if not set Key will be used as label |
| `Type` | Attribute | - | For
Possible values: text, date, number, select, origin |
| `date` | Element | - | an input date should be used |
| `number` | Element | - | an input number should be used |
| `origin` | Element | - | To identify values already provided at upload time by origin |
| `select` | Element | - | a dropdown should be used |
| `text` | Element | - | a standard input text should be used |
| `Value` | Attribute | - | [For OriginValues / Origin] Sets the value of this input for the origin. |
## Extract
One or many getters to fetch the input data from different sources
### GetAccess
Loads data from an MS Access database file. Supported formats: mdb (pre-200 and 2002-2003) and accb (2007 to present).
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `AsStrings` | Attribute | - | If true, all data is imported as strings regardless of data type. If false (default), the source data types are retained. |
| `OutputTableName` | Attribute | - | Only relevant if Sql is defined, this defines the name of the in-memory table after extraction using the Sql statement. |
| `Sql` | Attribute | - | A single SQL SELECT query used to retrieve a single table of data from the MS Access database.
If provided, TableName should be empty. |
| `TableName` | Attribute | - | Name of table or query in MS Access file to extract. Multiple table/query names can be provided if separated by commas.
After extraction, the names of the in-memory tables will match the original MS Access names.
If this is provided, the value of Sql should be empty. |
### GetDb
Loads data from a database table.
ConnectionName could be empty
Select data from a mart's objects using a SELECT statement.
Objects include tables and views in the {martcode} and {martcode}_c schemas.
As opposed to the GetMart command, custom views do not need to be registered to be queried in the SELECT statement.
In principle there is no limit on the complexity of the SELECT statement but it is advisable to use relatively simple SELECT statements in GetDb
and put complex SELECT statements in proper custom SQL views stored in the database.
#### Remarks
Currently, ODBC databases are supported.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `CommandTimeout` | Attribute | - | The time (in seconds) to wait for the command to execute. The default is 30 seconds. |
| `ConnectionName` | Attribute | - | Name of the database connection name created in the Pipelines > Connections > SQL Server section |
| `Sql` | Attribute | - | An SQL SELECT query used to retrieve data from a database. Required. |
| `StrictTypes` | Attribute | - | Default to true. Keep the source types from the DataBase.
Set to false to stringify all the values. |
| `TableName` | Attribute | - | Once retrieved, name given to the table in the script context. Optional |
### GetEsriFeatures
Retrieves data from an ESRI feature service.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ConnectionName` | Attribute | - | If the webservice is secured, we need a connection to get the accessToken
Connection Code to use to retrieve the Credentials needed to authenticate against the remote WebService |
| `TableName` | Attribute | - | Once retrieved, name given to the table in the script context. |
| `Url` | Attribute | - | Url to download the data from. |
| `Body` | Element | - | Defines the body parameters of the POST request |
| `Type` | Attribute | - | Gets or sets the Body request content type.
Possible values: raw, x-www-form-urlencoded, graphQL |
| `graphQL` | Element | - | GraphQL query json content |
| `raw` | Element | - | String Content without particular media type (use Headers to set Content-Type) |
| `x-www-form-urlencoded` | Element | - | x-www-form-urlencoded media type, one key:value per line using this convention
key1:value1
key2:value2 |
| `Headers` | Element | - | Additional headers to add to the request
Contains repetable element(s): add |
| `Name` | Attribute | - | Gets or sets the name. |
| `Value` | Attribute | - | Gets or sets the value. |
### GetExcel
Reads one or more worksheets or named ranges from an Excel workbook with options to merge tables and perform
common cleaning operations.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ColumnSuffixIfDuplicate` | Attribute | - | Optional. If provided, when some columns name are duplicate, this value will be inserted between the raw name and the incremented duplicated index. Ex: if the worksheets has 2 columns named "MyColum", the second one will be renamed "MyColumMY_SUFFIX2", "MyColumMY_SUFFIX3", ... if ColumnSuffixIfDuplicate="MY_SUFFIX"
Defaults to empty string. |
| `ExtractCellHyperlinks` | Attribute | - | For cells containing hyperlinks, by default, only the value (displayed text) will be extracted.
When ExtractCellHyperlinks is set to true, the hyperlink value will be appended to the cell value (separated by " | ").
Defaults to false. Only works for Excel 2007 and above (xlsx). |
| `FindStartingRow` | Attribute | - | Comma-separated list of parts of field names that identify the header row.
This is an alternative to specifying the StartingRow integer (FindStartingRow
takes precedence if defined). The fields can be in any order. A search for first
row containing all of these fields occurs. This allows there to be a variable number
of rows before the header row. The values given in FindStartingRow can be
part of the field names (a "contains" comparison is performed). The values are also
whitespace trimmed.
For example, If FindStartingRow = "Name, Phone, Address" this will find a row
in the excel table with columns "Full Name", "Telephon", and "Street Address". |
| `OutputTableName` | Attribute | - | Optional. If provided, the original name of the worksheet/named range is changed to this after reading into memory.
For example, if the original worksheet is called "Sheet1" and OutputTableName is "MyData", the name of the table
after getting the data will be "MyData". |
| `RemoveBlankCols` | Attribute | - | If true, blank columns in the table are removed.
Default is false. |
| `RemoveBlankRows` | Attribute | - | If true, blank rows in the table are removed.
Default is true. |
| `RepeatMergedCellsValue` | Attribute | - | For merged cells, by default, only first cell will contain the displayed value.
Set to true to repeat first cell's value in every cell of the merged cell.
Defaults to false. |
| `StartingRow` | Attribute | - | One-based row index of the row with column headers of the data in the Excel document, ie
the row number visible in Excel.
The header row supports merged cells used in the row headers, specify the last row index that is part of the header.
If FindStartingRow is defined, StartingRow will be ignored.
If both StartingRow and FindStartingRow are blank,
the first non-blank row will be used. |
| `StrictTypes` | Attribute | - | Default is false.
If true, the excel extractor extracts values as their underlying values while preserving their data types, rather than formatted values as they appear in Excel.
Also, for .xls files, the first row of the data must contain the headers and currently this means that the StartingRow and FindStartingRow
settings will not have any effect here (these require that data is first extracted as strings and then the header is
searched for in the data). Under the hood, the value of Excel.IMEX will be set to 2 (guess types, no type intermixing) and
Excel.Headers will be set to true.
If false, values are extracted as the formatted strings as they appear in the excel workbook.
Which to use? It's a tradeoff. Consider an Excel date field containing the value 2099-1-1 (Jan 1, 2099).
If StrictTypes is false, and the date is formatted in Excel as "1-1-99" the retrieved value will be Jan 1, 1999 - not 2099.
If StrictTypes is true, the retrieved value will be Jan 1, 2099.
However, consider a column in Excel of single numbers except that on row 20 a cell contains "2 - 5" implying a range.
If StrictTypes is false, "2 - 5" will be retrieved and displayed to the end-user so they can correct the error. Any data type
validation that ensues will correctly flag this as a problem, which is good.
If StrictTypes is true, "2 - 5" will be retrieved as an empty value (in older versions of the OLE driver, this would raise
an exception preventing any data upload). The user would not be made aware of the error is NULLs are allowed, which is bad
if the intent is to bring the situation to the user's attention. |
| `SystemHeaders` | Attribute | - | Default is false. If true, Excel will assign its own column headers (F1, F2, F3, etc.).
If false, column headers will be based on the data. |
| `TableName` | Attribute | - | Name of sheet or named range to extract. Multiple sheet/range names can be provided if separated by
commas. Use single asterisk character (*) to load all sheets and all ranges.
Extract a specific range of cells with the dollar sign after the worksheet name: TableName="worksheet$A2:B5"
If MergeTables.TableNames is defined, RangeOrSheetName may be left blank or be defined.
If defined, it will merged with the tables listed in MergeTables.TableNames.
If not found and multiples worksheet extracted, should prompt the user |
| `TableTypes` | Attribute | - | When TableNames="*", TableTypes indicates what type of excel tables should be loaded.
The options are "All" (default), "Worksheets" (only worksheets), "Tables" (preferred if the data is formatted as an Excel named table) or "NamedRanges" (only named ranges)
Possible values: All, Worksheets, NamedRanges, Tables |
| `All` | Element | - | Default: all types of excel objets (worksheet, named table or range) |
| `NamedRanges` | Element | - | Only retrieves named ranges |
| `Tables` | Element | - | Only retrieves named tables |
| `Worksheets` | Element | - | Only retrieves worksheets |
| `TrimValues` | Attribute | - | If true, will cause all loaded cell values to be white-spaced trimmed.
Default is true. |
| `WorksheetNameToColumn` | Attribute | - | If defined, the Excel worksheet name of all extracted tables is put into this column, so it can be treated like data.
The column must not already exist. If MergeTables is defined and the same attribute isn't specified there, it will be used in the MergeTables processing.). |
| `RemoveTrailingBlankCols` | Element | `True` | If defined, trailing blank columns at the end of the table are removed.
Prevents huge column count if some rogue empty cells are merged at column 16384
Default is true. |
### GetFtpFile
Retrieves a file from a FTP Server.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ConnectionName` | Attribute | - | If the webservice is secured, we need a connection to get the accessToken
Connection Code to use to retrieve the Credentials needed to authenticate against the remote WebService |
| `TableName` | Attribute | - | Once retrieved, name given to the table in the script context.
Obsolete: use underlying Getter OutputTableName instead. |
| `Url` | Attribute | - | Url to download the file from. Should start with ftp:// or ftps:// |
| `Getter` | Element | - | How to process the response based on the expected response type
Contains element(s): GetJson, GetText, GetExcel, GetAccess, GetZip |
### GetJson
Loads data from a Json file.
The Path element is required to transform the data as a flat table
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `OutputTableName` | Attribute | - | Name of the in-memory table after extraction. |
| `Path` | Element | - | Defines the JSONPath query for values. See JSONPath syntax
Ex: For GoogleSheet API V4, use `values[1:]` to get all rows except first one of the values array |
| `PathHeader` | Element | - | Optional: To use only when data is not formatted as objects with named properties: like in array/grid format with first row containing the columns names
The expression should return a flat array of strings to use a headers-
Ex: For GoogleSheet API V4, use `values[0][*]` to get first row of values array |
#### Examples
##### Example 1
```xml
links.next property, it will download those records as well recursively. |
| `PageSize` | Attribute | - | Adds page[size] parameter to OData query, returns only the n first rows of table |
| `RootUrl` | Attribute | - | Url to the root of JSON:API WebService, it should be the path just before the table level (TableName will be appended).
If provided, the Url attribute is not needed.
If you need to use special operators like $select or $filter, please use the Url attribute instead. |
| `TableName` | Attribute | - | Tables to extract from the JSON:API WebService.
If used with
Possible values: raw, x-www-form-urlencoded, graphQL |
| `graphQL` | Element | - | GraphQL query json content |
| `raw` | Element | - | String Content without particular media type (use Headers to set Content-Type) |
| `x-www-form-urlencoded` | Element | - | x-www-form-urlencoded media type, one key:value per line using this convention
key1:value1
key2:value2 |
| `Headers` | Element | - | Additional headers to add to the request
Contains repetable element(s): add |
| `Name` | Attribute | - | Gets or sets the name. |
| `Value` | Attribute | - | Gets or sets the value. |
#### Examples
##### Example 1
```xml
Possible values: OR, AND |
| `Terms` | Element | - | List of filter terms.
Contains repetable element(s): Term, Group |
### GetOData
Retrieves data from an OData Web service.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ConnectionName` | Attribute | - | If the webservice is secured, we need a connection to get the accessToken
Connection Code to use to retrieve the Credentials needed to authenticate against the remote WebService |
| `Expand` | Attribute | - | Adds $expand parameter to OData query, pass "*" to select every column or comma separated list to pass directly to the Odata query |
| `Filter` | Attribute | - | Adds $filter parameter to OData query |
| `FollowNextLink` | Attribute | - | if the OData response contains odata.nextLink property, it will download those records as well recursively |
| `PreserveODataSpecialAttributes` | Attribute | - | Default is false.
If true, does not remove the @odata.XXX columns like @odata.type or @odata.context |
| `RootUrl` | Attribute | - | Url to the root of OData WebService, it should be the path just before the table level (TableName will be appended).
If provided, the Url attribute is not needed.
If you need to use special operators like $select or $filter, please use the Url attribute instead. |
| `Select` | Attribute | - | Adds $select parameter to OData query, pass "*" to select every column or comma separated list to pass directly to the Odata query |
| `Skip` | Attribute | - | Adds $skip parameter to OData query, skips the n first rows of table |
| `TableName` | Attribute | - | Tables to extract from the OData WebService.
If used with
Possible values: raw, x-www-form-urlencoded, graphQL |
| `graphQL` | Element | - | GraphQL query json content |
| `raw` | Element | - | String Content without particular media type (use Headers to set Content-Type) |
| `x-www-form-urlencoded` | Element | - | x-www-form-urlencoded media type, one key:value per line using this convention
key1:value1
key2:value2 |
| `Headers` | Element | - | Additional headers to add to the request
Contains repetable element(s): add |
| `Name` | Attribute | - | Gets or sets the name. |
| `Value` | Attribute | - | Gets or sets the value. |
#### Examples
##### Example 1
```xml
StartingRow and FindStartingRow should not both be specified.
If both StartingRow and FindStartingRow are blank, the first row will be used.
If Columns is not provided, StartingRow indicates the row with column headers
If Columns is provided, StartingRow should indicate the first data row |
### GetWebService
Retrieves data from a Web service.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ConnectionName` | Attribute | - | If the webservice is secured, we need a connection to get the accessToken
Connection Code to use to retrieve the Credentials needed to authenticate against the remote WebService |
| `Url` | Attribute | - | Url to download the data from. |
| `Body` | Element | - | Defines the body parameters of the POST request |
| `Type` | Attribute | - | Gets or sets the Body request content type.
Possible values: raw, x-www-form-urlencoded, graphQL |
| `graphQL` | Element | - | GraphQL query json content |
| `raw` | Element | - | String Content without particular media type (use Headers to set Content-Type) |
| `x-www-form-urlencoded` | Element | - | x-www-form-urlencoded media type, one key:value per line using this convention
key1:value1
key2:value2 |
| `Getter` | Element | - | How to process the response based on the expected response type
Contains element(s): GetJson, GetText, GetExcel, GetZip, GetWordForm |
| `Headers` | Element | - | Additional headers to add to the request
Contains repetable element(s): add |
| `Name` | Attribute | - | Gets or sets the name. |
| `Value` | Attribute | - | Gets or sets the value. |
#### Examples
##### Example 1
```xml
Possible values: Tag, Title |
| `ColumnSuffixIfDuplicate` | Attribute | - | Optional. If provided, when some columns name are duplicate, this value will be inserted between the raw name and the incremented duplicated index. Ex: if the worksheets has 2 columns named "MyColum", the second one will be renamed "MyColumMY_SUFFIX2", "MyColumMY_SUFFIX3", ... if ColumnSuffixIfDuplicate="MY_SUFFIX"
Defaults to empty string. |
| `OutputTableName` | Attribute | - | Name of the in-memory table after extraction |
### GetZip
Extracts a zip file uploaded by the user or fetched via GetWebService, and processes the extracted file with the provided Getter.
GetZip command can be used multiple times to extract different files from the same zip.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `FileNameToExtractPattern` | Attribute | - | Optional if only one file in the zip. In case the zip file contains multiple file, attribute is required to target what file in the extracted archive should be processed by the getter. If more than one file match the pattern, files will be processed by the same command and output tables concatenated if they have the same name (use $1 to refer to the first capture group of the regex pattern to generate distinct table names). |
| `Getter` | Element | - | How to process the response based on the expected response type.
To extract multiple tables from different text files (GetText, GetJson, GetRecfile), use a regex matching group in FileNameToExtractPattern and "$1" in OutputTableName will be replaced with matched value.
Contains element(s): GetJson, GetText, GetExcel, GetRecfile |
#### Examples
##### Example 1
```xml
OneOnly is a container element into which a list of Getter commands are placed.
When a user uploads a file, the first applicable Getter in the list is used to extract the file. If no applicable Getter is found, the load fails.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `Getters` | Element (Multiple) | - | Gets or sets the getters.
Contains element(s): GetDb, GetExcel, GetAccess, GetText, GetMart, GetWebService, GetEsriFeatures, GetJson, GetOData, GetZip, GetFtpFile, GetRecfile |
## Transform
Sequence of transformers to apply on the input table(s)
### AddColumn
Adds a new column to the active table.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ActionIfAlreadyExists` | Attribute | - | New in 4.26. What to do if the column already exists.
In 4.25 and before, it used to do nothing, except if ErrorIfColumnAlreadyExists was true.
Possible values: DoNothing, Override, Warning, Error |
| `DoNothing` | Element | - | Do nothing, does not change existing values. Useful to make sure the column exists after this point. Used to be the default behavior in 4.25 and before, or if FillWith or FillWithExpression is empty. |
| `Error` | Element | - | Stops the batch with a critical issue if the column already exists. |
| `Override` | Element | - | Changes the values inside the column using the provided FillWith or FillWithExpression, even if the column already existed. |
| `Warning` | Element | - | New default in 4.26. Warns the user that the column already exists if eitherFillWith or FillWithExpression is set, but does not change existing values. (same behavior than in 4.25 and before, except for the new warning). For the exact same old behavior, use DoNothing. |
| `Before` | Attribute | - | Name of column before which the new column will be added. If blank column
is added at end. |
| `CopyAsValues` | Attribute | - | Set to true to copy the computed values rather than the formula (like Excel, copy as values feature)
By default is false meaning if the values with be dynamically computed every time. |
| `DataType` | Attribute | - | List of supported datatypes: BIG_INTEGER, BOOLEAN, DATE, DATE_TIME, DECIMAL, GUID, INTEGER, TEXT
Possible values: BIG_INTEGER, BOOLEAN, DATE, DATE_TIME, DECIMAL, GUID, INTEGER, TEXT |
| `ErrorIfColumnAlreadyExists` | Attribute | - | Obsolote. Use ActionIfAlreadyExists instead. Kept for backward compatibility with existing batches.
Set to true to create a critical issue if the column already exists.
By default is false meaning if the column is already there, the batch will continue without warning/error |
| `FillWith` | Attribute | - | A value to fill all rows of this column with.
Ex: to fill with current date, use
FillWith="${Now.TimeUtc}" |
| `FillWithExpression` | Attribute | - | An expression to fill all rows of this column with. Corresponds to DataColumn.Expression syntax, reference available at:
https://learn.microsoft.com/en-us/dotnet/fundamentals/runtime-libraries/system-data-datacolumn-expression |
| `Name` | Attribute | - | Name of column to Add. |
#### Examples
##### Example 1
```xml
table as parameter.
Double click on <Expression> tag to open the side editor.
Expression text can surrounded with <![CDATA[ EXPRESSION ]]> if the Expression contains operators like >= that needs XML escaping.
The expression should finish with return table;.
Built-in "using" statements are: using System; using System.Data; using Newtonsoft.Json; using Newtonsoft.Json.Linq;
so you can get do Guid myId = row.Field<Guid>("column_name"); to cast to expected C# type. See code example below/in guide. |
#### Examples
##### Example 1
```xml
Year, Month, Day, Hour, Minute, Second |
| `InputColumn` | Attribute | - | Name of input column name. Supports comma separated list of columns |
| `IssueLevel` | Attribute | - | Turn on / off issues generation. None: ignore errors; Warning: warning value issues will be generated;
Error: error value issue will be generated. Default is Error.None, Warning, Error |
| `Error` | Element | - | Generate error value issue |
| `None` | Element | - | Ignore any errors |
| `Warning` | Element | - | Generate warning issue |
| `OutputColumn` | Attribute | - | Name of output column name.Supports comma separated list of columns
If empty InputColumn will be overwritten |
| `ValueToAdd` | Attribute | - | Option 1: Value to be added to the date. To subtract a value, use a negative number. |
| `ValueToAddFromColumn` | Attribute | - | Option 2 (New): Column name whose Value to be added to the date. |
#### Examples
##### Example 1
```xml
Day, DayOfYear, Hour, Minute, Month, Quarter, Second, Weekday, WeekOfYear, Year |
| `Name` | Attribute | - | Name of the output column to create with the calculated differences. |
#### Examples
##### Example 1
```xml
Find="" will match null or empty cells. Find=" ". |
| `Mode` | Attribute | - | Find mode. One of the following values (anywhere is the default)ANYWHERE, ALL, START, END |
| `ALL` | Element | - | Match all of a value. |
| `ANYWHERE` | Element | - | Match all or part of a value (wildcard match). |
| `END` | Element | - | Match at end of value. |
| `START` | Element | - | Match at start of value. |
| `ReplaceWith` | Attribute | - | New value to replace by. |
#### Examples
##### Example 1
```xml
md5 |
| `md5` | Element | - | md5 checksum |
| `Columns` | Attribute | - | Required. Comma separated list of columns to concatenate and hash.
Use "*" to hash all columns of the row. |
| `OutputColumn` | Attribute | - | Required. The name of the column to store the hash in.
If the column does not exist, it is added to the table. If it exists, it will be overwritten. |
#### Examples
##### Example 1
```xml
GUID, INTEGER |
#### Examples
##### Example 1
```xml
None, Warning, ErrorRemoveRows |
| `Tag` | Attribute | - | Tag is a key to group lookup issues together |
| `Lookups` | Element | - | List of Lookup elements. |
| `LookupResult` | Attribute | - | Name of the REF table column value ID (ex: PLACE_ID) |
| `ParentFilterUseFullHierarchy` | Attribute | - | Whether to use all parent levels in the generated parent filter to scope the children rows.
Default false is enough is the LookupResult parent identifier is unique (e.g. GUID or 'PAK/BALOCHISTAN/BARKHAN').
Set to true if the resolved parent identifier is not unique (e.g. ADM1_CODE = '004' where '004' exists in multiple countries). Then the country code will be appended in the parent filter. |
| `SourceFilter` | Attribute | - | Filter to apply to source table. |
| `SourceResult` | Attribute | - | Optional:
Deepest resolved Lookup result
SameAsLookup, CurrentMart |
| `MultipleMatchesBehavior` | Attribute | - | New behavior in 4.24.18.
Default to MultipleMatchesBehavior: the records with the least number of synonyms used will be selected as a match. Will still trigger "Ambiguous" issue if multiple records with same number of synonyms are found.
Set to AlwaysGenerateAmbiguousIssue to always generate a lookup issue if multiple reference records could be matched thanks to synonyms permutation.UseClosestMatchToDisambiguate, AlwaysGenerateAmbiguousIssue |
| `ToColumn` | Attribute | - | Default to "Out" |
#### Examples
##### Example 1
```xml
Inner, Left |
| `KeepTables` | Attribute | - | If true, will not remove the Left and Right tables from the context
Defaults to "false". |
| `LeftColumns` | Attribute | - | Optional: comma-separated list of column names to include in the result output table
Defaults to "*", ie all columns from LeftTable. |
| `LeftTable` | Attribute | - | Required: Name of existing of main table to consider |
| `OnLeftColumn` | Attribute | - | Required: column from LeftTable to join on LeftColumn = RightColumn |
| `OnRightColumn` | Attribute | - | Required: column from RightTable to join on LeftColumn = RightColumn |
| `OutputTableName` | Attribute | - | Name of new table (required). If the table exists, an error will be raised (RemoveTable can be used to remove a table). |
| `RightColumns` | Attribute | - | Optional: comma-separated list of column names to include in the result output table.
If a column from RightTable has the same name than a column from LeftTable, it will be suffixed by 2 in the OutputTable
Defaults to "*", ie all columns from RightTable. |
| `RightTable` | Attribute | - | Required: Name of table to join to LeftTable.
If a column from RightTable has the same name than a column from RightTable, it will be suffixed by 2 in the OutputTable |
#### Examples
##### Example 1
```xml
SameAsLookup, CurrentMart |
| `MultipleMatchesBehavior` | Attribute | - | New behavior in 4.24.18.
Default to MultipleMatchesBehavior: the records with the least number of synonyms used will be selected as a match. Will still trigger "Ambiguous" issue if multiple records with same number of synonyms are found.
Set to AlwaysGenerateAmbiguousIssue to always generate a lookup issue if multiple reference records could be matched thanks to synonyms permutation.UseClosestMatchToDisambiguate, AlwaysGenerateAmbiguousIssue |
| `ToColumn` | Attribute | - | Default to "Out" |
#### Examples
##### Example 1
```xml
* (star) for all |
| `RemoveColumnAfterParse` | Attribute | - | Optional: set to false to keep the original column containing the JSON, true to remove the column if no longer needed
Default is true. |
#### Examples
##### Example 1
```xml
None, Warning, Error |
| `Error` | Element | - | Generate error value issue |
| `None` | Element | - | Ignore any errors |
| `Warning` | Element | - | Generate warning issue |
| `SkipColumns` | Attribute | - | Comma-separated list of input/original column names to preserve. |
#### Examples
##### Example 1
```xml
BIG_INTEGER, BOOLEAN, DATE, DATE_TIME, DECIMAL, GUID, INTEGER, TEXT |
| `OutputColumnNames` | Attribute | - | (optional) Names of new columns to create corresponding in sequence to the values in ColumnNames.
If not provided, the data type of the existing columns is set in place, rather than creating new columns. |
| `RegisterInvalidAsIssues` | Attribute | - | Issue will be raised when invalid value conversionNone, Warning, Error |
| `Error` | Element | - | Generate error value issue |
| `None` | Element | - | Ignore any errors |
| `Warning` | Element | - | Generate warning issue |
| `ValueIfInvalid` | Attribute | - | (optional) A valid value to replace the invalid value by. Default is null. |
| `ValueIfNull` | Attribute | - | (optional) Value to replace null values by. If not provided, null values remain null. If ValueIfInvalid is defined, null values will be replaced that. |
#### Examples
##### Example 1
```xml
Warning, Error_RemoveValue, Error_RemoveRow, Error_RemoveColumn, Error_RemoveTable, Error_RemoveBatch |
| `Error_RemoveBatch` | Element | - | All tables removed. |
| `Error_RemoveColumn` | Element | - | Column removed. |
| `Error_RemoveRow` | Element | - | Record removed. |
| `Error_RemoveTable` | Element | - | Table removed. |
| `Error_RemoveValue` | Element | - | Value replaced by NULL. |
| `Warning` | Element | - | Raises a warning but no change made to data. |
| `Month` | Attribute | - | Optional. Name of the column to accept the month (default = "Month"). If it doesn't exist, it will be created. |
| `Year` | Attribute | - | Optional. Name of the column to accept the year (default = "Year"). If it doesn't exist, it will be created. |
#### Examples
##### Example 1
```xml
Warning, Error_RemoveValue, Error_RemoveRow, Error_RemoveColumn, Error_RemoveTable, Error_RemoveBatch |
| `Error_RemoveBatch` | Element | - | All tables removed. |
| `Error_RemoveColumn` | Element | - | Column removed. |
| `Error_RemoveRow` | Element | - | Record removed. |
| `Error_RemoveTable` | Element | - | Table removed. |
| `Error_RemoveValue` | Element | - | Value replaced by NULL. |
| `Warning` | Element | - | Raises a warning but no change made to data. |
| `MessageIfInvalid` | Attribute | - | User-friendly message to explain the expected format if pattern does not match.
Can contain {0} to be replaced by invalid value |
| `Tag` | Attribute | - | Missing columns |
### TestNotEmpty
Tests for the existence of required values.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `Column` | Attribute | - | Name of column to validate |
| `ContextColumns` | Attribute | - | If an error occurs, controls which columns are displayed to the user.
Business primary keys (IS_PRIMARY_KEY=True) are automatically displayed
No quoting should be used
Multiple columns should be seperated by a comma with no spaces
Example:
ContextColumns=FIELD_TYPE_CODE,FK_TABLE_CODE |
| `Impact` | Attribute | - | Impact of failed validation.Warning, Error_RemoveValue, Error_RemoveRow, Error_RemoveColumn, Error_RemoveTable, Error_RemoveBatch |
| `Error_RemoveBatch` | Element | - | All tables removed. |
| `Error_RemoveColumn` | Element | - | Column removed. |
| `Error_RemoveRow` | Element | - | Record removed. |
| `Error_RemoveTable` | Element | - | Table removed. |
| `Error_RemoveValue` | Element | - | Value replaced by NULL. |
| `Warning` | Element | - | Raises a warning but no change made to data. |
| `MessageIfInvalid` | Attribute | - | User-friendly message to explain the expected format if pattern does not match.
Can contain {0} to be replaced by invalid value |
| `Mode` | Attribute | - | How "missing" values are defined. Possible values:
Nulls, NullOrEmpty, NullOrWhitespace |
| `NullOrEmpty` | Element | - | The null or empty |
| `NullOrWhitespace` | Element | - | The null or whitespace |
| `Nulls` | Element | - | The nulls |
| `Tag` | Attribute | - | Test commands can be tagged with a label, to support meaningful groupings of issues in the user interface. |
#### Examples
##### Example 1
```xml
Warning, Error_RemoveValue, Error_RemoveRow, Error_RemoveColumn, Error_RemoveTable, Error_RemoveBatch |
| `Error_RemoveBatch` | Element | - | All tables removed. |
| `Error_RemoveColumn` | Element | - | Column removed. |
| `Error_RemoveRow` | Element | - | Record removed. |
| `Error_RemoveTable` | Element | - | Table removed. |
| `Error_RemoveValue` | Element | - | Value replaced by NULL. |
| `Warning` | Element | - | Raises a warning but no change made to data. |
| `MessageIfInvalid` | Attribute | - | User-friendly message to explain the expected format if pattern does not match.
Can contain {0} to be replaced by invalid value |
| `Pattern` | Attribute | - | Regular expression pattern that is matched against each value in the column. |
| `Tag` | Attribute | - | Test commands can be tagged with a label, to support meaningful groupings of issues in the user interface. |
### TestRow
Checks that a row is valid based on either matching a filter expression or using a C# code fragment that returns true (to keep) or false (to remove).
Warning, Error_RemoveValue, Error_RemoveRow, Error_RemoveColumn, Error_RemoveTable, Error_RemoveBatch |
| `Error_RemoveBatch` | Element | - | All tables removed. |
| `Error_RemoveColumn` | Element | - | Column removed. |
| `Error_RemoveRow` | Element | - | Record removed. |
| `Error_RemoveTable` | Element | - | Table removed. |
| `Error_RemoveValue` | Element | - | Value replaced by NULL. |
| `Warning` | Element | - | Raises a warning but no change made to data. |
| `MessageIfInvalid` | Attribute | - | User-friendly message to explain the expected format if pattern does not match.
Can contain {0} to be replaced by invalid value |
| `Tag` | Attribute | - | Test commands can be tagged with a label, to support meaningful groupings of issues in the user interface. |
| `Expression` | Element | - | Code fragment in C# that must evaluate to either true (to keep) or false (to remove).
Use row["ColumnName"] to get a reference to the cell, then use row["ColumnName"].Value or .StringValue or .DateValue or .NumberValue to use the value with the expected type operators.
Expression text can surrounded with <![CDATA[ EXPRESSION ]]> if the Expression contains operators like >= that needs XML escaping.
The expression may optionally begin with the word 'return'. |
| `FilterTerms` | Element | - | A group of terms that must return true for the row to be kept.
e.g.: <Terms Operator="AND"> <Terms> <Term Field="SEQUENCE" Rule="GreaterOrEqualTo" Operator="AND"<<Value> 123 </Value> </Term> </Terms> |
#### Examples
##### Example 1
```xml
Auto, String, Number, Date |
| `ContextColumns` | Attribute | - | If an error occurs, controls which columns are displayed to the user.
Business primary keys (IS_PRIMARY_KEY=True) are automatically displayed
No quoting should be used
Multiple columns should be seperated by a comma with no spaces
Example:
ContextColumns=FIELD_TYPE_CODE,FK_TABLE_CODE |
| `HighLimit` | Attribute | - | Upper limit of the tested range. If empty, there is no upper limit. |
| `HighLimitColumnName` | Attribute | - | Upper limit column of the tested range.
Value of this column is used as the upper limit of the tested range. |
| `Impact` | Attribute | - | Impact of failed validation.Warning, Error_RemoveValue, Error_RemoveRow, Error_RemoveColumn, Error_RemoveTable, Error_RemoveBatch |
| `Error_RemoveBatch` | Element | - | All tables removed. |
| `Error_RemoveColumn` | Element | - | Column removed. |
| `Error_RemoveRow` | Element | - | Record removed. |
| `Error_RemoveTable` | Element | - | Table removed. |
| `Error_RemoveValue` | Element | - | Value replaced by NULL. |
| `Warning` | Element | - | Raises a warning but no change made to data. |
| `Inclusive` | Attribute | - | If true (default), the value may equal LowLimit or HighLimit.
If false, the value is not allowed to equal LowLimit nor HighLimit. |
| `LowLimit` | Attribute | - | Lower limit value of the tested range. If empty, there is no lower limit. |
| `LowLimitColumnName` | Attribute | - | Lower limit column of the tested range.
Value of this column is used as the lower limit of the tested range. |
| `MessageIfInvalid` | Attribute | - | User-friendly message to explain the expected format if pattern does not match.
Can contain {0} to be replaced by invalid value |
| `Tag` | Attribute | - | Test commands can be tagged with a label, to support meaningful groupings of issues in the user interface. |
## Approvals
One or multiple approvals steps required before allowing a batch to be committed
### AddStep
Allows to configure the order of required approvers, for example if a batch needs approvals from the Country first, then the Region, then the HQ. Steps order will be used to request approval from the first AddStep, then the next if previous is approved.
Any rejection won't trigger the following steps.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ChangeTypes` | Attribute | - | Comma-separated list of record change types which should trigger approval.
For an approval to be triggered, at least one of the records in the batch must have one of the change types.
For example, if ChangeType="NEW, SOFT_DELETE", only batches containing any new or any soft-deleted records will require approval.
Possible values are: NEW, UPDATED, SOFT_DELETE, REPLACE. |
| `Message` | Attribute | - | The text that will be displayed to Approvers when viewing the batch preview. |
| `Mode` | Attribute | - | Notification mode for the approvers
Some approvers may want to be notified for all batches, even if the batch have no changes.CHANGES_ONLY, ALWAYS |
| `RoleName` | Attribute | - | Role whose members will be notified. |
## Load
Table loaders configuration: write data from an input table into the target store table.
### AutoLoad
virtual command insert as a placeholder when LoadSection.AutoLoad is true, should not be serialized
### ColumnMapping
Maps a column from the active table to the target store table.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `Optional` | Attribute | - | Set to true to not raise error if the Source column does not exist in Source Table
Default is false |
| `Source` | Attribute | - | Column name of the Source table to map. |
| `Target` | Attribute | - | Column name of the store target table to fill. |
### LoadTable
Each LoadTable should target one store table to fill with the input data.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `DeleteNotInSource` | Attribute | - | Only applies for MERGE strategy.Default is false.
If true, the system performs a match of existing records in target tables with source tables, within the data range specified by the DataScope filter.
If a target record exists for which there is no corresponding source record, the target record is flagged for soft-deletion.
The records flagged for deletion appear as soft-deleted records visually in the batch preview.
The DataScope defines the range of data in both the source and target to be considered for loading.For example, if a target table has data for regions A, B and C but the data scope defines "Region = 'A'" , and the source file only has data for Region A, the B and C records should not be flagged for deletion even though they do not exist in the source file because they are out of data scope. |
| `DropIfNoSourceData` | Attribute | - | For REPLACE strategy only: if true, and there are 0 records to load, proceed with dropping database data.
If false (default), no data will be dropped if there are no records to load. This prevents accidental dropping of data if the wrong data is loaded,
if the source file is empty, etc. |
| `LoadStrategy` | Attribute | - | How the data will be processed.MERGE, REPLACE, APPEND, OFF |
| `Optional` | Attribute | - | Default: false. If true, the system will not throw an error if the source table does not exist.
Useful for data entry forms with subforms (child table can be empty), or with getters that extract multiple tables using wildcards. |
| `SourceTable` | Attribute | - | The in-memory table to select as a source |
| `TargetTable` | Attribute | - | The store table to fill data into. |
| `ColumnMappings` | Element | - | Map the columns from the source table with the target table. |
| `Auto` | Attribute | - | Set to true to have the mappings be populated automatically from those that
exist in both the source and target tables.
Note that columns mapped to FOREIGN KEY columns will automatically have a sysid_lookup generated
using the given field and the Sys_RowTitle of the targeted tables (FK_TABLE_CODE).
Default is false |
| `IfSourceColumnNotMapped` | Attribute | - | Warnings will be added for any column present in a pipeline table (a source table) which is not mapped.Warning, SayNothing |
| `ColumnMapping` | Element (Multiple) | - | Gets the mappings. |
| `Optional` | Attribute | - | Set to true to not raise error if the Source column does not exist in Source Table
Default is false |
| `Source` | Attribute | - | Column name of the Source table to map. |
| `Target` | Attribute | - | Column name of the store target table to fill. |
| `DataScope` | Element | - | Provides a filter to only REPLACE a part of the store rows in the target table and filters out data from the source table that does not match this filter. |
| `Operator` | Attribute | - | Determines whether terms are ANDed (default) or ORed.OR, AND |
| `Origins` | Attribute | - | Optional: comma separated list of existing origins codes for which the command should apply.
Provide code of origins for which this command will apply (Ex: Origins="MY_ORIGIN_AFRO, MY_ORIGIN_EMRO") Use !CODE_ORIGIN to run this command to exclude a particular origin (Ex:
Origins="!MY_ORIGIN_EURO, !MY_ORIGIN_SEARO") | | `Terms` | Element | - | List of filter terms.
Term, Group |
| `LookupIDs` | Element | - | Declare the lookup ids. to populate FK columns.SysIDLookup |
| `RLSScope` | Element | - | System generated filter to only REPLACE a part of the store rows in the target table and filters out data from the source table that does not match this filter based on RLS settings. |
| `Transform` | Element | - | Sets the transformers to apply to the source table. |
| `Transformers` | Element (Multiple) | - | Gets or sets the transformers.FindReplace, CopyColumn, AggregateTable, CopyTable, AddColumn, RemoveColumn, RenameColumn, RemoveRowsByFilter, RemoveDuplicates, DbLookup, HierarchyLookup, MartLookup, MergeTables, SetContext, SplitColumnByRegEx, SplitDate, ValuesToColumns, FormatDate, UnpivotSimple, ChangeCase, CleanTable, DateDiff, RemoveRowsByRowNumber, UnpivotColumns, TransposeTable, GenerateID, GenerateHash, Round, RemoveTable, PivotColumns, ParseJson, CustomScript, SplitCellsToRows, TableLookup, JoinTables, DateAdd, RenameColumnsByLookup, SetColumnDataType |
| `Validate` | Element | - | Sets some optional Tests to generate some validation errors. |
| `Validators` | Element (Multiple) | - | Gets or sets the validators.TestNotEmpty, TestColumnsExist, TestValueInRange, TestRow, TestPattern |
### SysIDLookup
Used to resolve foreign key using a Lookup Table than can be either in memory or a store table
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `LookupColumns` | Attribute | - | Columns in the lookup table that will be matched with the SourceColumns |
| `LookupFilter` | Attribute | - | Filter to apply to select statement when retrieving data.
Use [lookup] and [source] to refer to the lookup and source table respectively. |
| `LookupTable` | Attribute | - | Table containing the Sys_ID. Generally a REF table. |
| `RegisterMissingAsIssues` | Attribute | - | Whether to generate Process Issues for unresolved source values. |
| `SourceColumns` | Attribute | - | Columns in the source table to use to match the LookupColumns |
| `SourceFilter` | Attribute | - | Filter to apply to source table. |
| `SourceResultColumn` | Attribute | - | Where the found result should be set to in the current in-memory table. |
| `Tag` | Attribute | - | Tag is a key to group lookup issues together |
## PostRun
Describe a flow of postRun commands to run after the initial pipeline batch completes
### CallWebService
Calls a remote Web service API after a batch completes. Useful to trigger a synchronisation right after data updates.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ConnectionName` | Attribute | - | If the webservice is secured, we need a connection to get the accessToken
Connection Code to use to retrieve the Credentials needed to authenticate against the remote WebService |
| `ExecuteOnBatchStatuses` | Attribute | - | Comma-separated list of batch statuses following which the next command can be executed.
Possible values: SUCCESS (default), CANCELED, SYSTEM_ERROR, REJECTED, INVALID, TIMEOUT_CANCELED |
| `ResultStatus` | Attribute | - | Read-only. This is populated by the system after the flow step has run and indicates the result of the triggered batch or webservice call.
It is available in the generated pipeline xml attached to the batch on the load page. |
| `RunEvenIfNoChanges` | Attribute | - | True to run pipeline if previous batch has no changes (only works in Mode="SEQUENTIAL", not "PARALLEL")
need to use enums as XmlAttribute does not support nullable "bool?" typedefault, False, True |
| `Url` | Attribute | - | Url to download the data from. |
| `Body` | Element | - | Defines the body parameters of the POST request |
| `Type` | Attribute | - | Gets or sets the Body request content type.raw, x-www-form-urlencoded, graphQL |
| `graphQL` | Element | - | GraphQL query json content |
| `raw` | Element | - | String Content without particular media type (use Headers to set Content-Type) |
| `x-www-form-urlencoded` | Element | - | x-www-form-urlencoded media type, one key:value per line using this convention
key1:value1
key2:value2 |
| `Headers` | Element | - | Additional headers to add to the requestadd |
| `Name` | Attribute | - | Gets or sets the name. |
| `Value` | Attribute | - | Gets or sets the value. |
| `ResultResponse` | Element | - | Set by the system from the http response |
### Flow
Pipeline flow section: configure RunPipeline or CallWebService launch order from a single place.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ExecuteOnBatchStatuses` | Attribute | - | Comma-separated list of batch statuses following which the next command can be executed.
Possible values: SUCCESS (default), CANCELED, SYSTEM_ERROR, REJECTED, INVALID, TIMEOUT_CANCELED |
| `Mode` | Attribute | - | PARALLEL (default) or SEQUENCE.
How to start the flow commands: in PARALLEL, each command will be started without waiting for the result of the previous command.
In SEQUENCE, each command is processed individually, and awaited for before triggering the next commands, useful when the 2nd step requires the output of the 1st step.PARALLEL, SEQUENTIAL |
| `ResultStatus` | Attribute | - | Read-only. This is populated by the system after the flow step has run and indicates the result of the triggered batch or webservice call.
It is available in the generated pipeline xml attached to the batch on the load page. |
| `RunEvenIfNoChanges` | Attribute | - | True to run pipeline if previous batch has no changes (only works in Mode="SEQUENTIAL", not "PARALLEL")
need to use enums as XmlAttribute does not support nullable "bool?" typedefault, False, True |
| `RunBaseCommands` | Element (Multiple) | - | RunPipeline, CallWebService, Flow |
### PostRun
Describe a flow of postRun commands to run after the initial pipeline batch completes
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ExecuteOnBatchStatuses` | Attribute | - | Comma-separated list of batch statuses following which the next command can be executed.
Possible values: SUCCESS (default), CANCELED, SYSTEM_ERROR, REJECTED, INVALID, TIMEOUT_CANCELED |
| `Mode` | Attribute | - | PARALLEL (default) or SEQUENCE.
How to start the flow commands: in PARALLEL, each command will be started without waiting for the result of the previous command.
In SEQUENCE, each command is processed individually, and awaited for before triggering the next commands, useful when the 2nd step requires the output of the 1st step.PARALLEL, SEQUENTIAL |
| `ResultStatus` | Attribute | - | Read-only. This is populated by the system after the flow step has run and indicates the result of the triggered batch or webservice call.
It is available in the generated pipeline xml attached to the batch on the load page. |
| `RunEvenIfNoChanges` | Attribute | - | True to run pipeline if previous batch has no changes (only works in Mode="SEQUENTIAL", not "PARALLEL")
need to use enums as XmlAttribute does not support nullable "bool?" typedefault, False, True |
| `RunBaseCommands` | Element (Multiple) | - | RunPipeline, CallWebService, Flow |
### RunPipeline
In a PostRun, automatically triggers the run of a pipeline after the current Load is finished. By default, will be triggered only if parent batch has changes.
In a Flow, triggers the run of a pipeline.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `BatchComment` | Attribute | - | Optional: Comment to be added to the batch when the pipeline is triggered.
Pipeline variables like ${BATCH_ID} can be used to identify the parent batch.
Default: "PostRun Batch ID: ${BATCH_ID}" |
| `BatchIDs` | Attribute | - | Populated by the system, list of generated batch IDs started by the command |
| `ExecuteOnBatchStatuses` | Attribute | - | Comma-separated list of batch statuses following which the next command can be executed.
Possible values: SUCCESS (default), CANCELED, SYSTEM_ERROR, REJECTED, INVALID, TIMEOUT_CANCELED |
| `OriginCode` | Attribute | - | Required: Code of the pipeline origin to run. |
| `ResultStatus` | Attribute | - | Read-only. This is populated by the system after the flow step has run and indicates the result of the triggered batch or webservice call.
It is available in the generated pipeline xml attached to the batch on the load page. |
| `RunEvenIfNoChanges` | Attribute | - | True to run pipeline if previous batch has no changes (only works in Mode="SEQUENTIAL", not "PARALLEL")
need to use enums as XmlAttribute does not support nullable "bool?" typedefault, False, True |
| `Values` | Element | - | Optional: Set the values to pass to next pipeline as inputs. The target pipeline should have those inputs declared in its "Context > Inputs" section |
| `Add` | Element (Multiple) | - | Gets or sets the adders. |
## Flow
Pipeline flow section: configure RunPipeline or CallWebService launch order from a single place.
### CallWebService
Calls a remote Web service API after a batch completes. Useful to trigger a synchronisation right after data updates.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ConnectionName` | Attribute | - | If the webservice is secured, we need a connection to get the accessToken
Connection Code to use to retrieve the Credentials needed to authenticate against the remote WebService |
| `ExecuteOnBatchStatuses` | Attribute | - | Comma-separated list of batch statuses following which the next command can be executed.
Possible values: SUCCESS (default), CANCELED, SYSTEM_ERROR, REJECTED, INVALID, TIMEOUT_CANCELED |
| `ResultStatus` | Attribute | - | Read-only. This is populated by the system after the flow step has run and indicates the result of the triggered batch or webservice call.
It is available in the generated pipeline xml attached to the batch on the load page. |
| `RunEvenIfNoChanges` | Attribute | - | True to run pipeline if previous batch has no changes (only works in Mode="SEQUENTIAL", not "PARALLEL")
need to use enums as XmlAttribute does not support nullable "bool?" typedefault, False, True |
| `Url` | Attribute | - | Url to download the data from. |
| `Body` | Element | - | Defines the body parameters of the POST request |
| `Type` | Attribute | - | Gets or sets the Body request content type.raw, x-www-form-urlencoded, graphQL |
| `graphQL` | Element | - | GraphQL query json content |
| `raw` | Element | - | String Content without particular media type (use Headers to set Content-Type) |
| `x-www-form-urlencoded` | Element | - | x-www-form-urlencoded media type, one key:value per line using this convention
key1:value1
key2:value2 |
| `Headers` | Element | - | Additional headers to add to the requestadd |
| `Name` | Attribute | - | Gets or sets the name. |
| `Value` | Attribute | - | Gets or sets the value. |
| `ResultResponse` | Element | - | Set by the system from the http response |
### Flow
Pipeline flow section: configure RunPipeline or CallWebService launch order from a single place.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `ExecuteOnBatchStatuses` | Attribute | - | Comma-separated list of batch statuses following which the next command can be executed.
Possible values: SUCCESS (default), CANCELED, SYSTEM_ERROR, REJECTED, INVALID, TIMEOUT_CANCELED |
| `Mode` | Attribute | - | PARALLEL (default) or SEQUENCE.
How to start the flow commands: in PARALLEL, each command will be started without waiting for the result of the previous command.
In SEQUENCE, each command is processed individually, and awaited for before triggering the next commands, useful when the 2nd step requires the output of the 1st step.PARALLEL, SEQUENTIAL |
| `ResultStatus` | Attribute | - | Read-only. This is populated by the system after the flow step has run and indicates the result of the triggered batch or webservice call.
It is available in the generated pipeline xml attached to the batch on the load page. |
| `RunEvenIfNoChanges` | Attribute | - | True to run pipeline if previous batch has no changes (only works in Mode="SEQUENTIAL", not "PARALLEL")
need to use enums as XmlAttribute does not support nullable "bool?" typedefault, False, True |
| `RunBaseCommands` | Element (Multiple) | - | RunPipeline, CallWebService, Flow |
### RunPipeline
In a PostRun, automatically triggers the run of a pipeline after the current Load is finished. By default, will be triggered only if parent batch has changes.
In a Flow, triggers the run of a pipeline.
#### Properties
| Name | Type | Default Value | Description |
|------|------|--------------|-------------|
| `BatchComment` | Attribute | - | Optional: Comment to be added to the batch when the pipeline is triggered.
Pipeline variables like ${BATCH_ID} can be used to identify the parent batch.
Default: "PostRun Batch ID: ${BATCH_ID}" |
| `BatchIDs` | Attribute | - | Populated by the system, list of generated batch IDs started by the command |
| `ExecuteOnBatchStatuses` | Attribute | - | Comma-separated list of batch statuses following which the next command can be executed.
Possible values: SUCCESS (default), CANCELED, SYSTEM_ERROR, REJECTED, INVALID, TIMEOUT_CANCELED |
| `OriginCode` | Attribute | - | Required: Code of the pipeline origin to run. |
| `ResultStatus` | Attribute | - | Read-only. This is populated by the system after the flow step has run and indicates the result of the triggered batch or webservice call.
It is available in the generated pipeline xml attached to the batch on the load page. |
| `RunEvenIfNoChanges` | Attribute | - | True to run pipeline if previous batch has no changes (only works in Mode="SEQUENTIAL", not "PARALLEL")
need to use enums as XmlAttribute does not support nullable "bool?" typedefault, False, True |
| `Values` | Element | - | Optional: Set the values to pass to next pipeline as inputs. The target pipeline should have those inputs declared in its "Context > Inputs" section |
| `Add` | Element (Multiple) | - | Gets or sets the adders. |