From wiki.ginstr.com
(Redirected from Datatypes)
Jump to: navigation, search

Datatypes

Datatypes represent special entities in ginstr which are composed of base types (string, integer, boolean,...)


The table below contains a brief description of all possible datatypes.

Full details on each datatype can be found by clicking on the datatype name

Datatype Brief Description Platform
text Used for text or combinations of text and numbers all
listOfText Used for list of text all
number Used for numbers all
date Used for dates (yyyy-mm-dd) all
time Used for time (hh:mm:ss) all
dateTime Used for date and time (yyyy-mm-dd hh:mm:ss) all
dateTimeDiff Used to calculate the difference between two different timestamps all
listOfDate Used for list of dates server
listOfTime Used for list of times server
listOfDateTime Used for list of dateTimes server
frequency Used for scheduling tasks at regular time intervals all
assignment Used to define assigned table/column all
pointer Used to define pointed table all
weekday Used for weekdays (i.e. Monday to Friday) all
email Used for email addresses all
phoneNumber Used for Phone Numbers all
GPS Used for GPS data all
status Used for status all
pictures Used for image files all
video Used for video files all
audio Used for audio files all
documents Used for document files all
signature Used for signature files all
iBeacon Used for Apple iBeacon protocol all
enum Used for enums all
counter Used for counters server
banking Used for IBAN and BIC format all
rows Used for objects with table hierarchy launcher
rowsColumn Used for one element lists launcher
fingerprint (M103.8.0.6) Used for WiFi, BT, BLE, GSM fingerprints launcher

Two representations are listed below for each datatype:

JSON
JSON representation shows how datatype is structured in database
configuration.xml
full representation of XML definition for datatype when written in configuration.xml. More details about configuration.xml here

Each datatype has, in addition to base attributes, special settings which are different when comparing with other datatypes. In the following text, specification can be found for each setting per datatype.

All column settings are optional and have null by default (except pointer, assignment, audio, video, pictures and documents datatypes).


text

Used for text or combinations of text and numbers

Example JSON
{
  "dataTypeDefinitionId": "text",
  "name": "text",
  "field": "ORSXQ5A0",
  "id": "ORSXQ5A0",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "len": null,
    "horizontalAlignment": "left",
    "multiline": null,
    "displaySeparateLinesWithPipe": null,
    "pattern": "[0-9A-Z]{3}",
    "patternErrors": {
      "en": "Invalid value",
      "de": "Invalid value"
    },
    "notEditable": false,
    "valuesList": ["val1", "val2"],
    "uniqueInside": [{
      "category": "refTableId1",
      "item": "refColumnField1"
    }, {
      "category": "refTableId2",
      "item": "refColumnField2"
    }]
  }
}
Example configuration.xml
<columnText>
  <len>null|>=0|<=10000</len>
  <horizontalAlignment>left|center|right</horizontalAlignment>
  <multiline>true|false</multiline>
  <displaySeparateLinesWithPipe>true|false</displaySeparateLinesWithPipe>
  <pattern errorMessage="invalidTextTableValue">[0-9A-Z]{3}</pattern>
  <notEditable>true|false</notEditable>
  <valuesList>
    <value>val1</value>
    <value>val2</value>
  </valuesList>
  <uniqueInsideList>
    <reference>
      <table>refTableId1</table>
      <column>refColumnField1</column>
    </reference>
    <reference>
      <table>refTableId2</table>
      <column>refColumnField2</column>
    </reference>
  </uniqueInsideList>
</columnText>
Settings
len (Integer, optional)
the length limit of text
Value from 0 to 10000.
0 and null value is unlimited.
Default: null
horizontalAlignment (String, optional)
the text alignment in column.
Allows left, center, right.
Default: left
multiline (Boolean, optional)
the option to enable or disable multiline text.
Default: false
displaySeparateLinesWithPipe (Boolean, optional)
the option to enable or disable separate with | values entered in different lines.
Default: false
valuesList (StringArray, optional)
array with list of possible values.
If array is empty, all values are allowed.
Default: null
uniqueInsideList (Array, optional)
list of other columns and tables inside which current column value should be unique.
Default: null
pattern (Object, optional)
pattern for column value. In case entered value doesn't match the pattern - value in _errorMessage_ will be shown.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

listOfText

Used for list of text

Example JSON
{
  "dataTypeDefinitionId": "listOfText",
  "name": "listOfText",
  "field": "ORSXQ5A0",
  "id": "ORSXQ5A0",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "maxItems": 5,
    "len": null,
    "horizontalAlignment": "left",
    "multiline": null,
    "displaySeparateLinesWithPipe": null,
    "pattern": "[0-9A-Z]{3}",
    "patternErrors": {
      "en": "Invalid value",
      "de": "Invalid value" 
    },
    "notEditable": false
  }
}
Example configuration.xml
<columnListOfText>
  <maxItems>5</maxItems>
  <len>null|>=0|<=10000</len>
  <horizontalAlignment>left|center|right</horizontalAlignment>
  <multiline>true|false</multiline>
  <displaySeparateLinesWithPipe>true|false</displaySeparateLinesWithPipe>
  <pattern errorMessage="invalidTextTableValue">[0-9A-Z]{3}</pattern>
  <notEditable>true|false</notEditable>
