OnAskReflectRights(Var Cancel: Boolean);
Cancel - параметр, определяющий будет ли выводится на экран запрос на обновление прав доступа к объектам на уровне СУБД.
По умолчанию передается значение False, при этом на экран выводится запрос на обновление прав доступа к объектам на уровне СУБД.
Если в качестве значения параметра передавать значение True, то диалог выводится не будет, права будут обновлены только на уровне платформы.
Метод OnAskReflectRights реализует событие, возникающее перед обновлением прав на объекты.
Public Class CUpdateEvents: UpdateEvents
Public Sub OnBeginUpdate(Update: IMetabaseUpdate);
Var
Flag: IMetabaseUpdateProperty;
Begin
Debug.WriteLine("Обновление объектов репозитория");
Flag := Update.Properties.FindById("Ver");
If Flag <> Null Then
Flag.Value := "1.1";
End If;
End Sub OnBeginUpdate;
Public Sub OnAskConstraintsHandling(Update: IMetabaseUpdate; Node: IMetabaseUpdateNode;
Details: String;
Var Handling: UpdateDataConstraintsHandlingType);
Begin
Handling := UpdateDataConstraintsHandlingType.KeepTableUnchanged;
End Sub OnAskConstraintsHandling;
Public Sub OnAskReflectRights(Var Cancel: Boolean);
Begin
Cancel := True;
End Sub OnAskReflectRights;
Public Sub OnUpdateObject(Update: IMetabaseUpdate; CurrentNode: IMetabaseUpdateNode; Var Skip: Boolean);
Begin
If CurrentNode.NodeType = MetabaseUpdateNodeType.DeleteObject Then
Skip := True;
End If;
End Sub OnUpdateObject;
Public Sub OnEndUpdate(Update: IMetabaseUpdate);
Begin
Debug.WriteLine("Обновление объектов окончено");
End Sub OnEndUpdate;
End Class CUpdateEvents;
Данный пример является шаблоном для модуля обновления. При применении обновления, содержащего данный модуль, будут осуществляться следующие проверки:
Если обновление содержит флаг обновления с идентификатором "Ver", то для данного флага будет выставлено значение "1.1". Обновляться будут только те объекты, для которых условие обновления соответствует "Ver=1.1".
При нарушении целостности данных, обновление всего объекта будет пропущено.
Обновление прав на объекты, для которых это необходимо, будет осуществляться только на уровне платформы.
В обновлении будут пропущены элементы, осуществляющие удаление объектов репозитория.
См. также: