#### COLUMN

#### Synopsis

    HELP:   Description of columns in the row
    TYPE:   OBJECT
    SYNTAX: COLUMN[(NAME='str',TYPE.{},PROCESS[{}...],FORMAT.{},MINLEN=num,MAXLEN/FIXLEN=num,PATH='str',ROOT='str',VALUE='str',INSERT[=POSSIBLE/REQUIRED/NOTALLOWED],VARFMT=PLENPTR/ALENPTR/PPTRLEN/APTRLEN/PFLGLENPTR/PPTRLENFLG,REGEXP())...]

#### Description

Describes how a table column is written to the output, the format of the column, which post-processing steps are run (e.g. encryption) and how the produced data is put together to build a row/record.

The value parameter allows to specify a default value for a column. If the column does not exist in the original, this default is used. With this mechanism, columns with constant values can be added. The parameter is a string and must represent the value depending on the column type:

- NONE/BINARY: hexadecimal value, length must be multiple of 2
- STRING: string value in local charset, is converted to UTF-8
- INTEGER: decimal value or ENUM key word in local charset
- FLOAT: real number with period as decimal separator in local charset

You can control over the selection INSERT the error handling. If the INSERT parameter not defined and a default value is given, then INSERT will be set to POSSIBLE else to NOTALLOWED by default. You can enforce an error if the column present but INSERT is set to REQUIRED. You can additional disallow insertion if you define INSERT to NOTALLOWED. If you only provide the INSERT keyword this will assumed as POSSIBLE.

The neutral format of the data can be validated or manipulated using a regular expression.

A column specification supports many powerful features which can be accessed with the parameters below.

#### Arguments

- `STRING: NAME='str' - Logical name of the column`
- `NUMBER: MINLEN=num - Required minimal length to enforce data in external format [0 - no length check]`
- `NUMBER: MAXLEN/FIXLEN=num - Default fixed length or maximum allowed length [0 - no length check]`
- `STRING: PATH='str' - Define path to element in a structured format [name]`
- `STRING: ROOT='str' - Define root path to element in a structured data format`
- `STRING: VALUE='str' - Optional default value, used to determine optional fields in structured data formats ['0' for float and integer else '']`
- `NUMBER: INSERT=POSSIBLE/REQUIRED/NOTALLOWED - Define insert handling [if VALUE then POSSIBLE else NOTALLOWED]`
  - `POSSIBLE - Insert of columns are possible, if column not found in table header`
  - `REQUIRED - This column must be inserted and not found in the table header`
  - `NOTALLOWED - Insert is not allowed, this means that the column must be found in the table header`