</columnListOfText>
Settings
maxItems (Integer, optional)
maximum number of items
Default: null
len (Integer, optional)
the length limit of text. Value from 0 to 10000. 0 and null value is unlimited.
Default: null
horizontalAlignment (String, optional)
the text alignment in column. Allows "left", "center", "right".
Default: left
multiline (Boolean, optional)
the option to enable or disable multiline text. WARNING: This flag is for now disabled in UI and it should not be used in configuration.xml until enabled in UI again
Default: false
displaySeparateLinesWithPipe (Boolean, optional)
the option to enable or disable separate with | values entered in different lines.
Default: false
pattern (Object, optional)
pattern for column value. In case entered value doesn't match the pattern - value in errorMessage will be shown.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

number

Used for numbers

Example JSON
{
  "dataTypeDefinitionId": "number",
  "name": "number",
  "field": "NZ2W2YTFOI000000",
  "id": "NZ2W2YTFOI000000",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "decimalPlaces": null,
    "natural": null,
    "horizontalAlignment": "left",
    "default": 12,
    "notEditable": false,
    "valuesList": [1, 2],
    "uniqueInside": [{
      "category": "refTableId1",
      "item": "refColumnField1"
    }, {
      "category": "refTableId2",
      "item": "refColumnField2"
    }],
    "units":{
       "UnitOptions":{
          "currency":{
             "iso4217":{
                "AUD":"Australian Dollar",
                "CHF":"Swiss Franc",
                "EUR":"Euro",
                "GBP":"Pound Sterling",
                "USD":"United States Dollar"
             }
          },
          "general":{
             "none":{
                "#":"Index",
                "%":"Percent",
                "count":"Count",
                "tokens":"Tokens",
                "items":"Items"
             }
          },
          "length":{
             "metric":{
                "mm":"Millimetre",
                "km":"Kilometre",
                "um":"Micrometre",
                "dm":"Decimetre",
                "cm":"Centimetre",
                "m":"Metre"
             },
             "imperial":{
                "fur":"Furlong",
                "th":"Thou",
                "in":"Inch",
                "yd":"Yard",
                "mi":"Mile",
                "ft":"Foot"
             }
          },
          "volume":{
             "metric":{
                "hL":"Hectolitre",
                "uL":"Microlitre",
                "dL":"Decilitre",
                "L":"Litre",
                "mL":"Millilitre"
             },
             "imperial":{
                "gi":"Gill",
                "gal":"Gallon",
                "qt":"Quart",
                "pt":"Pint",
                "fl oz":"Fluid Ounce"
             }
          },
          "weight":{
             "metric":{
                "t":"Tonne",
                "g":"Gram",
                "kg":"Kilogram"
             },
             "imperial":{
                "st":"Stone",
                "t":"Ton",
                "lb":"Pound",
                "oz":"Ounce"
             }
          }
       },
       "UnitPlacement":{
        "TRAILING":"trailing",
        "LEADING":"leading"
       }
    },
    "keepLeadingZeroes": 4,
    "thousandsDelimeter": "show",
    "horizontalAlignment": "left",
    "numberSigns": [
      "lessThanZero",
      "equalToZero",
      "greaterThanZero" 
    ]
     
  }
}
Example configuration.xml
<columnNumber>
  <decimalPlaces>2</decimalPlaces>
  <natural>true|false</natural>
  <numberSigns>
    <numberSign>greaterThanZero</numberSign>
    <numberSign>equalToZero</numberSign>
    <numberSign>lessThanZero</numberSign>
  </numberSigns>
  <horizontalAlignment>left|center|right</horizontalAlignment>
  <defaultValue>12</defaultValue>
  <notEditable>true|false</notEditable>
  <valuesList>
    <value>1</value>
    <value>2</value>
  </valuesList>
  <uniqueInsideList>
    <reference>
      <table>refTableId1</table>
      <column>refColumnField1</column>
    </reference>
    <reference>
      <table>refTableId2</table>
      <column>refColumnField2</column>
    </reference>
  </uniqueInsideList>
  <presentation>
    <intent>volume</intent>
    <system>metric</system>
    <enumKeyValue key="L" resourceId="Litre"/>
    <placement>trailing</placement>
  </presentation>
  <keepLeadingZeroes>4</keepLeadingZeroes>
  <thousandsDelimeter>show</thousandsDelimeter>
</columnNumber>
Settings
decimalPlaces (Integer, optional)
the length limit of decimal places.
Allows integer as value from 0 to 13.
0 and null value is limited to 13.
Default: null
natural (Boolean, optional)
enable/disable fractional numbers.
When true, fractional numbers are now allowed.
Default: false
horizontalAlignment (String, optional)
the text alignment in column. Allows "left", "center", "right".
Default: right
defaultValue (Double, optional)
Default value for empty columns.
Default: null
valuesList (DoubleArray, optional)
array with list of possible values.
If array is empty, all values are allowed.
Default: null
uniqueInsideList (Array, optional)
list of other columns and tables inside which current column value should be unique.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
keepLeadingZeroes (Integer, optional)
the number of zeroes to be applied as padding
Default: false
numberSigns (list of Enum (string), optional)
replaces *notNegative* the options that should be applied to this column.
Options :
greaterThanZero,
equalToZero,
lessThanZero
presentation (String, optional)
intent (general, currency, weight, volume, length)
placement (leading, trailing)
enumKeyValue (symbol to show and its resourceId for translation)

date

Used for dates (yyyy-mm-dd)

Value is equal to start of date in UTC time zone.

