Unicat API Reference

Up - API Reference - Home


data fields

A field's definition specifies the name, type and options for a record's field value. It provides initial values and validation. A field can be included in definitions and classes.

The returned dictionary with fields uses the global identifier (gid) as a key.

When you make changes to a field, you'll get a working copy. This is a temporary work in progress, where you make changes to a field without committing them yet (the original field is still active, and users will not see the work-in-progress changes yet). Once you're happy with the updated field, you can commit it (updating all definitions and classes that include it), or save it as a new field, that can then be used by other definitions and classes. If you're unhappy instead, you can revert it and you'll get the unmodified field again.

Field data

{
    ,
    "data": {
        "fields": {
            "99102ad0-cc00-4c50-aec6-24dfbba230e4": {
                "gid": "99102ad0-cc00-4c50-aec6-24dfbba230e4",
                "original": null,
                "name": "description",
                "label": {
                    "nl": "Omschrijving",
                    "en": "Description"
                },
                "type": "text",
                "options": {},
                "is_localized": true,
                "is_required": false,
                "initial": {
                    "nl": "",
                    "en": ""
                },
                "unit": null,
                "metadata": {},
                "is_new": false,
                "is_working_copy": false
            }
        }
    }
}

Field properties

gid global identifier
original for working copies, this points to the orignal class gid
name name to be used in code, should be variable-name compatible (letters, numbers, underscores - no dashes, spaces, punctuation)
label a localized label
type a types defines the sort of values you can enter, described below
options each type has additional validation options, such as minimum value - they are described below
is_localized should the value be localized
is_required warn if there is no value entered for this field
initial an initial value for the field for new records
unit a unit like 'kg' or 'm', for numeric values
metadata a dictionary of user-definable metadata fields, see metadata
is_new indicates a newly created field that has never been committed.
is_working_copy indicates a new or modified field that has not been committed.

Types

text generic text, line breaks are allowed
textline a single line of text
textlist multiple lines of text, each line has a similar meaning - think bullet points
number an integer number
decimal a fractional number
boolean a toggle, yes/no value
record a reference to another record
recordlist multiple references to other records
image a reference to an image asset
imagelist multiple references to image assets
file a reference to a file asset
filelist multiple references to file assets
code a text field with a special format, e.g. for json or xml data
barcode a barcode field
fieldpicker a field that selects a field
class a field with nested fields from a specific class
classlist a field with a list of items that have fields from a specific class

Options

min a minimum value - for number and decimal
max a maximum value - for number and decimal
decimals the number of decimal places - for decimal
min_items a minimum number of entries - for textlist, recordlist, imagelist, and filelist
max_items a maximum number of entries - for textlist, recordlist, imagelist, and filelist
min_length a minimum number of characters - for text and textline
max_length a maximum number of characters - for text and textline
values a list of accepted values (keys, with optional labels for each locale) - for textline and textlist
value_labels a boolean indicating keys-only or keys-with-labels for the values - for textline and textlist, where values is set
restrict_to_values only allow input from the list of accepted values - for textline and textlist, where values is set
format specifies the type of barcode, we support CODE-39, CODE-128, DATAMATRIX, EAN-8, EAN-13, I2OF5, PDF417-TEXT, QR, and UPC-A
class the class that specifies the nested fields - for class and classlist
folder the parent folder (asset) for upload - for image, imagelist, file, and filelist

The values option is a list of accepted values, each value has a key and labels. Labels will be set to the key if value_labels is off. The initial value and the record field values use the key to store the value.

{
    ,
    "values": [
        {
            "key": "orange",
            "nl": "Oranje",
            "en": "Orange"
        },
        {
            "key": "yellow",
            "nl": "Geel",
            "en": "Yellow"
        },
    ],
    "value_labels": true,
    "restrict_to_values": false
}