Показать сообщение отдельно
Старый 29.06.2013, 16:53   #12  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Ярослав Щекин Посмотреть сообщение
А у Вас какая версия Axapta?
Я вот беру код типа:
...
Запускаю проверку Best Practices, и никаких предупреждений не вижу.
У нас DAX4. Я немного поторопился, заявив, что задачу решают стандартные проверки best practics. Посмотрел текущий метод проверки и не нашел того, что подразумевал. Стандарт просто тупо подсчитывает соответствие количества ttsBegin и ttsCommit в пределах одного метода.То есть он даже пропустит вариант написания:
X++:
ttsCommit;
... 
ttsBegin;
В общем, даже порядок вызова транзакций стандарт не отслеживает, не говоря уже про выход посреди транзакции при помощи return, break и continue.
Просто когда-то на одной из прошлых работ я расширял BP по поводу парности ttsBegin/ttsCommit таким образом, чтобы проверялось не только количество, но и порядок и наличие между началом и подтверждение транзакции возвратов, прерываний, продолжений (в этом случае выдавал не ошибку или предупреждение, а просто сообщение, поэтому ловилось только при определенной настройке BP). За давностью лет решил, что это и есть стандарт.
Ладно, вспомню что тогда делал и добавлю в наше приложение. А Вам рекомендую вписать Вашу проверку в метод checkSource класса SysBPCheckMemberFunction. В этом случае не нужно будет что-то выгружать в проекты, а контролировать все это дело в рамках текущей разработки.