Example JSON
{
  "dataTypeDefinitionId": "date",
  "name": "date",
  "field": "MRQXIZI0",
  "id": "MRQXIZI0",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "horizontalAlignment": "center",
    "minDate": null,
    "maxDate": null,
    "preset": null,
    "defaultFilter": null,
    "setCurrent": null,
    "notEditable": null,
    "uniqueInside": [{
      "category": "refTableId1",
      "item": "refColumnField1" 
    }, {
      "category": "refTableId2",
      "item": "refColumnField2" 
    }],
    "logicalDateConstraint" : {
      "logicalDateConstraintOption" : "earlierThanToday",
      "logicalOffset" : 22
    },
    "autoEnter": {
      "autoEnterDateOption": "tomorrow" 
    },
    "fieldComparisonDateConstraint" : {
      "comparisonField" : "app_dateTable_column1",
      "fieldComparisonDateConstraintOption" : "earlierThan" 
    }   
  }
}
Example configuration.xml
<columnDate>
  <minDate>yyyy-mm-dd</minDate>
  <maxDate>yyyy-mm-dd</maxDate>
  <preset>yyyy-mm-dd</preset>
  <defaultFilter>today|yesterday|currentWeek|lastWeek|nextWeek|currentMonth|lastMonth|nextMonth|untilToday|fromToday|untilTomorrow|fromTomorrow|currentYear|lastYear|nextYear|currentQuarter|lastQuarter|nextQuarter</defaultFilter>
  <setCurrent>true|false</setCurrent>
  <notEditable>true|false</notEditable>
  <uniqueInsideList>
    <reference>
      <table>refTableId1</table>
      <column>refColumnField1</column>
    </reference>
    <reference>
      <table>refTableId2</table>
      <column>refColumnField2</column>
    </reference>
  </uniqueInsideList>
  <logicalConstraint>
    <logicalDateConstraintOption>earlierThanToday</logicalDateConstraintOption>
    <logicalOffset>22</logicalOffset>
  </logicalConstraint>
  <autoEnter>
    <reference>
      <autoEnterDateOption>todayPlus</autoEnterDateOption>
      <dayOffset>3</dayOffset>
    </reference>
  </autoEnter>
  <fieldComparisonDateConstraint>
    <fieldComparisonDateConstraintOption>earlierThan</fieldComparisonDateConstraintOption>
    <comparisonField>app_dateTable_column1</comparisonField>
  </fieldComparisonDateConstraint>
  <horizontalAlignment>center</horizontalAlignment>
</columnDate>
Settings
minDate (Long/Date, optional)
minimum date, Unix time in milliseconds in json, yyyy-mm-dd in xml.
Default: null
maxDate (Long/Date, optional)
maximum date, Unix time in milliseconds in json, yyyy-mm-dd in xml.
Default: null
preset (Long/Date, optional)
Unix time in milliseconds in json, yyyy-mm-dd in xml.
Default: null
defaultFilter (String, optional)
filter that applied to the field, it can be null or one of above options.
Default: null
setCurrent (Boolean, optional)
enable/disable set of current date when create new date cell.
Default: false
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
uniqueInsideList (Array, optional)
list of other columns and tables inside which current column value should be unique.
Default: null
logicalConstraint (Enum, optional)
2 attributes required.
Default: null
logicalDateConstraintOption (Enum, option).
Options:
earlierThanToday
earlierThanTodayByMax (with logicalOffset)
todayOrEarlier
laterThanToday
laterThanTodayByMax (with logicalOffset)
todayOrLater
logicalOffset (Integer, option).
autoEnter (Enum, optional)
2 attributes required.
Default: null.
Options:
today
tomorrow
yesterday
singleDate
todayPlus (with dayOffset)
todayMinus (with dayOffset)
dayOffset (Integer, option).
fieldComparisonDateConstraint (Enum, optional)
2 attributes required.
Default: null
fieldComparisonDateConstraintOption (Enum, option).
Options:
earlierThan (with comparisonField) (with comparisonField)
equalOrEarlierThan (with comparisonField)
laterThan (with comparisonField)
equalOrLaterThan (with comparisonField)
comparisonField (Field name, mandatory).
horizontalAlignment (String, optional)
the text alignment in column. Allows "left", "center", "right".
Default: center

time

Used for time (hh:mm:ss)

Example JSON
{
  "dataTypeDefinitionId": "time",
  "name": "time",
  "field": "ORUW2ZI0",
  "id": "ORUW2ZI0",
  "unique": false,
  "required": "false",
  "hidden": false,
  "settings":       {
    "minTime": null,
    "maxTime": null,
    "preset": null,
    "setCurrent": null,
    "notEditable": null
  }
}
Example configuration.xml
<columnTime>
  <minTime>hh:mm:ss</minTime>
  <maxTime>hh:mm:ss</maxTime>
  <preset>hh:mm:ss</preset>
  <setCurrent>true|false</setCurrent>
  <notEditable>true|false</notEditable>
</columnTime>
Settings
minTime (Long/Time, optional)
minimum time,
Unix time in milliseconds in JSON
hh:mm:ss in XML
Default: null
maxTime (Long/Time, optional)
maximum time
Unix time in milliseconds in JSON
hh:mm:ss in XML
Default: null
preset (Long/Time, optional)
default value
Unix time in milliseconds in JSON
hh:mm:ss in XML
Default: null
setCurrent (Boolean, optional)
enable/disable set of current time when create new date cell.
Default: false
notEditable (Boolean, optional)
is field editable.
Default: false


dateTime

Used for date and time (yyyy-mm-dd hh:mm:ss)

Example JSON
{
  "dataTypeDefinitionId": "dateTime",
  "name": "date and time",
  "field": "MRQXIZJAMFXGIIDUNFWWK000",
  "id": "MRQXIZJAMFXGIIDUNFWWK000",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "horizontalAlignment": "center",
    "minDate": null,
    "maxDate": null,
    "minTime": null,
    "maxTime": null,
    "preset": null,
    "defaultFilter": null,
    "setCurrent": null,
    "notEditable": null,
    "uniqueInside": [{
      "category": "refTableId1",
      "item": "refColumnField1" 
    }, {
      "category": "refTableId2",
      "item": "refColumnField2" 
    }]
  }
}
Example configuration.xml
<columnDateTime>
  <minDate>yyyy-mm-dd</minDate>
  <maxDate>yyyy-mm-dd</maxDate>
  <minTime>hh:mm:ss</minTime>
  <maxTime>hh:mm:ss</maxTime>
  <preset>yyyy-mm-dd hh:mm:ss</preset>
<defaultFilter>today|yesterday|currentWeek|lastWeek|nextWeek|currentMonth|lastMonth|nextMonth|untilToday|fromToday|untilTomorrow|fromTomorrow|currentYear|lastYear|nextYear|currentQuarter|lastQuarter|nextQuarter</defaultFilter>
  <setCurrent>true|false</setCurrent>
  <notEditable>true|false</notEditable>
  <uniqueInsideList>
    <reference>
      <table>refTableId1</table>
      <column>refColumnField1</column>
    </reference>
    <reference>
      <table>refTableId2</table>
      <column>refColumnField2</column>
    </reference>
  </uniqueInsideList>
  <horizontalAlignment>left|center|right</horizontalAlignment>
</columnDateTime>
Settings
minDate (Long/Date, optional)
minimum date, Unix time in milliseconds in json, yyyy-mm-dd in xml.
Default: null
maxDate (Long/Date, optional)
maximum date, Unix time in milliseconds in json, yyyy-mm-dd in xml.
Default: null
minTime (Long/Time, optional)
minimum time, Unix time in milliseconds in json, hh:mm:ss in xml.
Default: null
maxTime (Long/Time, optional)
maximum time, Unix time in milliseconds in json, hh:mm:ss in xml.
Default: null
preset (Long/Datetime, optional)
default value, Unix time in milliseconds in json, yyyy-mm-dd hh:mm:ss in xml.
Default: null
defaultFilter (String, optional)
filter that applied to the field, it can be null or one of above options.
Default: null
setCurrent (Boolean, optional)
enable/disable set of current timestamp when create new date cell.
Default: false
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
uniqueInsideList (Array, optional)
list of other columns and tables inside which current column value should be unique.
Default: null
horizontalAlignment (String, optional)
the text alignment in column. Allows "left", "center", "right".
Default: center

listOfDate

Used for list of date

Example JSON
{
  "dataTypeDefinitionId": "listOfDate",
  "name": "list of dates",
  "field": "ORSXQ5A0",
  "id": "ORSXQ5A0",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "maxItems": null,
    "preset": null,
    "minDate": null,
    "maxDate": null,
    "notEditable": false
  }
}
Example configuration.xml
<columnListOfDate>
  <maxItems></maxItems>
  <preset>yyyy-mm-dd</preset>
  <minDate>yyyy-mm-dd</minDate>
  <maxDate>yyyy-mm-dd</maxDate>
  <notEditable>true|false</notEditable>
</columnListOfDate>
Settings
maxItems (Integer, optional)
maximum number of items.
Default: null
preset (Long/Date, optional)
default value, Unix time in milliseconds in json, yyyy-mm-dd in xml.
Default: null
minDate (Long/Date, optional)
minimum date, Unix time in milliseconds in json, yyyy-mm-dd in xml.
Default: null
maxDate (Long/Date, optional)
maximum date, Unix time in milliseconds in json, yyyy-mm-dd in xml.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

listOfTime

Used for list of time

Example JSON
{
  "dataTypeDefinitionId": "listOfTime",
  "name": "list of times",
  "field": "ORSXQ5A0",
  "id": "ORSXQ5A0",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "maxItems": null,
    "preset": null,
    "minTime": null,
    "maxTime": null,
    "notEditable": false
  }
}
Example configuration.xml
<columnListOfTime>
  <maxItems></maxItems>
  <preset>hh:mm:ss</preset>
  <minTime>hh:mm:ss</minTime>
  <maxTime>hh:mm:ss</maxTime>
  <notEditable>true|false</notEditable>
</columnListOfTime>
Settings
maxItems (Integer, optional)
maximum number of items.
Default: null
preset (Long/Time, optional)
default value, Unix time in milliseconds in json, hh:mm:ss in xml.
Default: null
minTime (Long/Time, optional)
minimum time, Unix time in milliseconds in json, hh:mm:ss in xml.
Default: null
maxTime (Long/Time, optional)
maximum time, Unix time in milliseconds in json, hh:mm:ss in xml.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

listOfDateTime

Used for list of dateTime

Example JSON
{
  "dataTypeDefinitionId": "listOfDateTime",
  "name": "list of dates and times",
  "field": "ORSXQ5A0",
  "id": "ORSXQ5A0",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "maxItems": null,
    "minDate": null,
    "maxDate": null,
    "minTime": null,
    "maxTime": null,
    "preset": null,
    "notEditable": false
  }
}
Example configuration.xml
<columnListOfDateTime>
  <maxItems></maxItems>
  <minDate>yyyy-mm-dd</minDate>
  <maxDate>yyyy-mm-dd</maxDate>
  <minTime>hh:mm:ss</minTime>
  <maxTime>hh:mm:ss</maxTime>
  <preset>yyyy-mm-dd hh:mm:ss</preset>
  <notEditable>true|false</notEditable>
