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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.09.2014, 16:19   #1  
Zlojbarsuk is offline
Zlojbarsuk
Участник
 
26 / 12 (1) ++
Регистрация: 08.08.2007
Angry Проблема в работе с utcdatetime
Добрый день, коллеги!
Есть некая периодическая операция, которая в своей работе ориентируется на время создания документа.
Существует следующая проблема:
Если эта операция запускается не в режиме пакета, то всё работает нормально. Если же её запустить в режиме пакета, то она отрабатывает с ошибкой: " Значение, которое вы пытаетесь добавить или вычесть, создает недопустимое utcdatetime."


X++:
public void run()
{
    InventParameters            inventParameters = InventParameters::find();
    utcdatetime                 curDateTime;
    utcdatetime                 dateTimeForProc;
    utcdatetime                 yesterdayDateTime;
    
    ;

    curDateTime = DateTimeUtil::applyTimeZoneOffset(DateTimeUtil::getSystemDateTime(), DateTimeUtil::getUserPreferredTimeZone());

    if (DateTimeUtil::time(curDateTime) > fromTime
     && DateTimeUtil::time(curDateTime) < toTime)
    {
        dateTimeForProc = DateTimeUtil::addHours(DateTimeUtil::getSystemDateTime(),-inventParameters.InventTransfertReturnHours_MRC);
        yesterdayDateTime    = DateTimeUtil::addHours(DateTimeUtil::getSystemDateTime(),-24);

 
}
}
Кто-нибудь сталкивался с подобной проблемой?

Ax 2009, Kernel version 5.0.1500.6491

Последний раз редактировалось Zlojbarsuk; 02.09.2014 в 16:43.
Старый 02.09.2014, 17:03   #2  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А зачем вы применяете тайм-зону пользователя?
__________________
Ivanhoe as is..
Старый 02.09.2014, 17:18   #3  
Zlojbarsuk is offline
Zlojbarsuk
Участник
 
26 / 12 (1) ++
Регистрация: 08.08.2007
DateTimeUtil::getSystemDateTime() возвращает время по Гринвичу. А мне необходимо время текущего часового пояса. Поэтому я выполняю преобразование.
Старый 02.09.2014, 18:32   #4  
honest is offline
honest
Участник
 
5 / 13 (1) ++
Регистрация: 19.09.2012
Из текста ошибки можно предположить, что метод DateTimeUtil::addHours() пытается вернуть значение которое не попадает в диапазон от 1900-01-01T00:00:00 до 2154-12-31T23:59:59. Проверьте системное время на пакетном сервере. Какое значение возвращает метод DateTimeUtil::getSystemDateTime(), если он вызывается на пакетном сервере?

Последний раз редактировалось honest; 02.09.2014 в 18:34.
Старый 02.09.2014, 19:10   #5  
Morpheus is offline
Morpheus
Участник
Аватар для Morpheus
Соотечественники
 
602 / 164 (7) ++++++
Регистрация: 30.03.2005
Адрес: Київ-København-Düsseldorf
Цитата:
Сообщение от Zlojbarsuk Посмотреть сообщение
DateTimeUtil::getSystemDateTime() возвращает время по Гринвичу. А мне необходимо время текущего часового пояса. Поэтому я выполняю преобразование.
В переменных и полях таблиц храните время UTC 0. На формах и в отчетах автоматически отображается время с учетом часового пояса пользователя.
Старый 02.09.2014, 19:56   #6  
Zlojbarsuk is offline
Zlojbarsuk
Участник
 
26 / 12 (1) ++
Регистрация: 08.08.2007
Цитата:
Сообщение от Morpheus Посмотреть сообщение
В переменных и полях таблиц храните время UTC 0. На формах и в отчетах автоматически отображается время с учетом часового пояса пользователя.
Да, я знаю, что на формах и в таблицах время "разное" :-) Проблема не в этом, а в том, что периодическая операция по разному работает в режиме пакета и обычного запуска.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Kashperuk Ivan: Tutorial: Determine if a string is a valid UtcDateTime Blog bot DAX Blogs 0 24.02.2012 01:11
axblog4u: How to write UtcDateTime value along with Timezone in AX2012 Blog bot DAX Blogs 0 25.09.2011 23:11
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
DAX 2009 & UtcDateTime & Primary Key SRF DAX: Программирование 8 05.06.2009 07:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:46.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.