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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.06.2022, 12:40   #1  
SuperStar88 is offline
SuperStar88
Участник
 
81 / 10 (1) +
Регистрация: 11.08.2017
? DAX 2012. Как споймать ошибку try catch внутри транзакции?
Всем привет!
У меня при обновлении таблицы идёт запрос WebRequest к внешней службе, чтобы и там обновить данные
X++:
public void update()
{
ttsBegin;
super();

this.MyRequest(this);

ttsCommit;
И если при запросе/ответе возникает ошибка, то блок catch внутри моей функции не вызывается.
Функция имеет вид наподобии такого:
X++:
    str                             responseString;
    
    System.Net.WebRequest           webRequest;
    System.Net.HttpWebResponse      httpResponse;
    CLRObject                       responseObj;
    System.IO.Stream                stream;
    System.IO.StreamReader          streamReader;
    System.Exception                ex;
    System.Net.WebException         webException;
    ;

    try
    {
        if (!urlAPI)
            throw error("Error");

        codeAccessPermission::revertAssert();
        new InteropPermission(InteropKind::ClrInterop).assert();

        webRequest = System.Net.WebRequest::Create(urlAPI);
        webRequest.set_Method('POST');

        stream = webRequest.GetRequestStream();
        stream.Write(arrayOfBytes,0,arrayOfBytes.get_Length());
        stream.Close ();

        httpResponse    = webRequest.GetResponse();
    }
    catch (Exception::CLRError)
    {
        ex = ClrInterop::getLastException();
        if (ex != null)
        {
            ex = ex.get_InnerException();
            if ((ex != null) && (ex is System.Net.WebException))
            {
                webException    = ex as System.Net.WebException;
                responseObj     = webException.get_Response();
                httpResponse    = responseObj as System.Net.HttpWebResponse;
            }
        }
    }
    catch
    {
        error("Error");
        return '';
    }
    stream          = httpResponse.GetResponseStream();
    streamReader    = new System.IO.StreamReader(stream);
    responseString  = streamReader.ReadToEnd();

    streamReader.Close();
    stream.Close();
    httpResponse.Close();

    codeAccessPermission::revertAssert();

    return responseString;
Как споймать ошибки в моей функции/запросе и откатывать обновления?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: EHF – eInvoice for Norway – DAX 2012 – setup Reviewed 31012016 Blog bot DAX Blogs 0 22.02.2016 17:11
amer-ax: It was a great day! Blog bot DAX Blogs 3 29.12.2012 01:02
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
ChangeCompany Try...Catch Владимир Максимов DAX: Программирование 10 12.01.2009 17:19
Глупый вопрос про try .. catch Vadik DAX: База знаний и проекты 6 12.03.2003 18:04

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

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

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