OnUpdateObject(Update: IMetabaseUpdate; CurrentNode: IMetabaseUpdateNode; Var Skip: Boolean);
Update - обновление, применяемое к текущему репозиторию.
CurrentNode - объект обновления, который будет применен к объекту репозитория.
Skip - параметр, определяющий будет ли проводится обновление объекта. По умолчанию установлено значение False, при этом осуществляется обновление объекта.
Если параметру установить значение True, то обновление объекта, которому соответствует объект CurrentNode, производиться не будет. Объект будет пропущен.
Метод OnUpdateObject реализует событие, возникающее непосредственно перед обновлением объекта репозитория, которому соответствует объект обновления CurrentNode.
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".
При нарушении целостности данных, обновление всего объекта будет пропущено.
Обновление прав на объекты, для которых это необходимо, будет осуществляться только на уровне платформы.
В обновлении будут пропущены элементы, осуществляющие удаление объектов репозитория.
См. также: