Working with the Datamodel or How to work without transactions
The STATE datastream, present in all data objects are the key. To emulate a transaction, follow these steps:
- Ingest any new objects, with STATE=draft
- change the STATE of all involved objects with STATE=published to STATE=intermediate
- Perform all changes that must be performed
- Change the objects back to STATE=published. This will provoke a validation of the objects by the DOMS system. If the objects failed the validation, the STATE will not change
DOMS only try to enforce a structure on objects with STATE=published. By marking objects as intermediate, the system will disregard them, without losing the relations to them.