![]() |
#2 |
Участник
|
Подниму старую тему...
Я окончательно запутался, и ни че не понимаю! ![]() Создал непрерывную номерную серию. Создается, очищается, и заново создается она без проблем в ТЕКУЩЕЙ сесии. Стоит мне повторно зайти в 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) |
|