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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.01.2008, 13:53   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,983 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Более простой способ воспроизвести баг.
Пусть у нас есть 2 лота из описания выше, выполняем для них такой код

X++:
// Запускать на сервере - в джоб поставить недостаточно, потому что джоб всегда на клиенте исполняется.
// лучше поставить в статический метод какого то класса
server static void test()
{
    InventTransID       InventTransID;
    Object              Object;
    Object              Object2;
    Qty grd_calcQty(InventTransId    _inventTransId, boolean _disablecache, str _s)
    {
        InventTrans inventTrans;
        ;
        inventTrans = null;
        if (_disablecache)
            inventTrans.disableCache(true);

        select sum(qty) from inventTrans
            index hint TransIdIdx
            where inventTrans.inventTransId         == _inventTransId   &&
                       //    inventTrans.StatusIssue >= StatusIssue::ReservPhysical
                       // && inventTrans.StatusIssue <= StatusIssue::OnOrder

                (inventTrans.statusIssue == StatusIssue::ReservPhysical ||
                inventTrans.statusIssue  == StatusIssue::ReservOrdered   ||
                inventTrans.statusIssue  == StatusIssue::OnOrder)

                ;
        info(strFMT("%3 DisableCache = %1 Количество %2",
            inventTrans.disableCache(),
            inventTrans.Qty,
            _s)); // здесь в плохом случае возвращает 0 для ЛОТ2. Если все в порядке то -5
    }
    ;
    ttsBegin;

    InventTransID = "ЛОТ1"; //  ЛОТ1 Количество 4 (2 физрезерв; 2 скомплектовано)
    Object = InventTrans::viewCacheInventTransId(InventTransId, true);
//    GRD_calcQty(InventTransId);


    InventTransID = "ЛОТ2"; //  ЛОТ2 Количество 5 (5 физрезерв)

    GRD_calcQty(InventTransId, false, "Кеширование не отключали.");
    GRD_calcQty(InventTransId, true , "Отключили кеширование.");

    Object2 = InventTrans::viewCacheInventTransId(InventTransId, true);
    GRD_calcQty(InventTransId, false, "Кеширование не отключали. Создан RecordViewCache по второму лоту");
    GRD_calcQty(InventTransId, true , "Отключили кеширование.  Создан RecordViewCache по второму лоту");

    ttsCommit;
}

Последний раз редактировалось Logger; 28.01.2008 в 14:02. Причина: подправил джоб
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Развивающая игра с xRecord.wasCached(), RecordViewCache EVGL DAX: База знаний и проекты 4 12.12.2008 10:20
! "по выбранному курсору нельзя инициализировать recordViewCache" netbas DAX: Программирование 9 20.12.2007 15:24
Глюки в Query с разными типами Join (в т.ч. NonExistsJoin) к одной таблице gl00mie DAX: Программирование 10 14.02.2007 13:22
Глюки в Заказах Pegiy DAX: Функционал 4 17.03.2004 15:09
Глюки с разноской складских проводок на счета ГК Yury DAX: Программирование 0 11.04.2003 19:10

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

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

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