08.11.2011, 20:13 | #61 |
Участник
|
Коллеги, спасибо за все замечания, которые вы описали выше. Как уже упоминалось, все замечания были отправлены на прошлой неделе, идёт обработка.
Я веду обсуждение исправления в рамках созданного ранее запроса в отдел поддержки (сопровождения) партнёров практики Dynamics. |
|
23.11.2011, 12:47 | #62 |
Участник
|
Alex05507, FYI:
https://community.dynamics.com/produ...?wa=wsignin1.0 |
|
06.12.2011, 18:09 | #63 |
Участник
|
Решил воспользоваться KB2628929. Ax 2009 SP1 RU7, Oracle.
XPO кривой, как писали выше в этой ветке. Для исправления пригодился только XML-файл из этого архива. Из формы TimezonePatchImport загружаем файл WindowsTimeZone_Latest.xml В результате этого импорта также добавятся нужные строчки в таблицу TimeZonesRulesData. После перезагрузки AOS отображение местного времени встает на место. Сходу не понял насколько критично запускать дальнейшие обновления из формы TimeZonePatcher. Там делается попытка обновить данные в нескольких таблицах (PurchParmTable, SalesParmTable, ...), но в логике сборки SQL-запроса на обновление данных есть ошибки. Для SQL Server исправление выкладывали в этой ветке. Для Oracle я поправил по аналогии метод runORACode_PatchDataForDSTChange класса TimezonePatchingHelper, но глубоко не копая: X++: //sqlSubString += ' WHERE (%2 >= B.%3 and %4 < B.%5) '; //sqlSubString += ' and (%6 = B.%7 '; sqlSubString += ' WHERE (A.%2 >= B.%3 and A.%4 < B.%5) '; sqlSubString += ' and (A.%6 = B.%7 '; X++: //sqlString = 'UPDATE %1 SET '; //sqlString += ' %2 = (%3 + 1/%4*%5), '; sqlString = 'UPDATE %1 A SET '; sqlString += ' A.%2 = (A.%3 + 1/%4*%5), '; |
|
|
За это сообщение автора поблагодарили: Logger (3). |
27.08.2014, 07:49 | #64 |
Участник
|
В связи с предстоящим переходом в октябре обратно на зимнее время, есть информация, как будет делаться обновление для DAX2012?
В ней в AOT не наблюдается объектов, связанных с TimeZonePatcher Может, вынесли в сборки? Или привязали к настройкам ОС? По крайней мере, табличка TimeZonesRulesData присутствует и она заполнена данными по таймзонам
__________________
Axapta v.3.0 sp5 kr2 |
|
20.10.2014, 17:01 | #65 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: gl00mie (2). |
20.10.2014, 20:29 | #66 |
Участник
|
У кого-нить есть kb номер официального апдейта ?
Поиском не находится ничего. |
|
21.10.2014, 09:52 | #67 |
Участник
|
__________________
Axapta v.3.0 sp5 kr2 |
|
21.10.2014, 10:14 | #68 |
Участник
|
|
|
21.10.2014, 10:19 | #69 |
Участник
|
__________________
Axapta v.3.0 sp5 kr2 |
|
21.10.2014, 10:49 | #70 |
Участник
|
Я запросил у MS, ждем.
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: Logger (1). |
22.10.2014, 10:47 | #71 |
Участник
|
Предварительно - планируется обновление, но конкретики пока никакой. Как минимум MS в курсе, что вопрос очень насущный.
__________________
Ivanhoe as is.. |
|
22.10.2014, 11:02 | #72 |
Участник
|
А может кто-нибудь выложить здесь содержимое таблички TimeZoneRulesData с установленным обновлением для 2010-2011 года? Дело в том, что в упоминаемом здесь KB2628929 содержится некорректный XML, он не отрабатывает (последний) перевод часов в марте 2011 года.
|
|
24.10.2014, 12:13 | #73 |
Участник
|
Вышло обновление для AX 2009.
Ссылка на обновление тут: http://support2.microsoft.com/hotfix...?kbnum=3011878 Как пользоваться тут: http://technet.microsoft.com/en-us/l...(v=ax.50).aspx
__________________
Ivanhoe as is.. |
|
|
За это сообщение автора поблагодарили: sukhanchik (4), Logger (3), AraraT® (3), SIrina (1), S.Kuskov (5), GBH (1), someOne (5), EugenPit (0). |
24.10.2014, 13:55 | #74 |
Участник
|
Импортировал XML из KB3011878 - создалось 11 новых зон.
Единственно что смущает - поле TimeZoneRulesData.RuleId более не привязано к значению Enum TimeZone, a идет просто по порядку: |
|
24.10.2014, 15:16 | #75 |
Участник
|
Цитата:
Сообщение от DenisS
Импортировал XML из KB3011878 - создалось 11 новых зон.
Единственно что смущает - поле TimeZoneRulesData.RuleId более не привязано к значению Enum TimeZone, a идет просто по порядку: Вложение 9010 Сервис \ Дата сеанса Дело в том, что когда я экспериментировал, если указана только одна граница года, например, как в данном случае указаны только поля D*, но не указаны поля S*, то у меня такие настройки вообще игнорировались. На весь год устанавливался сдвиг указанный в BIAS (в данном случае -3 часа). Т.е. при таких настройках у Вас уже сейчас должен быть -1 час, а не после 26.10.2014 PS: Значение RuleID принципиальной роли не играет. Главное, чтобы он был уникален в таблице.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
24.10.2014, 16:52 | #76 |
Участник
|
Цитата:
Сообщение от DenisS
Импортировал XML из KB3011878 - создалось 11 новых зон.
Единственно что смущает - поле TimeZoneRulesData.RuleId более не привязано к значению Enum TimeZone, a идет просто по порядку: Вложение 9010 И откуда у вас в приложении правило для TZ Якутск+09 для 2015-го года? DenisS, какая у вас версия ядра клиента и AOS? И можете посмотреть в енуме \System Documentation\Enums\Timezone, какие значения в нем есть?
__________________
Axapta v.3.0 sp5 kr2 |
|
24.10.2014, 17:47 | #77 |
Участник
|
Ну, в общем, как я и предполагал, этот патч работает не то, чтобы не корректно, но не ожидАемым способом.
Во-первых, в инструкции забыли упомянуть одну "маленькую" деталь В этом патче указаны новые временные зоны, а не обновление ранее существовавших! Это значит, что после импорта временных зон надо будет пройтись по настройкам всех пользователей и установить эти самые новые временные пояса. Старые использовать будет нельзя! Как следствие, для новых временных зон форма TimeZonePatcher работать не будет! Невозможно обновить то, что создается заново! Вы не сможете скорректировать времена работы ранее созданных пакетных заданий. Вам придется создавать пакетные задания заново. Ну, или "вручную" модифицировать соответствующие поля. Во-вторых, как я уже говорил, если в настройка указаны только поля D* или только поля S*, то такие настройки вообще игнорируются. Используется только основной сдвиг по полю BIAS. Это значит, что при использовании этих новых часовых поясов установить корректное время "задним числом" до 26.10.2014 будет невозможно. Всегда будете ошибаться на 1 час Ну, и наконец, по законодательству, переход должен осуществлять в 2 часа ночи, а не в 00:00, как указано в этом патче. Впрочем, это уже мелочи... Короче, я бы не спешил накатывать этот патч, поскольку, скорее всего, будет выпущено его исправление Ну, или (скорее всего) подправят инструкцию по его установке
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 24.10.2014 в 18:07. |
|
26.10.2014, 08:07 | #78 |
Administrator
|
Ну и у кого без патча чего-то "сломалось"? А то я чего-то долго курил, курил над ним и... пока курил - наступил "час Х". И АХ как-то "сама" подстроилась под винду
__________________
Возможно сделать все. Вопрос времени |
|
26.10.2014, 12:54 | #79 |
Участник
|
Как резюме, привожу порядок действий, которые произвел для применения исправления KB3011878
1 Загрузить файл "windowstimezonerules.xml" (из исправления KB3011878) используя форму "TimezonePatchImport" (ее можно нейти в дереве АОТ) При этом в систему будут загруженные новые временные зоны и правила их пересчета То есть в списке енумов TimeZone появятся новые значения (после рестарта АОС). В списке енумов будет уже два значения: GMTPLUS0300MOSCOW_STPETERSBURG_VOLGOGRAD (старое, с кодом 61) GMTPLUS0300MOSCOW_STPETERSBURG_VOLGOGRAD_RTZ2 (новое, с кодом 87) 2. Рестартовать АОС 3. Обновить пользователям новое значение временной зоны. Это можно сделать так X++: userInfo userInfo; userInfo userInfoUpd; int i; ; while select userInfo where userInfo.preferredTimeZone == TimeZone::GMTPLUS0300MOSCOW_STPETERSBURG_VOLGOGRAD { try { ttsbegin; select forupdate userInfoUpd where userInfoUpd.Id == userInfo.id; userInfoUpd.preferredTimeZone = TimeZone::GMTPLUS0300MOSCOW_STPETERSBURG_VOLGOGRAD_RTZ2; userInfoUpd.update(); ttscommit; i++; } catch { error(userInfo.name); } } info(strFmt("обновлено %1 записей пользователей", i)); либо просто завершить их сеансы принудительно. 4. Изменил в настройках формы "Данные компании" (CompanyInfo) значение часового пояса. (Если есть активные пользователи - сделать это не получится. Поэтому изменил это прямо в таблице БД DATAAREA поле TIMEZONE заменил 61 на 87) После этого стоит сделать рестарт АОС 5. Обновил настройки списков пакетных заданий - время запуска на час вперед + изменение значений часового пояса. это можно сделать так X++: batchJob batchJob; int i; TimeZone batchTimeZone; ; ttsbegin; while select forupdate batchJob { batchTimeZone = conPeek(batchJob.RecurrenceData, 9); if (batchTimeZone == TimeZone::GMTPLUS0300MOSCOW_STPETERSBURG_VOLGOGRAD) { batchJob.OrigStartDateTime = DateTimeUtil::addHours(batchJob.OrigStartDateTime, 1); batchJob.RecurrenceData = conPoke(batchJob.RecurrenceData, 9, TimeZone::GMTPLUS0300MOSCOW_STPETERSBURG_VOLGOGRAD_RTZ2); batchJob.update(); i++; } } ttscommit; info(strFmt("обновлено %1 пакетных заданий", i)); (через поиск в АОТ), с заменой на этого значения на GMTPLUS0300MOSCOW_STPETERSBURG_VOLGOGRAD_RTZ2 Может еще что забыл ? |
|
|
За это сообщение автора поблагодарили: sukhanchik (4), Maksim (1), Logger (3), Ace of Database (3), SIrina (1), Pandasama (1), NeveB (1). |
27.10.2014, 08:13 | #80 |
Участник
|
Цитата:
Сообщение от DenisS
Импортировал XML из KB3011878 - создалось 11 новых зон.
Единственно что смущает - поле TimeZoneRulesData.RuleId более не привязано к значению Enum TimeZone, a идет просто по порядку: Вложение 9010 Цитата:
Патч не был установлен, но все равно, часы в Аксапте перевелись? Так? А о какой версии идет речь? О 2009-й? Просто, я ничего подобно не наблюдаю) Две инсталляции 2009-й Аксапты: на одной из них патч установлен, на другой - нет Соответственно, без патча нет новых зачений енума, а по старому - нет перевода часов
__________________
Axapta v.3.0 sp5 kr2 |
|
Теги |
time, time zone, utc, utcdatetime, зимнее время, часовые пояса |
|
|