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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.08.2010, 20:37   #1  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
глючный UTCdatetime или руки кривые?
В фильтре на форме с гридом (инвойсы) задаю фильтр CreatedDateTime = '17.08.2010'. Нажимаю OK. Все записи фильтруются так, что только созданные за '17.08.2010' остаются в гриде. Все ок. Открываю Фильтр снова, там вместо моего '17.08.2010' уже значится "17/08/2010 00:00:00". Ничего не меняю, нажимаю ОК, все записи из грида пропадают (не смотря на то, что я ничего не поменяю).


Такой же баг вижу в коде. Пользователь наклыдвает критерии на запрос в диалоге класса Runbase, выбирает поле CreatedDateTime и указывает дату '17.08.2010'. Я беру этот запрос в коде и считаю количество записей и вижу, что возвращается 0, ищу причину и виже что '17.08.2010' в запросе преобразовано в = "17/08/2010 00:00:00".

как корректно ввести дату как критерий для поля типа UTCDatetime запроса?

AX 2009 SP1 RU-3
Старый 20.08.2010, 08:29   #2  
ansoft is offline
ansoft
Участник
Аватар для ansoft
 
123 / 37 (2) +++
Регистрация: 20.10.2005
Прикольно...
Думается критерий должен быть: "17.08.2010 00:00:00".."17.08.2010 23:59:59"
Старый 20.08.2010, 11:15   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от IKA Посмотреть сообщение
В фильтре на форме с гридом (инвойсы) задаю фильтр CreatedDateTime = '17.08.2010'. Нажимаю OK. Все записи фильтруются так, что только созданные за '17.08.2010' остаются в гриде. Все ок. Открываю Фильтр снова, там вместо моего '17.08.2010' уже значится "17/08/2010 00:00:00".
Это глюк ядра Аксапты до RU4 включительно - она зачем-то дату вот в такую временную метку в range'ах переделывает. В RU5 это уже исправили - там ядро переделывает дату в диапазон с полуночи до 23:59:59
За это сообщение автора поблагодарили: sukhanchik (2), Logger (3), IKA (1).
Старый 20.08.2010, 13:02   #4  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Это глюк ядра Аксапты до RU4 включительно - она зачем-то дату вот в такую временную метку в range'ах переделывает. В RU5 это уже исправили - там ядро переделывает дату в диапазон с полуночи до 23:59:59
Красота..... вот сейчас пользователи обрадуются, когда скажу, как им критерии забивать надо будет.
Спасибо большое за ответ gl00mie!
Старый 20.08.2010, 14:04   #5  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Есть кой-нить HF который можно на RU3 накатить, чтобы избавиться от этой проблемы?
Старый 21.08.2010, 22:52   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
А чем вам RU5 не подходит? Поставьте из него только обновленное ядро - там еще куча других косяков исправлена.
Старый 23.08.2010, 10:12   #7  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Вы пробовали усталавливать только ядро от него, действительно работает?
МС открещивается на всякий случай:
"The rollup package contains both a cumulative kernel update and a cumulative application update. Although there is no dependency between these two updates, we recommend that you install both of the updates together. The rollup will be installed on the SYP layer and the GLP layer."
Старый 23.08.2010, 10:58   #8  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
MS, судя по цитате, не открещивается, а напрямую заявляет, что никакой зависимости между ядром и приложением нет. Собственно, со времен трешки в установке нового ядра (если не считать перехода на KRx) ничего "такого" не было и нет. Ставить ядро RU5 (5.0.1500.2985) именно на приложение RU3 я не пробовал, но ставил на приложение RU4, и никаких новых проблем при этом не вылезло.
Старый 23.08.2010, 13:17   #9  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
спасибо
Старый 13.01.2011, 19:10   #10  
Consciousness is offline
Consciousness
Участник
 
5 / 15 (1) ++
Регистрация: 10.02.2007
Всем доброго времени суток!
Подниму старую тему все же.
Стоит Ax2009 Ru5

Проблема с типом UTCDatetime все же не решилась! Есть форма, на форме имеются датасорсы с полями типа UTCDatetime, так же на форме считается и выводится кол-во отфильтрованных записей. Так вот, если наложить фильтр на любое из полей типа UTCDateTime - счетчик не срабатывает и показывает 0. (самый простой пример - сделать фильтр по выделению на поле CreatedDateTime, как минимум одна строка найдется, а счетчик показывает 0)
Копаюсь глубже, смотрю в sysQuery какой запрос у квери подсчета кол-ва уже ушедший на SQL - оказывается, что при копировании квери значение range на поле типа UTCDatetime копируется не верно - не учитывает временную зону! Т.е при наложиении фильтр наклыдвается по гринвичу - минус часовой пояс, а копирует фильтр - часовой пояс не отнимает и вместо времени 7-45, к примеру, копирует 10-45.
Проблему локально решить можно, но хотелось бы более глобального решения, особенно если учесть множество временных форматов и многоязычную компанию! Кто сталкивался с подобным, подскажите, пожалуйста!
Старый 13.01.2011, 20:21   #11  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Consciousness Посмотреть сообщение
Всем доброго времени суток!
Подниму старую тему все же.
Стоит Ax2009 Ru5

