ICubeMetaUpdateDictionaryRemaping.SourceKey

Синтаксис

SourceKey: Integer;

Описание

Свойство SourceKey определяет ключ объекта-источника.

Пример

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «FC», содержащей пользовательские атрибуты показателей «COUNTRY» и «INDICATOR». Атрибуты должны быть уникальными и ссылаться на справочники. Также должен присутствовать репозиторий НСИ с идентификатором «RDS_REPO_COPY1», являющийся клоном репозитория НСИ для базы данных временных рядов.

Sub Main;

Var

mb: IMetabase;

RubUpdateEx: ICubeMetaUpdateEx;

Rub: IRubricator;

Progress: IMetabaseUpdateProgress;

CrInfo: IMetabaseObjectCreateInfo;

s: string;

DictRemapings: ICubeMetaUpdateDictionaryRemapings;

DictRemap: ICubeMetaUpdateDictionaryRemaping;

Attr: IMetaAttributes;

RepoCopy, SourceDict: IMetabaseObjectDescriptor;

Begin

mb := MetabaseClass.Active;

RubUpdateEx := New CubeMetaUpdateClass.Create As ICubeMetaUpdateEx;

Rub := mb.ItemById("FC").Bind As IRubricator;

RubUpdateEx.Rubricator := Rub;

RubUpdateEx.Metabase := Mb;

CrInfo := RubUpdateEx.CreateInfo;

CrInfo.Parent := mb.Root;

s := Mb.GenerateId("FC_COPY");

CrInfo.Id := s;

CrInfo.Name := s;

RepoCopy := mb.ItemById("RDS_REPO_COPY1");

RubUpdateEx.RdsDatabase := RepoCopy.Bind As IRdsDatabase;

DictRemapings := RubUpdateEx.DictionaryRemapings;

DictRemapings.Clear;

// Задаем соответствие для атрибута «COUNTRY»

DictRemap := DictRemapings.Add;

Attr := Rub.Facts.Attributes;

SourceDict := Attr.FindById("COUNTRY").ValuesObject;

DictRemap.SourceId := SourceDict.Id;

DictRemap.SourceKey := SourceDict.Key;

DictRemap.Target := mb.ItemByIdNamespace("DICT_CTR_COPY1", RepoCopy.Key);

// Задаем соответствие для атрибута «INDICATOR»

DictRemap := DictRemapings.Add;

SourceDict := Attr.FindById("INDICATOR").ValuesObject;

DictRemap.SourceId := SourceDict.Id;

DictRemap.SourceKey := SourceDict.Key;

DictRemap.Target := mb.ItemByIdNamespace("DICT_IND_COPY1", RepoCopy.Key);

// Задаем соответствие для единиц измерения

DictRemap := DictRemapings.Add;

SourceDict := Attr.FindByKind(MetaAttributeKind.Unit).ValuesObject;

DictRemap.SourceId := SourceDict.Id;

DictRemap.SourceKey := SourceDict.Key;

DictRemap.Target := mb.ItemByIdNamespace("UNITS_COPY1", RepoCopy.Key);

RubUpdateEx.Apply(Progress);

End Sub Main;

После выполнения примера в корневую папку репозитория будет скопирована базы данных временных рядов «FC». Идентификатор копии - «FC_COPY». Копия будет хранить данные в репозитории «RDS_REPO_COPY1». Для справочников данного репозитория и репозитория копируемой базы будут заданы соответствия.

См. также:

ICubeMetaUpdateDictionaryRemaping