ICubeInstanceDestinationExecutor.PerformExecuteO

Syntax

PerformExecuteO(Options: Integer): Boolean;

Parameters

Options. Cube calculation parameters.

Description

The PerformExecuteO method calculates a cube in the specified mode.

Comments

As a value of the Options parameter, specify a value or a combination of values of the CubeInstanceDestinationExecutorOptions enumeration.

If the cube output matrix is calculated based on cached data (Options = CubeInstanceDestinationExecutorOptions.Cached), the further work with the obtained data should be executed using data read/change locks at application level. To use locks, cast the obtained Matrix matrix to the  IRWMutex  interface and use its methods to enable or disable the required lock.

Example

Executing the example requires that the repository contains a time series database with the FC_ RUBRICATOR identifier. This database must include a unique attribute that refers to the dictionary with the DICT_IND identifier stored in the MDM repository with the MDM_REPO identifier.

Sub UserProc;
Var
    MB: IMetabase;
    RubDesc: IMetabaseObjectDescriptor;
    RubrIn: IRubricatorInstance;
    Cub: ICubeInstance;
    Dest: ICubeInstanceDestination;
    Sels: IDimSelectionSet;
    Sel: IDimSelection;
    DictDescr: IMetabaseObjectDescriptor;
    DictInst: IDimInstance;
    Exec: ICubeInstanceDestinationExecutor;
    Mat: IMatrix;
    Iter: IMatrixIterator;
Begin
    MB := MetabaseClass.Active;
    RubDesc := MB.ItemById("FC_RUBRICATOR");
    RubrIn := RubDesc.Open(NullAs 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(NullAs IDimInstance;
    Sel := Sels.Add(DictInst);
    Sel.SelectElement(0False);
    Exec := Dest.CreateExecutor;
    Exec.ScenarioKey := -1;
    Exec.PrepareExecute(Sels);
    Exec.PerformExecuteO(CubeInstanceDestinationExecutorOptions.Reload);
    Mat := Exec.Matrix;
    Iter := Mat.CreateIterator;
    Iter.Move(IteratorDirection.First);
    While Iter.Valid Do
        Debug.WriteLine(Iter.Value);
        Iter.Move(IteratorDirection.Next);
    End While;
End Sub UserProc;

After executing the example data of the time series database is presented as a cube data instance. The cache of the object data will be recalculated and reloaded from the database, after that the calculation is executed and the obtained data will be displayed in the console window.

See also:

ICubeInstanceDestinationExecutor