06.06.2022, 12:40 | #1 |
Участник
|
DAX 2012. Как споймать ошибку try catch внутри транзакции?
Всем привет!
У меня при обновлении таблицы идёт запрос WebRequest к внешней службе, чтобы и там обновить данные X++: public void update() { ttsBegin; super(); this.MyRequest(this); ttsCommit; Функция имеет вид наподобии такого: 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; |
|