Destination: ICubeModelDestination;
Свойство Destination определяет куб-приемник данных для загрузки.
Для выполнения примера предполагается наличие двух кубов в репозитории. Первый куб будет использоваться в качестве источника, второй - в качестве приемника данных. Идентификаторы кубов "Cube_1" и "Cube_2".
Sub Main;
Var
MB: IMetabase;
CrInf: IMetabaseObjectCreateInfo;
MObj: IMetabaseObject;
Cube: ICubeModel;
CubeDist: ICubeModelDestination;
CubLoad: ICubeLoader;
FixInfo: ICubeLoaderFixInfo;
DimFix: ICubeLoaderDimensionFix;
DimsSource: ICubeModelDimensions;
Dim, Dim1: IDimensionModel;
MapInfo: ICubeLoaderMapInfo;
MapItem: ICubeLoaderMapItem;
i: Integer;
Begin
MB := MetabaseClass.Active;
CrInf := Mb.CreateCreateInfo;
CrInf.ClassId := MetabaseObjectClass.KE_CLASS_CUBELOADER;
CrInf.Id := "Cube_Load";
CrInf.Name := "Cube_Load";
CrInf.Permanent := False;
MObj := Mb.CreateObject(CrInf).Edit;
CubLoad := MObj As ICubeLoader;
//куб-источник
Cube := MB.ItemById("Cube_1").Bind As ICubeModel;
CubeDist := Cube.Destinations.DefaultDestination;
CubLoad.Source := CubeDist;
//измерения куба-источника, среди которых будут искаться измерения куба-приемника для связи
DimsSource := CubeDist.Dimensions;
//куб-приемник
Cube := MB.ItemById("Cube_2").Bind As ICubeModel;
CubeDist := Cube.Destinations.DefaultDestination;
CubLoad.Destination := CubeDist;
//привязка измерений
MapInfo := CubLoad.MapInfo;
For i := 0 To MapInfo.Count - 1 Do
MapItem := MapInfo.Item(i);
Dim := MapItem.Dimension;
Dim1 := DimsSource.FindById((Dim As IMetabaseObject).Id);
If Dim1 <> Null Then
MapItem.MapDimension := Dim1;
MapItem.MapIndex := Dim1.Indexes.PrimaryIndex;
MapItem.DimIndex := Dim.Indexes.PrimaryIndex;
MapItem.Method := CubeLoaderMapMethod.ByIndex;
End If;
End For;
//фиксация измерений
FixInfo := CubLoad.FixInfo;
For Each DimFix In CubLoad.FixInfo Do
DimFix.Operation := BasicAggregatorOperation.ActualMean;
DimFix.Selection.SelectAll;
End For;
MObj.Save;
End Sub Main;
После выполнения примера в корневом каталоге репозитория будет создан объект - Загрузчик в куб. В качестве куба-источника используется куб с идентификатором "Cube_1", в качестве куба-приемника - куб с идентификатором "Cube_2". Одинаковые измерения, имеющиеся в каждом кубе будут связаны по индексу. Измерения, имеющиеся в кубе-источнике, но отсутствующие в кубе-приемнике будут зафиксированы.
См. также: