powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Методы %OnAddToSaveSet() и %OnBeforeSave()
4 сообщений из 4, страница 1 из 1
Методы %OnAddToSaveSet() и %OnBeforeSave()
    #39771974
vassil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто подскажет.

Если перед сохранением объекта я хочу дозаполнить какие-то свойства, то метод %OnBeforeSave() не всегда их заполняет, и в документации указано, что надо использовать метод %OnAddToSaveSet()

Но метод %OnAddToSaveSet() вызывается при каждом открытии объекта, не только пред сохранением.

А там тяжелые расчеты и сильно тормозит работу.

Как можно сделать, чтобы вычисления и заполнения свойств вызывалось только перед сохранением объекта?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
Method %OnAddToSaveSet(depth As %Integer = 3, insert As %Integer = 0, callcount As %Integer = 0) As %Status 
{
	if ..cityString]"" {
		set ..city = ##class(ent.City).GetByAka(..tradingNetwork,..cityString)
  	}

  $$$QuitOnError(..updateRang())
  Quit $$$OK
}
...
Рейтинг: 0 / 0
Методы %OnAddToSaveSet() и %OnBeforeSave()
    #39772165
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vassilА там тяжелые расчеты и сильно тормозит работу Осознаю как это звучит, но возможно, стоит пересмотреть логику "тяжелых расчетов" "перед сохранением" и делать их после сохранения. Всякие там очереди обработки, состояния объектов и вот это всё, если расчеты-проверки не удается сделать легкими . Попробуйте рассуждение типа: сохранение информации в бд - только одно из действий в сценарии в "сохранение бизнес-объекта". Ну и с системными хуками неудобно работать (тестировать)
...
Рейтинг: 0 / 0
Методы %OnAddToSaveSet() и %OnBeforeSave()
    #39772377
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vassilНо метод %OnAddToSaveSet() вызывается при каждом открытии объекта, не только пред сохранением.

Василий! Ну ты и напугал.... Я аж полез проверять. С какого перепуга при каждом открытии? Добавил s ^a=$zts в начало этого метода, открыл объект. Объект на памяти есть, а вот ^a <UNDEFINED> - думаю, нужно разбираться, почему он у тебя при каждом открытии вон чо ;)
...
Рейтинг: 0 / 0
Методы %OnAddToSaveSet() и %OnBeforeSave()
    #39772388
vassil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov,

Да я вот тоже сомневаюсь... буду разбираться где-то че-то цепляется...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Методы %OnAddToSaveSet() и %OnBeforeSave()
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]