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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.05.2011, 23:26   #1  
ski is offline
ski
Участник
 
35 / 12 (1) ++
Регистрация: 27.05.2009
:( Не понятный механизм отработки запроса
Добрый день! В Axapta 3 на таблице inventTrans есть статический метод calcMarkedCostValue, который был немного модифицирован. При тестировании данного кода проявляется такая ошибка - при первом запросе условие if выполняется и в отладчике печатается "123", однако при выполнении второго запроса не выбирается ни одной строки. Что это - глюк? Или я не вижу здесь разницу в запросах?

PHP код:

    
// по этому запросу выбирается строка, которая удовлетворяет условию if 
    
select inventTrans
    where inventTrans
.inventTransId     == _refTransId &&
    
inventTrans.ItemId                 == _itemId;

    if ((
inventTrans.statusIssue    == StatusIssue::None        &&
        
inventTrans.statusReceipt  == StatusReceipt::Purchased) ||
        (
inventTrans.StatusReceipt  == StatusReceipt::None      &&
        
inventTrans.statusIssue    == StatusIssue::Sold))
    {
        
debug::printDebug('123');
    }

    
// запрос не возвращает ни одной строки
    
while select inventTrans    
    where inventTrans
.inventTransId == _refTransId &&
          
inventTrans.ItemId        == _itemId     &&
    ((
inventTrans.statusIssue    == StatusIssue::None        &&
     
inventTrans.statusReceipt  == StatusReceipt::Purchased) ||
     (
inventTrans.StatusReceipt  == StatusReceipt::None      &&
     
inventTrans.statusIssue    == StatusIssue::Sold))
    {
        
qty   += inventTrans.qty;
        
value += inventTrans.costValue();
    } 
Старый 29.05.2011, 23:31   #2  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
RecordViewCache вверх по стеку вызовов нигде не инициализируется? У выборки с его использованием в трешке отрывает крышу если в ней есть оператор ||. Когда то очень давно (году наверное в 2003) регистрил баг в мс, но чинить сразу отказались. Чем закончилось дело во всяких KR и новых версиях не проверял

Последний раз редактировалось db; 29.05.2011 в 23:35.
За это сообщение автора поблагодарили: ski (1).
Старый 29.05.2011, 23:43   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
что будет, если во втором запросе использовать inventTrans2 вместо inventTrans?
__________________
полезное на axForum, github, vk, coub.
Старый 30.05.2011, 00:04   #4  
ski is offline
ski
Участник
 
35 / 12 (1) ++
Регистрация: 27.05.2009
Цитата:
Сообщение от db Посмотреть сообщение
RecordViewCache вверх по стеку вызовов нигде не инициализируется?
Вызывался. Спасибо за ответ, никогда бы не полез в класс RecordViewCache... Вот нашел ссылку (Глюки RecordViewCache), где чуть ли не мой код представлен.
Старый 30.05.2011, 00:05   #5  
ski is offline
ski
Участник
 
35 / 12 (1) ++
Регистрация: 27.05.2009
Цитата:
Сообщение от mazzy Посмотреть сообщение
что будет, если во втором запросе использовать inventTrans2 вместо inventTrans?
Только что попробовал, но как и думал - результат остался неизменным.
Старый 30.05.2011, 00:09   #6  
ski is offline
ski
Участник
 
35 / 12 (1) ++
Регистрация: 27.05.2009
Как же вообще можно работать с кешированием в Аксапта? Уже находил несколько багов с кешированием и отказывался от него. Вот еще один. Что, вырубать кеширование полностью или продолжать наступать на те же грабли?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Подготовка запроса(ламерские вопросы продолжаются) HorrR DAX: Программирование 4 08.07.2008 13:23
Изменить план выполнения запроса Sequel DAX: Администрирование 2 29.05.2008 15:46
Быстродействие запроса Antonuch DAX: Программирование 1 25.01.2008 15:58
Ускорение выполнения запроса Oracle + MS Axapta Горбунов Дмитрий DAX: Программирование 17 15.11.2005 18:13
Механизм отката операций chi DAX: Программирование 15 20.09.2005 15:34

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

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

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