IRdsDictionaryInstance.CreateElementData

Fore Syntax

CreateElementData: IRdsDictionaryElementData;

Fore.NET Syntax

CreateElementData: Prognoz.Platform.Interop.Rds.IRdsDictionaryElementData;

Description

The CreateElementData method creates an object that contains data of element attributes of the MDM dictionary.

Fore Example

Executing the example requires that the repository contains an MDM repository with the MDM_REPO identifier. This repository must contain an MDM dictionary with the MDM_DICT identifier. The dictionary contains a Boolean custom attribute with the ACTUAL identifier.

Add links to the Metabase, Rds system assemblies.

Sub UserProc;
Var
    MB: IMetabase;
    MdmKey: Integer;
    Dict: IRdsDictionary;
    DictInst: IRdsDictionaryInstance;
    Data: IRdsDictionaryElementData;
    Attr: IRDsAttributes;
    Elements: IRdsDictionaryElements;
    Key: Integer;
Begin
    MB := MetabaseClass.Active;
    MdmKey := MB.ItemById(
"MDM_REPO").Key;
    Dict := MB.ItemByIdNamespace(
"MDM_DICT", MdmKey).Bind As IRdsDictionary;
    
// Open MDM dictionary
    DictInst := Dict.Open(Null);
    DictInst.FetchAll := 
True;
    
// Create a dictionary element
    Data := DictInst.CreateElementData;
    Attr := Dict.Attributes;
    Data.Attribute(Attr.Name.Key) := 
"New element";
    Data.Attribute(Attr.FindById(
"ACTUAL").Key) := True;
    Elements := DictInst.Elements;
    
// Add created element to the dictionary
    Key := DictInst.Insert(Elements.Root, Data);
End Sub UserProc;

Example execution result: a new element named New Element is added to the MDM dictionary, value of the ACTUAL attribute is True. The Key variable contains a key of created element.

Fore.NET Example

Executing the example requires that the repository contains an MDM repository with the MDM_REPO identifier. This repository must contain an MDM dictionary with the MDM_DICT identifier. The dictionary contains a Boolean custom attribute with the ACTUAL identifier.

Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MdmKey, Key: uinteger;
    Dict: IRdsDictionary;
    DictInst: IRdsDictionaryInstance;
    Data: IRdsDictionaryElementData;
    Attr: IRDsAttributes;
    Elements: IRdsDictionaryElements;
Begin
    MB := Params.Metabase;
    MdmKey := MB.ItemById["MDM_REPO"].Key;
    Dict := MB.ItemByIdNamespace["MDM_DICT", MdmKey].Bind() As IRdsDictionary;
    // Open MDM dictionary
    DictInst := Dict.Open(Null);
    DictInst.FetchAll := True;
    // Create a dictionary element
    Data := DictInst.CreateElementData();
    Attr := Dict.Attributes;
    Data.Attribute[Attr.Name.Key] := "New element";
    Data.Attribute[Attr.FindById("ACTUAL").Key] := True;
    Elements := DictInst.Elements;
    // Add created element to the dictionary
    Key := DictInst.Insert(Elements.Root, Data);
End Sub;

Example execution result: a new element named New element is added to the MDM dictionary, value of the ACTUAL attribute is True. The Key variable contains a key of created element.

See also:

IRdsDictionaryInstance