Custom fields
Custom fields can be added to all entities in Unimicro. To create a custom field you must use the "custom-fields" route to first define the field, and then activate it.
A custom field consists of a name, model and a datatype.
Example:
{
"Name": "EksternLagerbeholdning",
"ModelID": 117,
"DataType": "258efb7d-5884-4329-8905-f2ac784267c8",
"Nullable": true
}
Model and datatype are reference-fields and therefore has to be "looked up" before use.
Fetching available datatypes:
/api/biz/valuelists?expand=items&filter=code eq 'customfieldsqltypes'&hateoas=false
[{
"Code": "customfieldsqltypes",
"Description": "Datatypes for userdefined fields",
"ID": 3,
"Items": [{
"Code": "bf049ca6-42e2-4ee1-882a-43ff8d986ce8",
"Description": "Text limited to 255 characters",
"ID": 90,
"Name": "Small text field"
}, {
"Code": "f637df20-26dc-4419-9448-d9d9bcd839d5",
"Description": "Text field, unlimited number of characters",
"ID": 91,
"Index": 0,
"Name": "Text"
}, {
"Code": "1c396ebd-f770-498b-905b-47384f8e49cb",
"Description": "Whole number",
"ID": 92,
"Index": 0,
"Name": "Number"
}, {
"Code": "258efb7d-5884-4329-8905-f2ac784267c8",
"Description": "",
"ID": 93,
"Index": 0,
"Name": "Money"
}
]
}
]
Fetching details about a model:
The endpoint "models" contains details about all entities in the system. To get the ID of the desired model you can do a query to fetch exactly one model
/api/biz/models?filter=name eq 'product'
[{
"Admin": false,
"Description": null,
"ID": 117,
"Label": "Product",
"LabelPlural": null,
"Name": "Product",
"Shared": false,
}
]
Creating a custom field
POST /api/biz/custom-fields
Example body:
{
"DataType": "258efb7d-5884-4329-8905-f2ac784267c8",
"ModelID": 117,
"Name": "EksternLagerbeholdning",
"Nullable": true
}
Example response:
{
"ID": 1,
"Name": "EksternLagerbeholdning",
"Nullable": true,
"DataType": "258efb7d-5884-4329-8905-f2ac784267c8",
"ModelID": 117,
"StatusCode": 110100
}
Activate the custom-field:
POST /api/biz/custom-fields/1?action=activate
Response: "200 - OK" indicates that the custom field has been activated and is ready for use.
After the field has been created and activated:
The custom field will have a prefix with "Custom" and will be located in the "CustomValues" subentity on the model you add the custom field to.
Product example:
GET /api/biz/products/123
{
"ID": 123,
"CustomValues": {
"CustomEksternLagerbeholdning": null
}
}