</columnListOfDateTime>
Settings
maxItems (Integer, optional)
maximum number of items.
Default: null
minDate (Long/Date, optional)
minimum date, Unix time in milliseconds in json, yyyy-mm-dd in xml.
Default: null
maxDate (Long/Date, optional)
maximum date, Unix time in milliseconds in json, yyyy-mm-dd in xml.
Default: null
minTime (Long/Time, optional)
minimum time, Unix time in milliseconds in json, hh:mm:ss in xml.
Default: null
maxTime (Long/Time, optional)
maximum time, Unix time in milliseconds in json, hh:mm:ss in xml.
Default: null
preset (Long/Datetime, optional)
default value, Unix time in milliseconds in json, yyyy-mm-dd hh:mm:ss in xml.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

frequency

Used for scheduling tasks at regular time intervals

The following options are available:

  • hourly
  • daily
  • weekly
  • biWeekly
  • monthly
  • quarterly
  • halfYearly
  • yearly
  • biYearly
  • threeYearly
  • fourYearly
  • fiveYearly
Example JSON
{
  "dataTypeDefinitionId": "frequency",
  "name": "frequency",
  "field": "O5SWK23EMF4Q0000",
  "id": "O5SWK23EMF4Q0000",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false
  }
}
Example configuration.xml
<columnFrequency>
  <notEditable>true|false</notEditable>
</columnFrequency>
Settings
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

assignment

Used to define assigned table/column

Assigned column should be specified

Example JSON
{
  "dataTypeDefinitionId": "assignment",
  "name": "assignment",
  "field": "MFZXG2LHNZWWK3TU",
  "id": "MFZXG2LHNZWWK3TU",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "type": "other",
    "tableId": "mainUser111140__GAYSA5DBMJWGKIDBNRWCA5DZOBSXG000",
    "nameColumnField": "ORSXQ5A0",
    "backNameColumnField": "_id",
    "relatedColumnName": "xxx",
    "dataType": "text",
    "filterOnParentSelection": null,
    "horizontalAlignment": "left",
    "notEditable": false
  }
}
Example configuration.xml
<columnAssignment>
  <table>tableId</table>
  <tableType>application|system</tableType>
  <column>columnField</column>
  <filterOnParentSelection>true|false</filterOnParentSelection>
  <horizontalAlignment>left|center|right</horizontalAlignment>
  <notEditable>true|false</notEditable>
</columnAssignment>
Settings
tableId(table) (String)
id of assigned table.
No default value.
nameColumnField(column) (String)
ID of column in assigned table which value should be shown in current table.
No default value.
filterOnParentSelection (Boolean, optional)
if true filters table content if parent is selected in another portlet of same workspace.
Default: true (for configuration.xml) and false for other cases.
fixValue (Boolean, optional) deprecated
if update of value in reference should be disabled in case referred value was changed.
Default: false.
horizontalAlignment (String, optional)
the text alignment in column. Allows "left", "center", "right".
Default: left
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
type (String)
"other". Reserved for assignment to trackables, geofences and other non-ginstr objects.
Default: "other".
backNameColumnField (String)
name of column that will be displayed in relatedColumnName of assigned table. Field should be empty in case column is created from configuration.xml.
Default: null.
relatedColumnName (String, optional)
name of column that will be created in assigned table which will holds assignments to current table. Field should be empty in case column is created from configuration.xml.
Default: null.
dataType (String)
data type of nameColumnField column. It supports all existing datatypes except "assignment", "status", "pointer". Field value is set automatically during table creation/update.
Default: null.

pointer

Used to define pointed table

Pointed column should be specified

Example JSON
{
  "dataTypeDefinitionId": "pointer",
  "name": "pointer",
  "field": "OBXWS3TUMVZA0000",
  "id": "OBXWS3TUMVZA0000",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "reference": {
      "category": "mainUser111140__GAYSA5DBMJWGKIDBNRWCA5DZOBSXG000",
      "item": "ORSXQ5A0" 
    },
    "filterOnParentSelection": null,
    "notEditable": false,
    "auxiliaryColumns": ["JZQW2ZI0", "KBUG65DP"],
    "dependsOnColumns": [{
      "category": "zoneNo",
      "item": "zoneNo" 
    }],
    "dataType": "text" 
  }
}
Example configuration.xml
<columnPointer>
  <appId>ginstrAppId</appId>
  <table>tableId</table>
  <tableType>application|system</tableType>
  <column>columnField</column>
  <filterOnParentSelection>true|false</filterOnParentSelection>
  <notEditable>true|false</notEditable>
  <auxiliaryColumns>
    <column>columnField</column>
  </auxiliaryColumns>
  <dependsOnColumns>
    <column>
      <current>columnInCurrentTable</current>
      <pointed>columnInPointedTableToDefineSubset</pointed>
    </column>
  </dependsOnColumns>
</columnPointer>
Settings
category(table) (String)
ID of pointed table.
No default value.
item(column) (String)
ID of pointed column. It is also possible to point to the record id column. The column name is id in this case.
No default value.
filterOnParentSelection (Boolean, optional)
if true filters table content if parent is selected in another portlet of same workspace.
Default: true (for configuration.xml) and false for other cases.
fixValue (Boolean, optional) deprecated
if update of value in reference should be disabled in case referred value was changed.
Default: false.
auxiliaryColumns (StringArray, optional)
list of columns that should be shown in autocomplete popup widget while pointer value is selected.
Default: null
dependsOnColumns (StringHash, optional)
list of columns current column depends on. Should be used to show only subset of values filtered on value in selected table. [{"category": "columnInCurrentTable", "item": "columnInPointedTableToDefineSubset"}].
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
dataType (String)
data type of pointed column. It supports all existing datatypes except "assignment", "pointer". Field value is set automatically during table creation/update.
Default: null.

weekday

Used for weekdays (i.e. Monday to Friday)

Example JSON
{
  "dataTypeDefinitionId": "weekday",
  "name": "weekday",
  "field": "O5SWK23EMF4Q0000",
  "id": "O5SWK23EMF4Q0000",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false
  }
}
Example configuration.xml
<columnWeekDay>
  <notEditable>true|false</notEditable>
</columnWeekDay>
Settings
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

email

Used for email addresses

Example JSON
{
  "dataTypeDefinitionId": "email",
  "name": "email",
  "field": "MVWWC2LM",
  "id": "MVWWC2LM",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "maxItems": null,
    "presetEmail": "test@gmail.com",
    "notEditable": false,
    "uniqueInside": [{
      "category": "refTableId1",
      "item": "refColumnField1" 
    }, {
      "category": "refTableId2",
      "item": "refColumnField2" 
    }]
  }
}
Example configuration.xml
<columnEmail>
  <maxItems></maxItems>
  <presetEmail>test@gmail.com</presetEmail>
  <notEditable>true|false</notEditable>
  <uniqueInsideList>
    <reference>
      <table>refTableId1</table>
      <column>refColumnField1</column>
    </reference>
    <reference>
      <table>refTableId2</table>
      <column>refColumnField2</column>
    </reference>
  </uniqueInsideList>
</columnEmail>
Settings
maxItems (Integer, optional)
maximum number of items.
Default: null
presetEmail (String, optional)
default e-mail address.
Default: null
uniqueInsideList (Array, optional)
list of other columns and tables inside which current column value should be unique.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

phoneNumber

Used for Phone Numbers

Example JSON
{
  "dataTypeDefinitionId": "phoneNumbers",
  "name": "phone",
  "field": "OBUG63TF",
  "id": "OBUG63TF",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false,
    "uniqueInside": [{
      "category": "refTableId1",
      "item": "refColumnField1" 
    }, {
      "category": "refTableId2",
      "item": "refColumnField2" 
    }],
    "maxItems": 5
  }
}
Example configuration.xml
<columnPhoneNumber>
  <notEditable>true|false</notEditable>
  <uniqueInsideList>
    <reference>
      <table>refTableId1</table>
      <column>refColumnField1</column>
    </reference>
    <reference>
      <table>refTableId2</table>
      <column>refColumnField2</column>
    </reference>
  </uniqueInsideList>
  <maxItems>4</maxItems>
</columnPhoneNumber>
Settings
uniqueInsideList (Array, optional)
list of other columns and tables inside which current column value should be unique.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
maxItems (Integer, optional)
maximum number of items.
Default: null

GPS

Used for GPS data

Example JSON
{
  "dataTypeDefinitionId": "GPS",
  "name": "GPS",
  "field": "I5IFG000",
  "id": "I5IFG000",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false,
    "resolve" : false,
    "targetAddressField" : "someTextFieldInThisTable",
  }
}
Example configuration.xml
<columnGps>
  <notEditable>true|false</notEditable>
  <resolve>true|false</resolve>
  <latitude>Decimal</latitude>
  <longitude>Decimal</longitude>
  <timestamp>Timestamp</timestamp>
  <address>String</address>

  <!--SETTINGS -->
  <minLatitude>Decimal</minLatitude>
  <maxLatitude>Decimal</maxLatitude>
  <minLongitude>Decimal</minLongitude>
  <maxLongitude>Decimal</maxLongitude>

  <targetAddressColumn>someTextFieldInThisTable</targetAddressColumn>
</columnGps>
Settings
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
resolve (Boolean, optional)
is field resolved by ginstr server.
Default:false
targetAddressColumn (String, optional)*
A separate text column in this table into which a Resolved Nominatim Address value should be placed.
Default:null

status

The status datatype allows to store if something is TRUE or FALSE, FINISHED or NOT FINISHED, ON or OFF etc, so status can only have 2 states

Example JSON
{
  "dataTypeDefinitionId": "status",
  "name": "status",
  "field": "ON2GC5DVOM000000",
  "id": "ON2GC5DVOM000000",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false
  }
}
Example configuration.xml
<columnStatus>
  <notEditable>true|false</notEditable>
</columnStatus>
Settings
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

pictures

Used for image files

Should have at least one file format enabled.

Example JSON
{
  "dataTypeDefinitionId": "pictures",
  "name": "pictures",
  "field": "OBUWG5DVOJSXG000",
  "id": "OBUWG5DVOJSXG000",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false,
    "formats": [
      "image/jpeg",
      "image/png" 
    ],
    "replicate": false,
    "maxItems": 5
  }
}
Example configuration.xml
<columnPicture>
  <notEditable>true|false</notEditable>
  <formats>
    <format>image/jpeg</format>
    <format>image/png</format>
  </formats>
  <replicate>true|false</replicate>
  <maxItems>4</maxItems>
</columnPicture>
Settings
formats (StringArray, required)
contains array with supported formats. "image/jpeg", "image/png" are allowed.
Default: null. In case empty list of formats was specified in configuration.xml - it will be equal to situation when all possible formats where specified
replicate (Boolean, optional)
if true replicates images from server to android client.
Default: false
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
maxItems (Integer, optional)
maximum number of items.
Default: null

video

Used for video files

Should have at least one file format enabled.

Example JSON
{
  "dataTypeDefinitionId": "video",
  "name": "video",
  "field": "OZUWIZLP",
  "id": "OZUWIZLP",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false,
    "formats": ["video/mp4"],
    "replicate": false,
    "maxItems": 5
  }
}
Example configuration.xml
<columnVideo>
  <notEditable>true|false</notEditable>
  <formats>
    <format>video/mp4</format>
  </formats>
  <replicate>true|false</replicate>
  <maxItems>4</maxItems>
</columnVideo>
Settings
formats (StringArray, required)
contains array with supported formats. "video/mp4" is allowed.
Default: null. In case empty list of formats was specified in configuration.xml - it will be equal to situation when all possible formats where specified
replicate (Boolean, optional)
if true replicates videos from server to android client.
Default: false
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
maxItems (Integer, optional)
maximum number of items.
Default: null

audio

Used for audio files

Should have at least one file format enabled.

Example JSON
{
  "dataTypeDefinitionId": "audio",
  "name": "audio",
  "field": "MF2WI2LP",
  "id": "MF2WI2LP",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false,
    "formats": [
      "audio/mp4",
      "video/mp4" 
    ],
    "replicate": false,
    "maxItems": 5
  }
}
Example configuration.xml
<columnAudio>
  <notEditable>true|false</notEditable>
  <formats>
    <format>audio/mp4</format>
    <format>video/mp4</format>
  </formats>
  <replicate>true|false</replicate>
  <maxItems>4</maxItems>
</columnAudio>
Settings
formats (StringArray, required)
contains array with supported formats. "audio/mp4" and "video/mp4" are allowed.
Default: null. In case empty list of formats was specified in configuration.xml - it will be equal to situation when all possible formats where specified
replicate (Boolean, optional)
if true replicates audios from server to android client.
Default: false
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
maxItems (Integer, optional)
maximum number of items.
Default: null

documents

Used for document files

Should have at least one file format enabled.

Example JSON
{
  "dataTypeDefinitionId": "documents",
  "name": "document",
  "field": "MRXWG5LNMVXHI000",
  "id": "MRXWG5LNMVXHI000",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false,
    "formats": [
      "application/pdf",
      "application/vnd.ms-excel",
      "text/csv",
      "application/msword",
      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
      "application/vnd.openxmlformats-officedocument.presentationml.presentation",
      "application/vnd.ms-powerpoint",
      "message/rfc822",
      "application/zip",
      "application/x-gzip",
      "application/x-bzip2",
      "application/x-bzip",
      "text/xml" 
    ],
    "replicate": false,
    "maxItems": 5
  }
}
Example configuration.xml
<columnDocument>
  <notEditable>true|false</notEditable>
  <formats>
    <format>application/pdf</format>
    <format>application/vnd.ms-excel</format>
    <format>text/csv</format>
    <format>application/msword</format>
    <format>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</format>
    <format>application/vnd.openxmlformats-officedocument.wordprocessingml.document</format>
    <format>application/vnd.openxmlformats-officedocument.presentationml.presentation</format>
    <format>application/vnd.ms-powerpoint</format>
    <format>message/rfc822</format>
    <format>application/zip</format>
    <format>application/x-gzip</format>
    <format>application/x-bzip2</format>
    <format>application/x-bzip</format>
    <format>text/xml</format>
  </formats>
  <replicate>true|false</replicate>
  <maxItems>4</maxItems>
</columnDocument>
Settings
formats (StringArray)
contains array with supported formats. "application/pdf", "application/vnd.ms-excel", "text/csv", "application/msword", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" and "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/vnd.ms-powerpoint", "text/xml", "message/rfc822",

"application/zip", "application/x-gzip", "application/x-bzip2", "application/x-bzip" are allowed.

Default: null. Allows any document type without restriction (so long as it is in the Gistr allowed list ? //TODO -clarify; we need to check whether upload actually succeeds JS : 18.02.2019).
replicate (Boolean, optional)
if true replicates documents from server to android client.
Default: false
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false
maxItems (Integer, optional)
maximum number of items.
Default: null

signature

Used for signature files

Example JSON
{
  "dataTypeDefinitionId": "signature",
  "name": "signature",
  "field": "MRXWG5LNMVXHI000",
  "id": "MRXWG5LNMVXHI000",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "replicate": false,
    "maxItems": 5
  }
}
Example configuration.xml
<columnSignature>
  <replicate>true|false</replicate>
  <maxItems>4</maxItems>
</columnSignature>
Settings
replicate (Boolean, optional)
if true replicates documents from server to android client.
Default: false
maxItems (Integer, optional)
maximum number of items.
Default: null

iBeacon

Used for Apple iBeacon protocol

Example JSON
{
  "dataTypeDefinitionId": "iBeacon",
  "name": "iBeacon",
  "field": "AUJLYWNVBG",
  "id": "AUJLYWNVBG",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false,
    "uniqueInside": [{
      "category": "refTableId1",
      "item": "refColumnField1" 
    }, {
      "category": "refTableId2",
      "item": "refColumnField2" 
    }]
  }
}
Example configuration.xml
<columnIBeacon>
  <notEditable>true|false</notEditable>
  <uniqueInsideList>
    <reference>
      <table>refTableId1</table>
      <column>refColumnField1</column>
    </reference>
    <reference>
      <table>refTableId2</table>
      <column>refColumnField2</column>
    </reference>
  </uniqueInsideList>
