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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.03.2012, 12:53   #1  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Метод inventCostItemDim\calcLaterAdjustment. Ошибка кода или проблема ядра ? И как правильно исправить ?
Добрый день.

DAX 2009 RU7, в младших версиях AX такое условие также присутствует.

X++:
...
inventSettlement.InventTransCurrency_RU   == inventTransCurrency      &&
...
В случаях когда выключен конф. ключ по закрытию запасов во вторичной валюте на СУБД улетает запрос вида 1 = ?(правда это в DAX 4.0, в DAX 2009 не проверял), точнее в случае основной валюты 1 = 0, что по сути приводит к пустой выборке.

Так вот - это проблема ядра - то что для полей по которым отключены конф. ключи условия добавляются в запрос или ошибки программистов, которые не учитывают того, что ключ может быть и не включен ?

Решит ли проблему исправление вида, т.е. после включения не возникнет ли других проблем и неожиданных результатов :

X++:
...
((! isConfigKeyEnable(....) || inventSettlement.InventTransCurrency_RU   == inventTransCurrency))      &&
...
UPD - вопрос закрыт, код работает корректно, подставляется условие 1=1.
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 23.03.2012 в 13:13.
За это сообщение автора поблагодарили: Alexanderis.ua (1).
Старый 23.03.2012, 16:14   #2  
Alexanderis.ua is offline
Alexanderis.ua
Участник
 
53 / 40 (2) +++
Регистрация: 25.12.2008
Адрес: Киев, Украина
спасибо за наводку. надо наверно тоже внести поправку.

Я такой же косяк исправлял в другом месте. Класс InventSumDateFinancialCalc_RU метод calcTransFinancialSettlements.
Тут происходит пересчет таблицы InventSumDateFinancialTrans_RU, которая используется для некоторых русских отчетов по складу (уже не скажу каких именно).

И да, поведение странное. Логичнее было бы возвращать в этом случае 0, а не 1 - раз поля нет, нет и его значения. Может это так NULL обрабатывается? Я к сожалению не знаю, как система обрабатывает отсутствующие поля перед отправкой запросов.
Может у кого из знатоков есть соображения?
__________________
If it ain't broke, take it apart and find out why (с)
Теги
ax2009, закрытие склада, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с изменением номера в закупочном контракте Ailen08 DAX: Функционал 9 05.05.2008 13:39
Не запускается Axapta. Общая ошибка сети. Lucky13 DAX: Администрирование 3 25.09.2007 13:02
Проблема: конфигурационный ключ виден из кода как выключенный. Anais DAX: Администрирование 2 08.02.2005 15:24
Ошибка при сохранении поставщика Filip DAX: Функционал 19 24.02.2004 08:32
Передача массива VARIANTов в Automation метод Maximin DAX: Программирование 0 09.10.2002 19:31

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

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

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