Schema-Design Guideline
How to handle changes of critical schema elements
Changing the technical name of an objecttype or an objecttype element
When changing the technical name of an objecttype or objecttype element, there are several places where a reference to this name could exist and that do not get updated automatically. The following list shows what needs to be checked and/or done manually to restore consistency.
- Check all form-scripts for references
- Check custom action scripts for references
- Check all BPM model scripts and/or variables for references
- Check the title and/or description patterns of the objecttype for references
- Check references of other objecttypes to this one
- Check all operations with eSQL parameter for references (e.g. archiving or deletion operations)
- Check for references in custom microservices and/or external tools (talend-jobs, import / export tools, SAP (ArchiveLink, Data2ECM, Jump2*))
- Check templates for consistency
- Reindexing the objecttype to elasticsearch is mandatory (metadata only suffies).
If the objecttype is a contextfolder and elements are used as contextfolder fields, all objecttypes that can be a child of this contextfolder-type must be reindexed as well.
If there are references of other objecttypes to this one, they have to be reindexed as well.
If the objecttype is an abstract type, all implementing objecttypes and their children need to be reindexed.
Changing the persistence name of an objecttype or an objecttype element
When changing the persistence name of an objecttype or an objecttype element, during deployment the new database table (objecttype) or column (objecttype element) is created or if it already exists it is used for this objecttype or -element.
If instances of this objecttype already existed and the persistence name of the objecttype was changed, the metadata will now be unavailable (since it is in the table with the previous name) and the corresponding objects will be in an inconsistent state.
If the persistence name of an objecttype element was changed the existing objects will still be valid but the affected element will have no metadata anymore.
To avoid this
- Do not change the persistence name of objecttypes or objecttype elements if not absolutely necessary.
- If possible, hard delete all objects of this objecttype before making the change
- At your own risk - not officially supported:
Delete the new table or column and rename the previous one to this (before any new objects are created!).
In case of an objecttype element with a type change: A conversion from the previous datatype to the new one needs to be manually conducted.