ICubeInstanceDestinationExecutor.Callback

Синтаксис

Callback: ICubeCallback;

Описание

Свойство Callback определяет объект, осуществляющий обработку ошибок, которые могут возникнуть при расчете отстроенного куба.

Пример

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «OBJ_RUBRICATOR». В данной базе должен присутствовать уникальный атрибут, ссылающийся на справочник с идентификатором «DICT_IND», расположенный в репозитории НСИ с идентификатором «RDS_REPO».

Class CubeCallback: Object, ICubeCallback

Public Sub OnCallback(Argument: ICubeCallbackArgument);

Begin

Debug.WriteLine("Ошибка: " + Argument.Error.Message);

Debug.WriteLine("Идентификатор ошибки: " + Argument.Error.MessageID.ToString);

Debug.WriteLine("Источник: " + Argument.Error.Source);

Argument.IgnoreError := True;

End Sub OnCallback;

 

Public Function get_Argument: ICubeCallbackArgument;

Begin

Return Null;

End Function get_Argument;

End Class CubeCallback;

Sub Main;

Var

MB: IMetabase;

RubDesc: IMetabaseObjectDescriptor;

RubrIn: IRubricatorInstance;

Cub: ICubeInstance;

Dest: ICubeInstanceDestination;

Sels: IDimSelectionSet;

Sel: IDimSelection;

DictDescr: IMetabaseObjectDescriptor;

DictInst: IDimInstance;

Exec: ICubeInstanceDestinationExecutor;

Mat: IMatrix;

Ite: IMatrixIterator;

Begin

MB := MetabaseClass.Active;

RubDesc := MB.ItemById("OBJ_RUBRICATOR");

RubrIn := RubDesc.Open(Null) As IRubricatorInstance;

Cub := RubrIn As ICubeInstance;

Dest := Cub.Destinations.DefaultDestination;

Sels := Dest.CreateDimSelectionSet;

Sels.Clear;

Sel := Sels.Add(RubrIn.CalendarLevelsDimension);

Sel.SelectAll;

DictDescr := MB.ItemByIdNamespace("DICT_IND", MB.ItemById("RDS_REPO").Key);

DictInst := DictDescr.Open(Null) As IDimInstance;

Sel := Sels.Add(DictInst);

Sel.SelectElement(0, False);

Exec := Dest.CreateExecutor;

Exec.WithoutScaling := True;

Exec.ScenarioKey := -1;

Exec.Callback := New CubeCallback.Create;

Exec.PrepareExecute(Sels);

Exec.PerformExecute;

Mat := Exec.Matrix;

Ite := Mat.CreateIterator;

Ite.Move(IteratorDirection.First);

While Ite.Valid Do

Debug.WriteLine(Ite.Value);

Ite.Move(IteratorDirection.Next);

End While;

End Sub Main;

После выполнения примера данные базы данных временных рядов будут представлены как данные отстроенного куба. В окно консоли будут выведены рассчитанные данные показателей по указанной отметке. Ошибки, которые могут возникнуть, будут обрабатываться в пользовательском классе «CubeCallback».

См. также:

ICubeInstanceDestinationExecutor