Подниму старую тему...
Я окончательно запутался, и ни че не понимаю!

Создал непрерывную номерную серию. Создается, очищается, и заново создается она без проблем в ТЕКУЩЕЙ сесии.
Стоит мне повторно зайти в AX, и удалить строку из таблицы (или нажать кнопку очистить для текущей номерной серии),
то ни чего не происходит!
Смотрю код, и вижу что всему виной один метод, NumberSeqCleanUp::isProcessDead(). Который вызывается 2мя путями:
1. \Classes\NumberSeq\release(Он у меня отрабатывает на момент УДАЛЕНИЯ записи из моей таблицы)
2. \Classes\NumberSeqCleanUp\cleanupDeadProc(Вызывается в момент нажатия кнопки ОЧИСТИТЬ)
Код метода NumberSeqCleanUp::isProcessDead():
public client server static boolean isProcessDead(NumberSequenceList numberSequenceList)
{
xSession xSession = new xSession(numberSequenceList.SessionId);
;
if (xSession)
{
if (xSession.loginDate() == dateNull())
return true;
if (xSession.loginDate() != numberSequenceList.SessionLoginDate)
return true;
if (xSession.loginTime() != numberSequenceList.SessionLoginTime)
return true;
}
return false;
}
Собственно вопрос в следующем: В чем смысл данных сравнений??? Ведь если мы xSession инициализируем из
numberSequenceList.SessionId, значит эти условия НИ КОГДА не выполнятся и метод вернет false!
Или я не прав??? Тогда почему у меня все время
xSession.loginDate() == numberSequenceList.SessionLoginDate
xSession.loginTime() == numberSequenceList.SessionLoginTime
И собственно почему можно спокойно очищать(делать свободным) только в пределах ТЕКУЩЕЙ сесии?
все что нашел по слову isProcessDead это
Number sequnec lock
DAX4(4.0.2503.724)