AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.06.2013, 10:56   #1  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Такую задачу решают стандартные проверки best practics. Правда по всему приложению не за 5 минут (313 сек), а за то время, которое требуется на компиляцию.
Старый 28.06.2013, 11:11   #2  
Ярослав Щекин is offline
Ярослав Щекин
Участник
 
78 / 174 (6) ++++++
Регистрация: 16.03.2009
А у Вас какая версия Axapta?
Я вот беру код типа:
------
X++:
ttsbegin;

if (!inventTable.AFPGroupId) {
   if (cry) warning(strfmt("@KCL2642", inventTable.ItemId));
   return;
   }

while select AFPGroupLines
            where AFPGroupLines.GroupId == inventTable.AFPGroupId {
            AFPUnit::createUnit(inventTable.ItemId, AFPGroupLines.InventLocationId, _combination);
        }
ttscommit;
----
Запускаю проверку Best Practices, и никаких предупреждений не вижу.
Старый 29.06.2013, 16:53   #3  
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. В этом случае не нужно будет что-то выгружать в проекты, а контролировать все это дело в рамках текущей разработки.
Теги
ttscomit, best practice

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Чтение только завершенных транзакций. raz DAX: Программирование 4 19.05.2017 10:20
Неверный откат сопоставленных транзакций sgt.Pepper DAX: Программирование 4 17.01.2008 09:16
IMTS (Система множественных складских транзакций) yuranio DAX: Функционал 7 04.03.2005 17:56
Какая связь между Сводным планированием и Система множественных складских транзакций Wamr DAX: Функционал 6 27.09.2004 17:03
Очень частая фиксация транзакций - без этого никак? avzh DAX: Программирование 10 12.07.2004 10:35
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:50.