Проблема с типом UTCDatetime все же не решилась! Есть форма, на форме имеются датасорсы с полями типа UTCDatetime, так же на форме считается и выводится кол-во отфильтрованных записей. Так вот, если наложить фильтр на любое из полей типа UTCDateTime - счетчик не срабатывает и показывает 0. (самый простой пример - сделать фильтр по выделению на поле CreatedDateTime, как минимум одна строка найдется, а счетчик показывает 0)
Копаюсь глубже, смотрю в sysQuery какой запрос у квери подсчета кол-ва уже ушедший на SQL - оказывается, что при копировании квери значение range на поле типа UTCDatetime копируется не верно - не учитывает временную зону! Т.е при наложиении фильтр наклыдвается по гринвичу - минус часовой пояс, а копирует фильтр - часовой пояс не отнимает и вместо времени 7-45, к примеру, копирует 10-45.
Проблему локально решить можно, но хотелось бы более глобального решения, особенно если учесть множество временных форматов и многоязычную компанию! Кто сталкивался с подобным, подскажите, пожалуйста!
А не могли бы Вы прикрепить сюда или выслать мне лично рабочий xpo, демонстрирующий это поведение, а по возможности - еще и код из SysQuery, где происходит ошибка?
Старый 14.01.2011, 09:01   #12  
Consciousness is offline
Consciousness
Участник
 
5 / 15 (1) ++
Регистрация: 10.02.2007
Да, прикрепила проект
В инфологе запрос с датасорса формы и запрос скопированный для подсчета количества строк.
Спасибо )
Вложения
Тип файла: rar PrivateProject_UTCDateTimeError.rar (4.9 Кб, 134 просмотров)
За это сообщение автора поблагодарили: kashperuk (5).
Старый 19.05.2011, 14:00   #13  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Не буду плодить новой темы, хотя и достойно базы знаний.

AX2009 ru6

EDT CreatedDateTime и любые другие станлратные ЕДТ или свои новый таких типов примененный в дисплей методах - НЕ РАБОТАЮТ

Прошу подтвердить, тк сами не смогли это поправить и плюнули на исследования дальше.

Кончилось тем, что преобразовали поле к дате и вернули только ее с ЕДТ даты.

Выглядит так: на закладке разное поле бесконечной длины, пустое.
Сделать свой ЕДТ с ДисплейЛен 30 можно, все становится коротенько, но поле по прежнему пустое.
Из чего делается вывод, что тип ДатаВремя не применим в вычислимых методах..... вот тебе и мега фича.
Если же добавлять поле таблицы, а не метод, все рисуется ок.
Старый 19.05.2011, 14:37   #14  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Например, такой код работает верно:

X++:
display UTCDateTime time()
{
    return DateTimeUtil::getSystemDateTime();
}
DAX2009 SP1 RU6.
__________________
Ivanhoe as is..

Последний раз редактировалось Ivanhoe; 19.05.2011 в 14:39.
Старый 19.05.2011, 22:46   #15  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Да, этот Edt работает, но у него метка не та.
А вот стандартные другие ЕДТ?
Я пробовал на ActivationDateTime он sys
и на своем, отнаследованном от этого, от КреатедДайтТайм или без наследования.

А вот UTCDateTime в качестве родителя у ЕДТ не ставится, и сотв получить счастье не выходит.

Остается вариант все клнтрольки делать от UTCDateTime и называть их метками на самой форме. Но это изврат и баг.

Так что, все еще прошу подтвердить поведение прочих не UTCDateTime ЕДТ в дисплей филдах на закладке формы.

ЗЫ. А вообще не забавно, что на стартапе проекта с переходом на ах2009 время стало уходить в утиль (неоплачиваемое и овертаймовое) оч сильно - граблями устелен этот путь, там где их не было отродясь (настроил и полетел) - накидали пачками грабельки, усердно, добротно, что все плюсы новой системы (кроме маркетинговых и обязалово-сейлозых) меркнут.
Из недавнего еще в ЖГК ОС\Строки\Групповые операции - кривые диалоговый формы с dialogField = new DialogField() вместо dialogField = dialog.addFieldValue

Последний раз редактировалось BOAL; 19.05.2011 в 22:53.
Старый 19.05.2011, 23:08   #16  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от BOAL Посмотреть сообщение
Не буду плодить новой темы, хотя и достойно базы знаний.

AX2009 ru6

EDT CreatedDateTime и любые другие станлратные ЕДТ или свои новый таких типов примененный в дисплей методах - НЕ РАБОТАЮТ

Прошу подтвердить, тк сами не смогли это поправить и плюнули на исследования дальше.

Кончилось тем, что преобразовали поле к дате и вернули только ее с ЕДТ даты.

