Ошибка поля Microsoft динамического CRM DateTime
Я подключаюсь к Dynamic CRM онлайн, используя Java. Я могу создавать поля любого типа, кроме даты и времени. Всякий раз, когда я добавляю поле DateTime, я получаю следующую ошибку.
[ОШИБКА] Средство форматирования выдало исключение при попытке десериализации сообщения: при попытке десериализации параметра произошла ошибка http://schemas.microsoft.com/xrm/2011/Contracts/Services:entity. Сообщение InnerException было "Ошибка в строке 1 позиции 9875." EndElement "" KeyValuePairOfstringanyType "из пространства имен" http://schemas.microsoft.com/xrm/2011/Contracts "не ожидается. Ожидается элемент 'value'.'. Пожалуйста, смотрите InnerException для более подробной информации.
Мой фрагмент кода похож на это.
OrganizationServiceStub.DateTime d= new OrganizationServiceStub.DateTime();
Calendar c = Calendar.getInstance();
d.setDateTime(c);
collection.addKeyValuePairOfstringanyType(pair("startdate",d));
1 ответ
Вы не должны использовать OrganizationServiceStub.DateTime
, Заглушка, которую вы используете, обеспечивает OrganizationServiceStub.KeyValuePairOfstringanyType
что позволяет передавать любые значения типов данных. Мы должны знать тип значения поля и передавать конкретный тип.
В вашем случае, чтобы пройти Date
, mircosoft crm устанавливается как GregorianCalendar
для полей даты, поэтому нам нужно отправить только этого типа. Ниже приведен код,
Date date = new SimpleDateFormat("MM/dd/yy").parse("06/29/15");
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(date);
OrganizationServiceStub.AttributeCollection collection = new OrganizationServiceStub.AttributeCollection();
OrganizationServiceStub.KeyValuePairOfstringanyType dateattr = new OrganizationServiceStub.KeyValuePairOfstringanyType();
dateattr.setKey("startdate");
dateattr.setValue(date);
collection.addKeyValuePairOfstringanyType(dateattr);