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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.02.2023, 16:26   #22  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Попробуйте класс ReqReaderWriterLock
Можно проверить, заблокирована ли конкретная запись.
Если не заблокирована, то заблокировать ее и обработать.
Если заблокирована, то пропустить её и начать обрабатывать следующую запись.

В качестве ключа в параметр _lockName метода tryEnterWriterLock передать уникальную строку, которая каким-то образом идентифицирует обрабатываемую запись.

X++:
    ReqReaderWriterLock lockCleanup = ReqReaderWriterLock::construct();
    
    while select myTable
    {
        if (lockCleanup.tryEnterWriterLock(int642str(myTable.RecId), 0)) // Блокируем, а если кем-то уже заблокировано, то обходим
        {
            ttsbegin;
            
            myTableUpd = MyTable::findRecId(myTable.RecId, true);
            
            //.....................
            myTableUpd.update();
            
            ttscommit;
        }
    }

    lockCleanup.releaseAllLocks();
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/

Последний раз редактировалось Ace of Database; 17.02.2023 в 16:56.
За это сообщение автора поблагодарили: sukhanchik (10).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Бюджетирование AX2012 RU2- контроль нескольких бюджетов mnt_dx DAX: Функционал 4 11.12.2015 12:56
kurthatlevik: DAX2012 R3 – Playing with Retail CRT Blog bot DAX Blogs 0 21.05.2015 15:11
DAX2012 - перепоставки по закупкам Starling DAX: Функционал 2 18.03.2014 13:56
Контроль даты поставки + Авторезервирование kart DAX: Функционал 0 21.07.2011 11:44
Контроль серийных номеров и сторно закупки, по которой нет остатка Starling DAX: Функционал 6 01.02.2011 14:55

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

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

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