Managed XML property

Hi,

we are setting up a local installation of OpenBIS and we love it. Thanks for your work!

While creating object types in the new admin interface, we noticed that we need a property type that stores an arbitrary number of tuples combining objects or strings with amounts, e.g.:
Material 1: 5g
Material 2: 100g
Material 3: 20g

Datatype-wise this might be realized via an XML property with the schema

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Tuples">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Tuple" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Material" type="xs:string"/>
              <xs:element name="Amount" type="xs:float"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

However, manually entering XML to the field like this seems inconvenient:

<Tuples>
  <Tuple>
    <Material>Material 1</Material>
    <Amount>5</Amount>
  </Tuple>
  ...
</Tuples>

Ideally, we want a dropdown menu for the objects filtered by object type and a real number next to it with a plus button to add more lines of such tuples. I tried implementing it as a managed property, but find only seemingly outdated information about it.

Could you point me towards the right direction for implementing such a feature? Are there alternatives to it?

Thank you for any answer!
Nils

Hi Nills,

I would discourage the usage of the managed properties, since we will be deprecating this functionality.

What you are looking for would be custom ELN UI extension for the sample form. It would be rendered on top of the existing form. You can implement UI component (e.g dropdown menu) that would set adequate properties, depending on your needs.

https://openbis.readthedocs.io/en/latest/software-developer-documentation/client-side-extensions/eln-lims-web-ui-extensions.html

This plugin may be used as inspiration on how to implement such an extension.

Best,
Adam