DAX 2009, несколько временных зон

Для распределенных инсталляций достаточно критичным является поддержка нескольких временных зон (мультизональности). Вроде бы нет проблем, ничто не должно мешать работать в системе из разных часовых поясов.

Однако, не все так просто. В 3.0 и 4.0 для обеспечения некоего уровня поддержки мультизональности необходимо было разворачивать отдельный физический сервер приложений, настроенный на данную временную зону, для каждой из зон.

Кроме того, был некоторый момент корректности расчета для временных характеристик части функциональности. Например, при работе с рабочими центрами, находящихся в разных временных зонах.

 

В версии 2009 эти проблемы решили введением нового типа данных DateTime. Были разработы новые функции (фактически - интерфейс) взаимодействия с этим типом данных, которые в частности позволяют добавлять и удалять смещения относительно DateTime.

При использовании DataTime локальное время машины не используется, текущие типы даты (Date) и времени (Time) останутся как есть с ‘локальной’ семантикой.

В данном решении реализована поддержка семантики UTC для X++, доступа к данным и базе данных.

Общее правило для типов данных Date и Time:

  • Не используйте, если необходима поддержка временных зон
  • При переносе данных будут обновлены до UTC автоматически относительно текущей зоны

Соотвественно, при обновлении произойдет конвертация данных:

  • CreateDate и CreateTime - в CreateDateTime
  • ModifiedDate и ModifiedTime - в ModifiedDateTime

 

Для поддержки мультизональности теперь нет необходимости использовать выделенные сервера приложений для зон, мультизональность поддерживается и в рамках одного экземпляра сервера приложений.

Временная зона может быть установлена для пользователя администратором в настройках пользователя.

 

Данная статья подготовлена с помощью Windows Live Writer .