хочу поделиться идеей, подсказанной мне добрым феем
wildguess
я отлаживал класс (EventActionEmail), который вызывался фреймворком пакетной обработки (batch processing) и был невиден в отладчике (4-я версия) - по точкам останова ничего не происходило.
поэтому была добавлена таблица следующей структуры (см. рис. 1) и статическим методом addInfo(),
X++:
// store the debug info and the name of calling method
static void addInfo(str _s, str _method)
{
_SisDebugInfo sisDebugInfo;
;
ttsBegin;
sisDebugInfo.Info = _s;
sisDebugInfo.Method = _method;
sisDebugInfo.insert();
ttsCommit;
// unfortunately, it does not work in case of any exception :-(
}
в которую по мере надобности и выводилась отладочная информация.
X++:
for (i = 1 ; i <= conLen(users) ; i++)
{
// add debug info
//-->
_SisDebugInfo::addInfo(strfmt("userId = %1", conPeek(users, i)), funcname());
//<--
userInfo = SysUserInfo::find(conPeek(users, i));
select firstonly alertInboxLocal
where alertInboxLocal.GroupEventInboxId == alertInbox.GroupEventInboxId
&& alertInboxLocal.UserId == userInfo.Id;
alertInbox = alertInboxLocal;
alertInboxLocal = null;
//;
это, конечно, не полноценный дебаггинг, но кое-что при таком подходе можно увидеть (см. рис. 2).
к сожалению, в случае исключительной ситуации записи в эту таблицу не происходит.