第一次在这里发海报!
我正在尝试通过 Java 使用 MS CRM 动态 Web 服务。我在这里按照本教程进行操作并设法使其正常工作。目前,我正在尝试通过 Web 服务从 CRM 中添加、编辑、选择和删除帐户。我已经设法使用下面的代码添加帐户和查询帐户。
新增帐户:
MicrosoftCrmSdkDataServicesService service = new MicrosoftCrmSdkDataServicesService(); Account act = new Account();
act.setName("test account");
try
{
service.addEntity(act);
}
catch (Exception e)
{
e.printStackTrace();
}
查询账户(返回账户名):
MicrosoftCrmSdkDataServicesService service = new MicrosoftCrmSdkDataServicesService();
try
{
Query<Account> act1 = service.createAccountQuery("/AccountSet");
Iterator<Account> accountTest = act1.iterator();
while ( ((Iterator<Account>) accountTest).hasNext() )
{
String h = accountTest.next().getName().toString();
if (h.equalsIgnoreCase("test account"))
{
System.out.print(hello);
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
因此,当我尝试使用 service.UpdateEntity(obj) 和 service.DeleteEntity(Obj) 方法从 CRM 更新和删除实体时,问题就来了。但是,在执行这些操作并传入帐户对象时,出现此错误:
Bad Request (400) - Can't update this entity http://domain:port/organization/xrmservices/2011/organizationdata.svc/AccountSet(9c1d0adc-08ed-e111-aece-00155d046501)
at org.restlet.ext.odata.Service.updateEntity(Service.java:1243)
at client.main(client.java:87)
由此它表明我正在将正确的对象放入 updateEntity 中,因为它会自动将正确的 guid 生成到查询 URL 中。但是它以错误的格式执行此操作。它应该是(因为这会加载 AccountSet 和该特定帐户的 RSS 提要):
http://domain:port/organization/xrmservices/2011/organizationdata.svc/AccountSet(guid'9c1d0adc-08ed-e111-aece-00155d046501')
我正在使用的 Web 服务方法是否已经过时并且不再有用了?有没有我没有意识到的公然做错的事情?
谢谢,山姆