Выглядит так: на закладке разное поле бесконечной длины, пустое.
Сделать свой ЕДТ с ДисплейЛен 30 можно, все становится коротенько, но поле по прежнему пустое.
Из чего делается вывод, что тип ДатаВремя не применим в вычислимых методах..... вот тебе и мега фича.
Если же добавлять поле таблицы, а не метод, все рисуется ок.
Не могли бы вы по-русски четко написать, что именно не работает, желательно знаки препинания расставить. Что-то я 3 раза прочитал, так и не понял в чем проблема.
Старый 19.05.2011, 23:45   #17  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от BOAL Посмотреть сообщение
А вот UTCDateTime в качестве родителя у ЕДТ не ставится, и сотв получить счастье не выходит.
По-моему, UtcDateTime - это базовый тип, как Date или Int, а не расширенный, поэтому от него и нельзя ничего "наследовать".
Цитата:
Сообщение от BOAL Посмотреть сообщение
А вообще не забавно, что на стартапе проекта с переходом на ах2009 время стало уходить в утиль (неоплачиваемое и овертаймовое) оч сильно - граблями устелен этот путь, там где их не было отродясь (настроил и полетел)
Ууу, то ли еще будет!.. Но вы же на RU7 переходите? Тогда от кучи граблей вы уже избавлены - что в приложении, что в ядре. А на счет настроил и полетел - это когда такое было? Я, наверно, что-то пропустил
Старый 20.05.2011, 00:26   #18  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,308 / 3540 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Но вы же на RU7 переходите? Тогда от кучи граблей вы уже избавлены - что в приложении, что в ядре.
Ээээ этот вопрос был задан в тоне иронии или на полном серьезе? В плане "многих фиксов в RU7" ?
Т.е. я конечно понимаю, что каждый RUx содержит в себе пачку исправлений и улучшений, но это еще не означает что "чем дальше, тем стабильнее". По моему - так вообще в RU3 не было много такой "мелочевки", типа dialogField = new DialogField (вроде как - точно уже не скажу). Т.е. какие-то грабли явно прибавились после.

Тот же RU7 конечно может и хорош - но зарплата к нему вот только только вышла - соответственно - при использовании (хотя бы частично) функционала из зарплаты - ставить RU7 до выхода зарплаты бессмысленно (при этом МС не утруждает себя хранить версии зарплаты на каждый RUx и норовит обновить слой после выпуска фиксов в XPO. Т.е. получается, что без залитого в usr-слой нужного XPO-шника приложение с зарплатным слоем не компилируется).
__________________
Возможно сделать все. Вопрос времени
Старый 20.05.2011, 08:44   #19  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от BOAL Посмотреть сообщение
Да, этот Edt работает, но у него метка не та.
А вот стандартные другие ЕДТ?
Я пробовал на ActivationDateTime он sys
и на своем, отнаследованном от этого, от КреатедДайтТайм или без наследования.

А вот UTCDateTime в качестве родителя у ЕДТ не ставится, и сотв получить счастье не выходит.

Остается вариант все клнтрольки делать от UTCDateTime и называть их метками на самой форме. Но это изврат и баг.

Так что, все еще прошу подтвердить поведение прочих не UTCDateTime ЕДТ в дисплей филдах на закладке формы.
А вы драг&энд&дропом контролы на форме получаете?
В морфиксе есть глюк. Если перетаскивать на форму методы с EDT типа UTCDateTime, то он создает контролы StringEdit, которые неправильно отображают эти методы.

Просто, создавайте контролы на форме через Создать Control/UTCDateTimeEdit, а потом указывайте в нем датаметод и датасорс, если надо.
Либо, указывайте изначально в методе возвращаемый тип UTCDateTime, создавайте метод драг&энд&дропом, а после этого меняйте возвращаемый тип в методе на нужный вам.

Извращение, конечно, но пока не исправят - что делать?
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: BOAL (3), sukhanchik (3), Logger (8), Ivanhoe (1), gl00mie (3), S.Kuskov (2).
Старый 20.05.2011, 18:39   #20  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
У нас эта форма появилась переносом и заменой из-за пропажи полей CreatedDate на таблицах.
Теперь ясно, как делать такие дисплей поля.

Спасибо!

gl00mie
на РУ7 переход не планировали.
От чего это спасет? Чтоб понять стоил ли связываться.
Что лечит ядро, а что прил., то есть может просто накатить АОС и клиент и оставить прил. от Ру6?
Теги
ax2009, display метод, utcdatetime, дата, ошибка, фильтр, формат дат

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Passing UtcDateTime values in extended query syntax Blog bot DAX Blogs 0 10.05.2010 21:05
Kashperuk Ivan: UtcDateTime in Dynamics AX 2009 Blog bot DAX Blogs 0 17.02.2010 15:05
axaptapedia: UtcDateTime Blog bot DAX Blogs 0 23.07.2009 01:05
DAX 2009 & UtcDateTime & Primary Key SRF DAX: Программирование 8 05.06.2009 07:05
При резервировании не учитывается аналитика Партия? KIV DAX: Функционал 32 06.08.2004 13:23

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

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

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