|
![]() |
#1 |
Участник
|
|
|
![]() |
#2 |
Участник
|
Цитата:
исключение типа info, выполнение обрывается, транзакция не откатывается системой. Но при этом если запихать вызов ds.write в try catch - то в catch ловится ttslevel уже ноль. Т.е. чтобы система сама откатила транзакцию достаточно поместить вызов в try. Это в 4-ке. В 12-ке проверил - такой проблемы нет. Точно в таком же случае - транзакция абортируется в любом варианте. Посмотрел стандартный sys-код в 4ке в этой же форме. MS проблему учитывали и писали с validateWrite: X++: void fieldModifiedBlockUserGroupId() { if (! journalTable_ds.validateWrite()) return; journalTable_ds.write(); journalTable_ds.refresh(); } |
|
|
За это сообщение автора поблагодарили: sukhanchik (2). |
![]() |
#3 |
Участник
|
Цитата:
Сам факт проверки заполнения этих полей происходит автоматически при вызове validateWrite(). Внутри super().Т.е. перехватить эту проверку - невозможно Если надо перехватить проверку на mandatory, то это только "в лоб" до вызова validateWrite() или внутри до вызова super(). Т.е. тупо так X++: if (!common.Field1) { warinig("Укажите значение поля"); } else if (common.vaidateWrite()) { common.write(); }
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 03.11.2021 в 10:04. |
|
Теги |
стек вызовов, транзакции |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|