Importing content types in iCL Portal
After creating JSON files and integrating them into the workbook you have to upload these content types into the iCL Portal as well.
The iCL Portal stores all the created, uploaded and updated data transmitted by the iCL Filler. Additionally, with the proper permissions, you are able to see and edit the content types and content items.
On each iCL Portal tenant, each content type id can only exist once, so you have to keep them unique by creating a new guid for a new content type. You can use the same content type on different tenants.
Uploading content types to the iCL Portalβ
If you have administration permissions, you are able to upload content types into the iCL Portal.
To upload a content type, you navigate to Settings
- Content Types
.
There you can add new or update existing content types via drag&drop or by pressing the upload button.
Newly uploaded content types will get a creation date.
The 'Modified' column shows the date of the last update of that content type.
You have to clear the browser cache to actually see the newly uploaded content type in the Content types
section. To do so, press CTRL
+ F5
.
Errors while uploading a content typeβ
There can be reasons, why the upload of a content type may fail - here is a list of the most common issues:
Issue | Solution |
---|---|
syntax errors in the json file | Copy the content of the JSON into a JSON validator in your browser to see if the syntax of the file is valid. Many times, there is a missing closing bracket or semicolon, or it's wrongly placed. |
title field | The field, which is used by the titleFieldName has to be "isRequired": true and must be of type text. |
content type reference | If you create a reference to another content type, you need a field of "type": "ContentItem" , which is targeted in the reference section. |
Changing a content typeβ
If you want to update an existing content type, the way of updating it strongly depends on the changes you make.
If you just add new fields, create new relations, change titles or a titlefieldexpression
, you can do this by uploading the newer CT in the Content types
section of the Settings of iCL Portal.
Certain changes may cause a potential loss of data and are therefore prohibited by the UI. For these changes, you have to use the REST API. For further details on which changes can cause data loss and how to handle these cases, visit the content type api documentation here.
What happens, when a content type is changedβ
When a content type is changed, this never has a direct impact on any of the items of that type. It merely tells the iCL system how to handle items of that type in the future.
So when you e.g. add a titleFieldExpression
to a content type, iCL does not update all items of that type to use the new title.
Rather, only the next time when you actually update an item of that type, the `titleFieldExpression will be used to "calculate" the new title of it.
This is also the case for any other change:
- Changing a field type - the values are still stored in the old type, but when they are read, the system tries to convert them in place. If it fails, it clears the field.
- Removing a field - the values are still stored, but are ignored when reading/saving. So the value of the field will only be deleted the next time you save (this allows for re-adding a deleted field and magically restore the values in case the field was erroneously removed).
- Changing the βbuiltInFieldβ attribute (e.g. to map a field value of mon_identite to ExternalId) -
again, the next time an item is saved, the value of the custom field mon_identite is also applied to the ExternalId field.
Every content type change potentially affects all items of that type. However, we do still have users in the field using our app and also updating content items. So we cannot just change the content items in the background, as this would potentially cause synchronization conflicts and data loss.