2

У нас есть приложение, которое потребляет данные из Dynamics CRM и выполняет некоторые запросы для извлечения данных после определенной даты и времени.Внутренние часы Microsoft Dynamics CRM (BD или IIS)?

Нам важно знать, какие часы используют Dynamics CRM для установки даты для своих записей. Например, когда он создает новую возможность, откуда приходит дата создания?

Является ли дата и время основаны на часах веб-сервера, на котором запущен CRM, основывается ли он на SQL Server, где хранится база данных CRM, другая?

+1

Нужно ли точно знать, как рассчитывается созданная дата. до миллисекунды? Или этот вопрос больше касается часовых поясов и хранения дат? –

+0

Мне интересно узнать, как рассчитывается созданная на дату, до миллисекунды или секунды, как вы предложили. Даты хранятся в формате UTC в CRM, и мы всегда имеем дело с UTC в запросах, поэтому у нас нет проблем с Timezones и т. Д. – Marcos

ответ

2

Я никогда не видел реальной документации по этому вопросу. Я могу вывести следующее из рассмотрения трасс SQL и некоторой декомпиляции библиотек CRM-сервера.

Я не уверен, что есть один способ, чтобы значения даты/времени генерировались в Dynamics CRM.

Например, существует хранимая процедура для создания WebResource, которая использует функцию SQL Server для получения времени utc. В этом случае время будет временем синхронизации сервера, на котором размещается SQL.

Это неверно для создания/обновления записей сущностей. В этом случае время передается как часть команды INSERT. Я не верю, что CRM делает вызов, чтобы сначала получить время SQL Server, поэтому на этот раз идет сервер веб-интерфейса CRM (или асинхронный сервер, если операция «Создать/обновить» происходит асинхронно.) .NET предоставляет UTC, я не верю, что происходит явное преобразование значений времени для заполнения этих значений в Create and Update. Существует явное действие для удаления части миллисекунд.

Если вы используете OverrideCreatedOn, то это значение полностью зависит от вас (если оно находится в пределах допустимого диапазона CRM), но он отключит миллисекунды.

0

Dynamics CRM прост, когда дело доходит до времени: он просто использует свойство System.DateTime.Now, которое считывает встроенные часы сервера.

+0

Я думаю, что вы, вероятно, в основном правы, но: какой сервер (в развертывании с несколькими частями)? У вас есть ссылка? Почему не 'UtcNow'? Как он учитывает переопределение созданного? –

0

Выполнение запросов к CRM-данным, похоже, что это только до второго. Если создать несколько записей в CRM (без перекрывая createdon), то запрос даты их createdon вы получите значения обратно, как (где я напечатал с ToString("o") форматировщиком для ISO 8601 standard):

2017-01-19T21 : 33: 12.0000000Z
2017-01-19T21: 27: 02.0000000Z
2017-01-19T20: 12: 54.0000000Z

Там также, как представляется, открытая CrmIdea item to start recording milliseconds in these type of timestamps.

+0

Спасибо за ответ, но мой вопрос касается того, какие часы используют Dynamics CRM, IIS Server, DB Server или другой подход. – Marcos

+0

Любопытно, почему это важно, независимо от того, какие часы он использует, должно быть получено текущее время UTC. Насколько вы поняли это, вам, вероятно, нужно будет взглянуть на экземпляр CRM в режиме onprem и декомпилировать код и/или посмотреть на sprocs базы данных onprem. –

0

Dynamics CRM хранит дату/время на основе системных настроек. Однако, если он хранится в базе данных CRM, он сохраняет его как UTC + 0 на основе времени сервера Windows SQL Server.

 Смежные вопросы

  • Нет связанных вопросов^_^