ReadPartialRestriction: IDimSelectionSet;
Метод ReadPartialRestriction получает отметку, по которой была сформирована частичная запись кеша.
Если запись была сформирована по полной отметке, то метод вернёт NULL.
Для определения наличия частичной записи кеша используйте свойство IInMemCubeCache.HasPartialRestriction.
Для выполнения примера в репозитории предполагается наличие минимум одного куба, для которого сформирован кеш.
Добавьте ссылки на системные сборки: Cubes, Dimentions, Metabase.
Sub UserProc;
Var
Mb: IMetabase;
InMem: IInMemManager;
Cubes: IInMemCubes;
Cube: IInMemCube;
Caches: IInMemCubeCaches;
Cache: IInMemCubeCache;
Dest: ICubeInstanceDestination;
SelSet: IDimSelectionSet;
i: Integer;
Begin
Mb := MetabaseClass.Active;
// Инициализация менеджера для работы с кешем
InMem := New InMemManager.Create;
// Получение коллекции кубов репозитория с кешем
Cubes := InMem.GetCubes(Mb, False, True);
// Получение куба и его записи кеша
Cube := Cubes.Item(0);
Caches := Cube.Caches;
// Просмотр информации о записях кеша куба
For i := 0 To Caches.Count - 1 Do
Cache := Caches.Item(i);
Dest := Cache.GetDestination;
Debug.WriteLine("Вариант отображения куба, для которого сформирован кеш: " + Dest.Name);
If Cache.HasPartialRestriction Then
Debug.WriteLine("Кеш сформирован по частичной отметке:");
Selset := Cache.ReadPartialRestriction;
PrintSelectionSet(Selset);
Else
Debug.WriteLine("Кеш сформирован по полной отметке");
End If;
End For;
End Sub UserProc;
Sub PrintSelectionSet(SelSet: IDimSelectionSet);
Var
Sel: IDimSelection;
Begin
For Each sel In SelSet Do
Debug.WriteLine(Sel.Dimension.Name + ": " + sel.ToString);
End For;
End Sub PrintSelectionSet;
При выполнении примера в окно консоли будет выведена информация об использованном типе отметки при формировании кеша, если кеш сформирован по частичной отметке, то в окно консоли будет выведена отметка по каждому измерению, по которой сформирован кеш.
См. также: