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 metadata

    • This is the only WRecord that can be referenced from CDocs

    • CDocs reference BLOBs by fields of the blob type

    • blob type is implemented as a ref to WDoc record

  • ~tuc.HandleBLOBReferences~✅: Handling fields of the blob 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?