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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.04.2014, 18:23   #14  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Задача.
Имеем стандартный метод, из которого возможен выброс исключения.
Необходимо обработать (успешно, не успешно - не важно) этим методом все строки.
Если получилось обработать все строки успешно (без исключений), то подтвердить транзакцию, иначе откатить все, даже успешно обработанные строки.

Решение.
Идея такая: Этап первый "оптимистический". Открываем транзакцию и строка за строкой выполняем обработку в надежде на то что исключений не будет. Если все получилось закрываем транзакцию.
Этап второй "ловим исключение". Помещаем транзакцию, описанную в первом этапе в блок try-catch. При возникновении исключения транзакция откатится и мы узнаем об этом.
Этап третий "зацикливаем". В случае поимки нами исключения повторяем для оставшихся строк первый и второй этап, но уже без подтверждения транзакции даже в случае успеха.
X++:
enumerator = Lines.getEnumerator()
first = true;
do
{
    toBeContinued = false;

    try
    {
        ttsbegin;
            while (enumerator.moveNext())
            {
                stdClass.exceptionWarinigMethod(enumerator.current())
            }
        if (first) ttscommit;
        else ttsabort;
    } 
    catch
    {
        toBeContinued = true;
    }

    first = false;
}
while (toBeContinued)
За это сообщение автора поблагодарили: Ruff (3).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX2009, try / catch не перехватывает исключение (не в транзакции) AR® DAX: Программирование 4 23.05.2013 15:29
BusinessConnector .Net - исключение при вызове AxaptaRecord.Write Evgenius DAX: Программирование 22 04.05.2011 19:47
Исключение при переустановке Evgenius DAX: Администрирование 7 21.12.2010 15:49
Как понять что вызывает исключение Invalid Method Call Jab Straight DAX: Программирование 0 17.12.2007 23:23
Почему может не ловиться исключение korvin DAX: Программирование 5 19.09.2006 16:49

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

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

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