初ポスターはこちら!
Java 経由で MS CRM ダイナミクス Web サービスを利用しようとしています。私はこのチュートリアルhereに従い、それを機能させることができました。現在、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)
このことから、クエリ URL に正しい GUID を自動生成しているため、正しいオブジェクトを updateEntity に入れていることがわかります。ただし、間違った形式で実行しています。次のようになります (これにより、AccountSet とその特定のアカウントの RSS フィードが読み込まれるため):
http://domain:port/organization/xrmservices/2011/organizationdata.svc/AccountSet(guid'9c1d0adc-08ed-e111-aece-00155d046501')
私が使用している Web サービスの方法が古くなって、もう役に立たないのでしょうか? 私が理解していない露骨な間違ったことはありますか?
ありがとう、サム