IDimAttribute.DataDomain

Fore Syntax

DataDomain: DbDataDomain;

Fore.NET Syntax

DataDomain: Prognoz.Platform.Interop.Dal.DbDataDomain;

Description

The DataDomain property returns data type to store multibyte information in attribute.

Comments

If the DataDomain property is set to DbDataDomain.Memo and the IDimAttribute.DataType property is set to DbDataType.String, the attribute is of the Long Text type.

On working with the Long Text attribute keep in mind the following constraints:

DataDomain can be set to DbDataDomain.Memo or DbDataDomain.None for table MDM dictionaries and composite table MDM dictionaries.

Fore Example

Executing the example requires that repository contains table MDM dictionary with the TMDMDICT_MEMOTMDMDICT_MEMO identifier.

To execute the example, add links to the Dal, Dimensions, Metabase system assemblies.

Sub UserProc;
Var
    mb: IMetabase;
    dimension: IDimensionModel;
    attribute: IDimAttribute;
    attributes: IDimAttributes;
    i: Integer;
Begin
    // Get current repository
    mb := MetabaseClass.Active;
    // Get table MDM dictionary
    dimension := mb.ItemById("TMDMDICT_MEMO").Bind As IDimensionModel;
    // Get dictionary attributes
    attributes := dimension.Attributes;
    // Parse obtained attributes
    For i := 0 To attributes.Count - 1 Do
        attribute := attributes.Item(i);
        // If the attribute has the Long Text type display information about it
        If (attribute.DataDomain = DbDataDomain.Memo) And
            (attribute.DataType = DbDataType.String) Then
            Debug.WriteLine("Name: " + attribute.Name);
            Debug.WriteLine("Identifier: " + attribute.Id);
            Debug.WriteLine("Key: " + attribute.Key.ToString);
        End If;
    End For;
End Sub UserProc;

After executing the example the console window displays information about the Long Text attributes, if they are present in the MDM dictionary.

Fore.NET Example

The requirements and result of the Fore.NET example execution match with those in the Fore Example.

Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Dimensions;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    dimension: IDimensionModel;
    attribute: IDimAttribute;
    attributes: IDimAttributes;
    i: Integer;
Begin
    // Get current repository
    mb := Params.Metabase;
    // Get table MDM dictionary
    dimension := mb.ItemById["TMDMDICT_MEMO"].Bind() As IDimensionModel;
    // Get dictionary attributes
    attributes := dimension.Attributes;
    // Parse obtained attributes
    For i := 0 To attributes.Count - 1 Do
        attribute := attributes.Item[i];
        // If the attribute has the Long Text type display information about it
        If (attribute.DataDomain = DbDataDomain.dddMemo) And
            (attribute.DataType = DbDataType.ddtString) Then
            System.Diagnostics.Debug.WriteLine("Name: " + attribute.Name);
            System.Diagnostics.Debug.WriteLine("Identifier: " + attribute.Id);
            System.Diagnostics.Debug.WriteLine("Key: " + attribute.Key.ToString());
        End If;
    End For;
End Sub;

See also:

IDimAttribute