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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2016, 18:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
jaestevan: [AX TIP] Errores Interop CLR y nivel de transacciones
Источник: http://www.jaestevan.com/ax-tip-erro...-transacciones
==============

Hace un tiempo publiqué un artículo explicando las buenas prácticas recomendadas para el manejo de excepciones CLR y cómo mostrarlas correctamente en el InfoLog de Dynamics AX. Sin embargo olvidé entonces un detalle importante que hay que tener en cuenta al capturar estas excepciones, que es el nivel de transacciones en la base de datos (TTS Level).

En el siguiente código de ejemplo, nuestro try..catch NO funcionará. Si se produce un error en el try, por ejemplo, si el método get_Content() no existe en el objeto en tiempo de ejecución, la ejecución del código terminará directamente sin mostrar nada en el InfoLog, lo que no es muy deseable.

Esto es debido a que, para poder capturar una excepción CLR, el nivel de transacciones debe ser 0. O lo que es lo mismo, no podemos capturar errores del Interop dentro de una transacción. Para que este código funcione tendremos que re-escribirlo para que el manejo de ese objeto CLR genérico se realice antes de abrir la transacción.

CLRObject obj;


ttsBegin; // ttsLevel + 1

info(strFmt("TTS level: %1", appl.ttsLevel())); // TTS level: 1

try
{
obj = response.get_Content();
if (!CLRInterop::isNull(obj))
{
// ...
}
}
catch(Exception::CLRError) // Este catch nunca se ejecutará porque ttsLevel > 0
{
error(AifUtil::getClrErrorMessage());
}

ttsCommit; // ttsLevel - 1

En realidad, y debido al alto riesgo de que se produzcan errores CLR que deben capturarse y procesarse de forma especial, el manejo de objetos CLR debe encapsularse siempre en clases o métodos específicos donde quede claro su funcionamiento y aislado el riesgo de problemas.



Источник: http://www.jaestevan.com/ax-tip-erro...-transacciones
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
jaestevan: Microsoft Dynamics AX RTW Update 1 Blog bot DAX Blogs 0 23.06.2016 18:11
patrickmouwen: Dynamics AX Retail 3rd party POS and E-commerce integration – Solution Design Blog bot DAX Blogs 0 26.10.2015 12:11
ax-erp: Dynamics Ax Musings: X++ in the .NET CLR : Life in the Fast Lane Blog bot DAX Blogs 0 19.11.2012 20:11
german_nav_developer: Buildnummern-Übersicht Microsoft SQL Server 2008 R2 Blog bot Dynamics CRM: Blogs 0 27.04.2011 20:21
dynamics-ax: Expert SSRS with AX Tip from Michael Stashwick Blog bot DAX Blogs 0 14.01.2011 05:18

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:36.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.