我使用Java在线连接到Dynamic CRM。我可以创建任何类型的字段,但日期时间。每当我添加DateTime字段时,我都会收到以下错误。
[错误]格式化程序在尝试反序列化消息时引发异常:尝试反序列化参数http://schemas.microsoft.com/xrm/2011/Contracts/Services:entity时出错。 InnerException消息是第1行位置9875的错误。' EndElement' ' KeyValuePairOfstringanyType'来自命名空间' http://schemas.microsoft.com/xrm/2011/Contracts'不是预期的。期待元素的价值'。'。有关更多详细信息,请参阅InnerException。
我的代码段就是这样。
OrganizationServiceStub.DateTime d= new OrganizationServiceStub.DateTime();
Calendar c = Calendar.getInstance();
d.setDateTime(c);
collection.addKeyValuePairOfstringanyType(pair("startdate",d));
答案 0 :(得分:0)
您不必使用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);