IAuditLog.OpenOperationTree

Синтаксис

OpenOperationTree(Session: Integer; Operation: Integer): IAuditOperations;

OpenOperationTree(System.UInt32, System.UInt32): Prognoz.Platform.Interop.Metabase.IAuditOperations;

Параметры

Session. Номер сессии, для которой необходимо получить список операций над объектами. В качестве значения параметра необходимо передавать значение свойства IAuditLogons.Session;

Operation. Номер операции, для которой необходимо получить список операций над зависимыми объектами. Если в качестве значения передается «0», то метод возвращает список операций, совершенных в рамках сессии. Если в качестве значения передавать значение свойства IAuditOperations.Operation для какой-либо операции, то метод вернет список операций над зависимыми объектами того объекта, которому соответствует операция.

Описание

Метод OpenOperationTree возвращает список операций, произведенных в репозитории, представленный в древовидном виде.

Пример

Для выполнения примера добавьте ссылки на системные сборки: Metabase, ForeSystem (для примера на Fore.NET).

Sub UserProc;
Var
    MB: IMetabase;
    MS: IMetabaseSecurity;
    AL: IAuditLog;
    ALogon: IAuditLogons;
    OperatTree, OperatTreeChild: IAuditOperations;
    Lic: Object;
Begin
    MB := MetabaseClass.Active;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
    MS := MB.Security;
    
// Откроем протокол доступа
    Al := MS.OpenAuditLog;
    ALogon := AL.OpenLogons(
False);
    
// Выведем в консоль список операций, совершенных за время последнего подключения к репозиторию
    OperatTree := Al.OpenOperationTree(ALogon.Session, 0);
    
While Not OperatTree.Eof Do
        Debug.WriteLine(OperatTree.ObjectId + 
" " + OperatTree.Name);
        OperatTreeChild := Al.OpenOperationTree(ALogon.Session, OperatTree.Operation);
        
While Not OperatTreeChild.Eof Do
            
If OperatTreeChild.Succeeded Then
                Debug.Indent;
                Debug.WriteLine(OperatTreeChild.ObjectId + 
" " + OperatTreeChild.Name + " " + OperatTreeChild.Level.ToString);
                Debug.Unindent;
                OperatTreeChild.Next;
            
End If;
        
End While;
        OperatTreeChild.Close;
        OperatTree.Next;
    
End While;
    OperatTree.Close;
    
// Освободим лицензию
    Lic := Null;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeSystem;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MS: IMetabaseSecurity;
    AL: IAuditLog;
    ALogon: IAuditLogons;
    OperatTree, OperatTreeChild: IAuditOperations;
    Lic: Object;
Begin
    MB := Params.Metabase;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
    MS := MB.Security;
    
// Откроем протокол доступа
    Al := MS.OpenAuditLog();
    ALogon := AL.OpenLogons(
False);
    
// Выведем в консоль список операций, совершенных за время последнего подключения к репозиторию
    OperatTree := Al.OpenOperationTree(ALogon.Session, 0);
    
While Not OperatTree.Eof() Do
        System.Diagnostics.Debug.WriteLine(OperatTree.ObjectId + 
" " + OperatTree.Name);
        OperatTreeChild := Al.OpenOperationTree(ALogon.Session, OperatTree.Operation);
        
While Not OperatTreeChild.Eof() Do
            
If OperatTreeChild.Succeeded Then
                System.Diagnostics.Debug.Indent();
                System.Diagnostics.Debug.WriteLine(OperatTreeChild.ObjectId + 
" " + OperatTreeChild.Name + " " + OperatTreeChild.Level.ToString());
                System.Diagnostics.Debug.Unindent();
                OperatTreeChild.Next();
            
End If;
        
End While;
        OperatTreeChild.Close();
        OperatTree.Next();
    
End While;
    OperatTree.Close();
    
// Освободим лицензию
    Lic := Null;
End Sub;

После выполнения примера в консоль будет выведен список операций, совершенных за время последнего подключения к репозиторию. Список операций будет представлен в виде дерева. Для каждой операции выведен идентификатор соответствующего объекта и наименование операции. Если имеются операции, связанные с объектами от которых зависит какой-либо другой объект, то для данных операций также будет выведен уровень вложенности.

См. также:

IAuditLog