SourceKey: Integer;
Свойство SourceKey определяет ключ атрибута показателей копируемой базы, являющейся источником данных для атрибута показателей базы-копии.
Привязка между атрибутом показателей копируемой базы и атрибутом показателей базы-копии может осуществляться несколькими способами:
используя идентификатор атрибута: свойство ICubeMetaUpdateAttributeRemapping.Source;
используя ключи атрибутов: свойство SourceKey;
используя ключ и идентификатор атрибута одновременно.
Если для привязки используется лишь идентификатор атрибута, то в процессе копирования могут возникнуть ошибки, если идентификатор атрибута в базе данных временных рядов был изменен. Более надежной является привязка с использованием ключа атрибута.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «FC», содержащего пользовательский атрибут показателей «COUNTRY». Также должна присутствовать база данных временных рядов с идентификатором «FC_COPY», содержащая пользовательский атрибут показателей «A_COUNTRY». Данные атрибуты должны иметь одинаковые характеристики. Также необходимо добавить ссылки на системные сборки «Cubes», «Metabase», «Rds».
Sub Button6OnClick(Sender: Object; Args: IMouseEventArgs);
Var
mb: IMetabase;
CrInfo: IMetabaseObjectCreateInfo;
Obj: IMetabaseObject;
ObjDesc: IMetabaseObjectDescriptor;
RubUpdateEx: ICubeMetaUpdateEx;
Rub: IRubricator;
AttrRemapping: ICubeMetaUpdateAttributeRemappings;
AttrR: ICubeMetaUpdateAttributeRemapping;
FactsDict: IMetaDictionary;
Attr: IMetaAttribute;
Begin
mb := MetabaseClass.Active;
CrInfo := Mb.CreateCreateInfo;
CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_CUBEMETAUPDATE;
CrInfo.Id := Mb.GenerateId("Cube_Meta_Upd");
CrInfo.Permanent := True;
CrInfo.Parent := Mb.Root;
ObjDesc := Mb.CreateObject(CrInfo);
Obj := ObjDesc.Edit;
RubUpdateEx := Obj As ICubeMetaUpdateEx;
Rub := mb.ItemById("FC").Bind As IRubricator;
RubUpdateEx.Rubricator := Rub;
RubUpdateEx.Metabase := Mb;
RubUpdateEx.RdsDatabase := Rub.Database;
RubUpdateEx.TargetRubricator := mb.ItemById("FC_COPY").Bind As IRubricator;
AttrRemapping := RubUpdateEx.MetafactsAttributeRemappings;
AttrR := AttrRemapping.FindById("A_COUNTRY");
AttrR.Source := "COUNTRY";
FactsDict := Rub.Facts;
Attr := FactsDict.Attributes.FindById("COUNTRY");
AttrR.SourceKey := Attr.Key;
AttrR.Type := CubeMetaUpdateAttributeRemappingType.Source;
Obj.Save;
End Sub Button6OnClick;
После выполнения примера будет задано соответствие по ключу и идентификатору между атрибутами «A_COUNTRY» и «COUNTRY»: при копировании данных из базы «FC» в базу «FC_COPY» данные атрибута «COUNTRY» будут скопированы в атрибут «A_COUNTRY». Объект, содержащий настройки копирования, будет сохранен с идентификатором «Cube_Meta_Upd».
См. также: