Skip to content

Insert fails for list of references

Summary

Assume you have two RecordTypes Dataset and Event in your DB, whereby a Dataset can reference one or more Events. Inserting a crawled Dataset Record referencing a list of Events currently fails with

caosdb.exceptions.TransactionError: TransactionError: One or more entities are not qualified. None of them have been inserted/updated/deleted.
    +--| REASONS |--
    |  -> RECORD (id: -7, name: 'Random numbers created on a random autumn day in a random office') CAUSED     |EntityError: An obligatory property is missing.
    |  -> RECORD (id: -7, name: 'Random numbers created on a random autumn day in a random office') CAUSED     |EntityError
    |    +--| REASONS |--
    |    |  -> PROPERTY (id: 126, name: 'Event') CAUSED     |    |EntityError: This data type does not accept collections of values (e.g. Lists).
    |    +----------------
    +----------------

i.e., because of the wrong datatype

Expected Behavior

Should create a list of references

Actual Behavior

The above error

Steps to Reproduce the Problem

Use, e.g., the ZMT example.

Specifications

  • Version: dev versions of Crawler, Pylib, and Caosadvancedtools
  • Platform: all

Possible fixes

The datatype has to be set to LIST<EVENT> if a reference property with more than one value is detected.