3

初ポスターはこちら!

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 サービスの方法が古くなって、もう役に立たないのでしょうか? 私が理解していない露骨な間違ったことはありますか?

ありがとう、サム

4

1 に答える 1