Class Reference
%iKnow.Queries.MetadataI
Server:basexml
Instance:SOAXML
User:UnknownUser
 
-
  [BASEXML] >  [%iKnow] >  [Queries] >  [MetadataI]
Private  Storage

abstract class %iKnow.Queries.MetadataI

This is the interface to interact with metadata as expected by other parts of the iKnow libraries. A simple but flexible implementation is provided through %iKnow.Queries.MetadataAPI, but customers can choose to develop their own or wire to an existing metadata infrastructure by implementing the interface specified in this class.

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
7


Summary

Methods
AddField EndBatch GetFieldId SetValue SetValueById
StartBatch

Subclasses
%iKnow.Queries.MetadataAPI

Methods

• classmethod AddField(domainId As %Integer, fieldName As %String, supportedOperators As %List, dataType As %String = $$$MDDTSTRING, buildBitstring As %Boolean = 0, caseSensitive As %Boolean = 0, lovId As %Integer = -1, validateLov As %Boolean = 1, hidden As %Boolean = 0) as %Integer

Adds a field definition with the given name and properties.

  • The supportedOperators parameter specifies which operations (such as $$$MDOPEQUAL) will be available for filtering criteria
  • If buildBitstring is true, the system will build a bitstring representation of all sources for every distinct metadata value, otherwise it will have entries for every source value and source.
  • For dataType, choose either $$$MDDTSTRING, $$$MDDTNUMBER or $$$MDDTDATE ($horolog format)
  • If buildBitstring is true, the system will build a bitstring representation of all sources for every distinct metadata value, otherwise it will have entries for every source value and source.
  • If dataType is $$$MDDTSTRING, caseSensitive controls whether or not string values should be treated as case-sensitive.
  • The lovId and validateLov parameters define wheter a List Of Values is available for this metadata field and whether input values should be verified against this list. See also AddListOfValues.
  • If hidden is set to true, the field will by default not appear in metadata field and value lists.
• classmethod EndBatch(domainId As %Integer) as %Status

Ends a metadata batch. See StartBatch for more details.

• classmethod GetFieldId(domainId As %Integer, fieldName As %String) as %Integer
Returns the metadata field ID corresponding to the supplied name, or "" if none exists in this domain.
• classmethod SetValue(domainId As %Integer, fieldName As %String, externalId As %String, value As %String) as %Status

Sets (or replaces if it exists) the value for a given metadata field (by name) for a given source (by External ID).

Values for fields of type $$$MDDTSTRING are normalized and stripped of whitespace and control characters at the beginning and end of the string.

• classmethod SetValueById(domainId As %Integer, fieldId As %Integer, srcId As %Integer, value As %String) as %Status

Sets (or replaces if it exists) the value for a given metadata field (by ID) for a given source (by Source ID).

Values for fields of type $$$MDDTSTRING are normalized and stripped of whitespace and control characters at the beginning and end of the string.

• classmethod StartBatch(domainId As %Integer) as %Status

Starts a 'batch' during which metadata values can be set. Some setting operations and index recalculations are optimized for batch processing.

NOTE: It is currently up to the user to make sure no metadata values are read during the batch and no values exist already (as replacing a value involves reading it). Reading metadata field values during a batch is not guaranteed to return correct results.