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~
✅: WDoc for storing BLOB metadataThis is the only WRecord that can be referenced from CDocs
CDocs reference BLOBs by fields of the
blob
typeblob
type is implemented as a ref to WDoc record
~tuc.HandleBLOBReferences~
✅: Handling fields of theblob
type by command processor
CP: tuc.HandleBLOBReferences
Validate that every modified record its
blob
fields satisifies the following conditions:~err.BLOBOwnerRecordIDMustBeEmpty~
✅: Target BLOB.OwnerRecordID must be empty~err.BLOBOwnerRecordMismatch~
✅: BLOB.OwnerRecord does not match the record QName~err.BLOBOwnerRecordFieldMismatch~
✅: BLOB.OwnerRecordField does not match the record field name~err.DuplicateBLOBReference~
✅: Multiple records in CUD collection cannot refer to the same BLOB
~cmp.UpdateBLOBOwnership~
✅: Operator of the CP that updates the BLOB.OwnerRecordID and BLOB.OwnerRecordField fields in the BLOB table
Last updated
Was this helpful?