</columnIBeacon>
Settings
uniqueInsideList (Array, optional)
list of other columns and tables inside which current column value should be unique.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

dateTimeDiff

Used for date time difference

Example JSON
{
  "dataTypeDefinitionId": "dateTimeDiff",
  "name": "dateTimeDiff",
  "field": "AUJLYWNVBG",
  "id": "AUJLYWNVBG",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "fieldStart": "dateTimeStart",
    "fieldEnd": "dateTimeEnd",
    "exclude": [{
      "fieldStart": "breakStart1",
      "fieldEnd": "breakEnd1" 
    }, {
      "fieldStart": "breakStart2",
      "fieldEnd": "breakEnd2" 
    }],
    "uniqueInside": [{
      "category": "refTableId1",
      "item": "refColumnField1" 
    }, {
      "category": "refTableId2",
      "item": "refColumnField2" 
    }]
  }
}
Example configuration.xml
<columnDateTimeDiff>
  <fieldStart>dateTimeStart</fieldStart>
  <fieldEnd>dateTimeEnd</fieldEnd>
  <exclude>
    <period fieldStart="breakStart1" fieldEnd="breakEnd1"/>
    <period fieldStart="breakStart2" fieldEnd="breakEnd2"/>
  </exclude>
  <uniqueInsideList>
    <reference>
      <table>refTableId1</table>
      <column>refColumnField1</column>
    </reference>
    <reference>
      <table>refTableId2</table>
      <column>refColumnField2</column>
    </reference>
  </uniqueInsideList>
</columnDateTimeDiff>
Settings
fieldStart (String, required)
ID of column in same table with dateTime datatype
fieldEnd (String, required)
ID of column in same table with dateTime datatype. Value of column with dateTimeDiff will be calculated like value in column fieldEnd minus value in column fieldStart
exclude (Array, optional)
list of periods that should be excluded from final result.
Default: null
uniqueInsideList (Array, optional)
list of other columns and tables inside which current column value should be unique.
Default: null

enum

Used for enums

Example JSON
{
  "dataTypeDefinitionId": "enum",
  "name": "columnEnum",
  "field": "AUJLYWNVBG",
  "id": "AUJLYWNVBG",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "notEditable": false,
    "valuesList": {
      "yes": {
        "en": "Yes",
        "de": "Ja",
      },
      "no": {
        "en": "No",
        "de": "Nein",
      }
    },
    "uniqueInside": [{
      "category": "refTableId1",
      "item": "refColumnField1" 
    }, {
      "category": "refTableId2",
      "item": "refColumnField2" 
    }]
  }
}
Example configuration.xml
<columnEnum>
  <notEditable>true|false</notEditable>
  <valuesList>
    <value key="yes" resourceId="resource_yes"/>
    <value key="no" resourceId="resource_no"/>
  </valuesList>
  <uniqueInsideList>
    <reference>
      <table>refTableId1</table>
      <column>refColumnField1</column>
    </reference>
    <reference>
      <table>refTableId2</table>
      <column>refColumnField2</column>
    </reference>
  </uniqueInsideList>
</columnEnum>
Settings
valuesList (Map, required)
Map of possible values with translations in different languages
uniqueInsideList (Array, optional)
list of other columns and tables inside which current column value should be unique.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false

counter

Used for counters

Example JSON
{
  "dataTypeDefinitionId": "counter",
  "name": "columnCouter",
  "field": "AUJLYWNVBG",
  "id": "AUJLYWNVBG",
  "unique": true,
  "visibility": "visible",
  "settings": {
    "horizontalAlignment": "right",
    "initial": 1,
    "delta": 1,
    "counterId": "counter:mainUser10:5" 
  }
}
Example configuration.xml
<columnCounter>
  <horizontalAlignment>right</horizontalAlignment>
  <initial>1</initial>
  <delta>1</delta>
</columnCounter>
Settings
horizontalAlignment (String, optional)
the text alignment in column.
Allows left, center, right
Default: left
initial (Long, optional)
initial counter value.
Default: 1
delta (Long, optional)
the increment amount.
Should be more than 0.
Default: 1
counterId (String, optional)
Id of counter which is used for generation of records in the column

banking

Used for IBAN and BIC format

Example JSON
{
  "dataTypeDefinitionId": "banking",
  "name": "bank account data",
  "field": "CLK863TF",
  "id": "CLK863TF",
  "unique": false,
  "required": "false",
  "visibility": "visible",
  "settings": {
    "maxItems": null,
    "notEditable": false,
    "uniqueInside": [{
      "category": "refTableId1",
      "item": "refColumnField1" 
    }, {
      "category": "refTableId2",
      "item": "refColumnField2" 
    }]
  }
}
Example configuration.xml
<columnBanking>
  <notEditable>true|false</notEditable>
  <maxItems></maxItems>
  <uniqueInsideList>
    <reference>
      <table>refTableId1</table>
      <column>refColumnField1</column>
    </reference>
    <reference>
      <table>refTableId2</table>
      <column>refColumnField2</column>
    </reference>
  </uniqueInsideList>
</columnBanking>
Settings
maxItems (Integer, optional)
maximum number of items.
Default: null
uniqueInsideList (Array, optional)
list of other columns and tables inside which current column value should be unique.
Default: null
notEditable (Boolean, optional)
is field editable via ginstr web.
Default: false



This category currently contains no pages or media.