400 - неверный запрос при сохранении поля "Только дата" в CRM с использованием веб-API

Я использую подход Microsoft Dynamics 365 Web API для взаимодействия с данными CRM.

Здесь я хочу обновить поле с типом: DATE and TIME,

Скриншот настройки поля

Значение даты, которое я передаю в теле запроса, выглядит следующим образом:

"packfirstday":"1-15-2018"

За исключением вышесказанного, я также пытался с DateTime и с различными форматами даты. например

mm-dd-yyyy
m-dd-yyyy
mm/dd/yyyy
yyyy/mm/dd
yyyy-mm-dd

PS: я пытаюсь опубликовать без поля даты, он успешно сохраняет детали.

1 ответ

Решение

Проблема не в коде, а в простом недоразумении.

Есть 2 компонента, а именно Поведение и Формат. У вас установлен формат "Только дата", а не " Поведение". Поведение определяет условия базы данных, тогда как формат используется для отображения элементов управления выбора даты в форме.

Поэтому, когда вы устанавливаете поле в веб-интерфейсе API только с частью даты, база данных CRM также ожидает часть времени.

Либо установите поведение также как только дату, так что это будет работать:

"packfirstday":"2018-01-15" //YYYY-mm-dd format

Или измените свой код, чтобы пройти часть времени также:

"packfirstday":"2018-01-15T11:10:00.000Z" //UTC offset

Так как локальное поведение пользователя все еще ожидает часть времени.