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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.09.2009, 11:41   #1  
Helm is offline
Helm
Участник
 
15 / 11 (1) +
Регистрация: 24.09.2009
Разноски, блокировки и NumberSeq
Господа, доброго дня!
Аксапта тройка.
Симптомы такие: для нескольких заказов при попытке разносок вешается намертво система, создаются два доступа к таблице NumberSequenceTable, один блочит другого.
Происходит это в классе NumberSeqCleanUp в методе cleanUpSequence в этом запросе
X++:
select forupdate firstonly numberSequenceTableUpd
    index hint SeriesIdx
    where numberSequenceTableUpd.numberSequence == _numberSequenceTable.numberSequence;
Проблема была описана Здесь и Здесь Однако перепись метода release в NumberSeq не помогает банально потому, что туда код не заходит.
Происходит впервые, раньше не было такого как говорят, что согласуется со старыми топиками (работаю второй день на месте, впервые вижу проблемы с проводками такого класса).

Помимо этого ещё появился глюк.
При создании отгрузочной накладно процесс проходит, ничего не виснет, однако в проводках и в соответствующей таблице пустота.

Ниже весь код, по-моему он оригинальный
X++:
public void cleanUpSequence(UserConnection         userConnection,
                     NumberSequenceTable    _numberSequenceTable,
                     boolean                hookCleanUp = false
                    )
{
    NumberSequenceList      numberSequenceList;
    NumberSequenceTable     numberSequenceTableUpd;
    boolean                 doCleanUpDead   = FALSE;

    if (_numberSequenceTable && _numberSequenceTable.continuous)
    {
        userConnection.ttsbegin();

        numberSequenceTableUpd.setConnection(userConnection);

        select forupdate firstonly numberSequenceTableUpd
            index hint SeriesIdx
            where numberSequenceTableUpd.numberSequence == _numberSequenceTable.numberSequence;

        if (numberSequenceTableUpd && (!hookCleanUp || numberSequenceTableUpd.mustRunCompleteCleanUp()))
            numberSequenceTableUpd.updateCompleteClean();

        while select transId
            from numberSequenceList
            group by transId
            where numberSequenceList.numberSequence == _numberSequenceTable.numberSequence
        {
            if (!numberSequenceList.transId)
                doCleanUpDead = TRUE;
            this.cleanUpTrans(userConnection,numberSequenceList.transId);
        }
        if (doCleanUpDead)
            this.cleanupDeadProc(userConnection,_numberSequenceTable.numberSequence);

        userConnection.ttscommit();
    }
}
P.S. Перенесите, пожалуйста, топик, сглючило(

Последний раз редактировалось Helm; 25.09.2009 в 11:53.
Теги
блокировка, разноска, number sequence

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
блокировки таблицы WMTRANSFER_FACTUREJOUR. ipas DAX: Администрирование 0 29.09.2008 15:20
Ax 4.0. Главная книга.План Счетов. Счет. Разноска. Тип разноски nmariya DAX: Функционал 2 30.10.2007 13:19
Сопоставление с разными профилями разноски и одинаковой валютой операции Red Stranger DAX: Функционал 13 27.06.2006 18:40
Вопрос по профилям разноски ОС treeny DAX: Функционал 2 20.05.2005 16:02
Профиль разноски по Договрам AlexR DAX: Функционал 8 06.04.2005 17:06

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:36.