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

class %iKnow.Queries.MetadataAPI extends %iKnow.Queries.MetadataI, %iKnow.Queries.AbstractAPI

This is the default implementation for the %iKnow.Queries.MetadataI interface and the central place to manage and query metadata fields and values.

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
14 24


Summary

Methods
%%OIDGet %AddToSaveSet %ClassIsLatestVersion %ClassName
%ConstructClone %DispatchClassMethod %DispatchGetModified %DispatchGetProperty
%DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty
%Extends %GetParameter %IsA %IsModified
%New %NormalizeObject %ObjectModified %OriginalNamespace
%PackageName %RemoveFromSaveSet %SerializeObject %SetModified
%ValidateObject AddField AddListOfValues AddLovValue
EndBatch GetFieldId GetFieldValues GetFieldValuesById
GetFields GetLovValues GetLovs GetValue
GetValueById GetValues GetValuesById RemoveField
RemoveFieldById SetValue SetValueById StartBatch
UpdateField UpdateFieldById


Parameters

• parameter GetFieldValuesByIdRT = "value:%String";
• parameter GetFieldValuesRT = "value:%String";
• parameter GetFieldsRT = "mdFieldId:%Integer,fieldName:%String,supportedOperators:%List,dataType:%String,buildBitstring:%Boolean,caseSensitive:%Boolean,lovId:%Integer,validateLov:%Boolean,hidden:%Boolean";
• parameter GetLovValuesRT = "value:%String";
• parameter GetLovsRT = "lovId:%Integer,name:%String,autoExtend:%Boolean";
• parameter GetValuesByIdRT = "mdFieldId:%Integer,fieldName:%String,value:%String";
• parameter GetValuesRT = "mdFieldId:%Integer,fieldName:%String,value:%String";

Methods

• classmethod AddField(domainId As %Integer, fieldName As %String, supportedOperators As %List = $lb($$$MDOPEQUAL), dataType As %String = $$$MDDTSTRING, buildBitstring As %Boolean = 0, caseSensitive As %Boolean = 0, lovId As %Integer = -1, validateLov As %Boolean = 1, hidden As %Boolean = 0, Output sc As %Status) 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 AddListOfValues(domainId As %Integer, lovName As %String, autoExtend As %Boolean = 1, Output sc As %Status) as %Integer

Adds a List Of Values to the domain, which can then be used as a list of allowable values for one or more metadata fields.

• classmethod AddLovValue(domainId As %Integer, lovId As %Integer, value As %String, ByRef rank As %Integer = -1) as %Status
Adds a new value to an existing List Of Values
• classmethod EndBatch(domainId As %Integer) as %Status

Ends a metadata batch. See StartBatch for more details.

• classmethod GetFieldId(domainId As %Integer, fieldName As %String, Output sc As %Status) as %Integer
Returns the metadata field ID corresponding to the supplied name, or "" if none exists in this domain.
• classmethod GetFieldValues(ByRef result, domainId As %Integer, fieldName As %String, page As %Integer = 1, pageSize As %Integer = 10) as %Status
Returns all the distinct values currently in use for a given metadata field (by name).
• classmethod GetFieldValuesById(ByRef result, domainId As %Integer, mdFieldId As %Integer, page As %Integer = 1, pageSize As %Integer = 10) as %Status
Returns all the distinct values currently in use for a given metadata field (by ID).
• classmethod GetFields(ByRef result As %Integer, domainId As %Integer, includeHidden As %Boolean = 0) as %Status

Returns all field definitions (including their properties) for the given domain.

Setting includeHidden to true will also return any metadata fields marked as 'hidden'.

• classmethod GetLovValues(ByRef result As %Integer, domainId As %Integer, lovId As %Integer) as %Status
Returns all the allowed values for a given metadata LOV.
• classmethod GetLovs(ByRef result, domainId As %Integer, page As %Integer = 1, pageSize As %Integer = 10) as %Status
Returns a list of all the LOVs (List of Values) registered for this domain.
• classmethod GetValue(domainId As %Integer, fieldName As %String, externalId As %String, Output sc As %Status) as %String
Returns the actual value for a given metadata field (by name) and source (by External ID).
• classmethod GetValueById(domainId As %Integer, fieldId As %Integer, srcId As %Integer, Output sc As %Status) as %String
Returns the actual value for a given metadata field (by ID) and source (by Source ID).
• classmethod GetValues(ByRef result As %Integer, domainId As %Integer, externalId As %String, includeHidden As %Boolean = 0) as %Status

Returns the actual metadata values for the given source (by External ID).

Setting includeHidden to true will also return the values for hidden metadata fields.

• classmethod GetValuesById(ByRef result As %Integer, domainId As %Integer, srcId As %Integer, includeHidden As %Boolean = 0) as %Status

Returns the actual metadata values for the given source (by Source ID).

Setting includeHidden to true will also return the values for hidden metadata fields.

• classmethod RemoveField(domainId As %Integer, fieldName As %String) as %Status
Removes a metadata field (by name) from the domain, including all references by existing sources.
• classmethod RemoveFieldById(domainId As %Integer, fieldId As %Integer) as %Status
Removes a metadata field (by ID) from the domain, including all references by existing sources.
• 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). Explicitly setting a value to "" (null/empty string) will erase the current value.

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.

• classmethod UpdateField(domainId As %Integer, fieldName As %String, supportedOperators As %List = "", buildBitstring As %Integer = -1, hidden As %Integer = -1, lovId As %Integer = -2, validateLov As %Integer = -1) as %Status

Updates the properties for a given metadata field (by name). See also AddField.

Specifying a "" for the supportedOperators will leave the current value for that property. Similarly, specifying -1 for buildBitString, hidden and validateLov or -2 for lovId will leave their respective values unmodified. Setting lovId to -1 will unset the LOV for this field.

• classmethod UpdateFieldById(domainId As %Integer, fieldId As %Integer, supportedOperators As %List = "", buildBitstring As %Integer = -1, hidden As %Integer = -1, lovId As %Integer = -2, validateLov As %Integer = -1) as %Status

Updates the properties for a given metadata field (by ID). See also AddField.

Specifying a "" for the supportedOperators will leave the current value for that property. Similarly, specifying -1 for buildBitString, hidden and validateLov or -2 for lovId will leave their respective values unmodified. Setting lovId to -1 will unset the LOV for this field.