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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.11.2009, 23:57   #5  
offenmeier is offline
offenmeier
HAI; CAN HAS STDIO?
Аватар для offenmeier
Соотечественники
 
77 / 36 (2) +++
Регистрация: 17.02.2005
Адрес: Auckland, NZ
в том-то и дело, что транзакции все внутри try/catch. попробую сейчас изобразить листинг.

вот функция, которую вызывает внешняя программа и в которой всё происходит:

X++:
public Anytype updateTable(tableId _tablenum, TransTypes   _type, recId    _recId = 0, Container _values = connull())
{
    anytype  _object    =   new DictTable(_tablenum).makeRecord();

    int                     logPoint;
    int                     line;
    Container               c;

    ;

    buffer = _object;


    logPoint = infolog.num();

    try
    {
        switch (_type)
        {
            case (TransTypes::RecSelect)  :
                break;

            case (TransTypes::RecInsert)  :
                _object = this.RecInsert(_object, _recId, _values);
                break;

            case (TransTypes::RecUpdate)  :
                _object = this.RecUpdate(_object, _recid, _values);
                break;

            case(TransTypes::RecDelete)   :
                _object = this.RecDelete(_object, _recId, _values);
                break;
        }
    }
    catch (exception::Break)
    {
        abs(1);
    }
    catch (exception::DDEerror)
    {
        abs(1);
    }
    catch (exception::Deadlock)
    {
        abs(1);
    }
    catch (exception::Error)
    {
        abs(1);
    }
    catch (exception::Info)
    {
        abs(1);
    }
    catch (exception::Internal)
    {
        abs(1);
    }
    catch (exception::Numeric)
    {
        abs(1);
    }
    catch (exception::Sequence)
    {
        abs(1);
    }
    catch (exception::Warning)
    {
        abs(1);
    }
    catch
    {
        line = infolog.line();
        c = infolog.cut(logPoint + 1, line);

        MyErrorLog::processError(_tablenum, _type, _recId, _values, c);
    }


    return _object;
}
__________________
our sharp bitter vitriol is not that of the vulgar.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Inside Dynamics AX 4.0: Working with the .NET Business Connector Blog bot DAX Blogs 0 04.10.2007 05:15
Inside Dynamics AX 4.0: Inside the Business Connector Blog bot DAX Blogs 0 04.10.2007 05:15
ALEG: Проект "Фишка недели" и первый пост - Microsoft Dynamics™ AX .NET Business Connector Blog bot DAX Blogs 1 22.11.2006 09:43
ProductiveGap: Microsoft's Leadership in Business Applications Usability Blog bot DAX Blogs 0 09.11.2006 08:11
Обработка исключений COM-объектов bms DAX: Программирование 24 06.04.2004 15:04

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

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

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