BLOBS
Working with BLOBs (Binary Large Objects)
Use cases
Technical design
Definitions
- BLOB.OwnerRecord: QName of the record that owns the BLOB
- BLOB.OwnerRecordField: Name of the field that owns the BLOB
- CUD collection: Collection of CUDs (Create, Update, Deactivate) that are executed in the same transaction
Components overview
~wdoc.sys.Workspace.BLOB~covrd1✅: WDoc for storing BLOB metadata- This is the only WRecord that can be referenced from CDocs
- CDocs reference BLOBs by fields of the
blobtype blobtype is implemented as a ref to WDoc record
~tuc.HandleBLOBReferences~covrd2✅: Handling fields of theblobtype by command processor
CP: tuc.HandleBLOBReferences
- Validate that every modified record its
blobfields satisifies the following conditions:~err.BLOBOwnerRecordIDMustBeEmpty~covrd3✅: Target BLOB.OwnerRecordID must be empty~err.BLOBOwnerRecordMismatch~covrd4✅: BLOB.OwnerRecord does not match the record QName~err.BLOBOwnerRecordFieldMismatch~covrd5✅: BLOB.OwnerRecordField does not match the record field name~err.DuplicateBLOBReference~covrd6✅: Multiple records in CUD collection cannot refer to the same BLOB
~cmp.UpdateBLOBOwnership~covrd7✅: Operator of the CP that updates the BLOB.OwnerRecordID and BLOB.OwnerRecordField fields in the BLOB table