【问题标题】:Connect MS Dynamics CRM 2011 from java从 java 连接 MS Dynamics CRM 2011
【发布时间】:2012-06-13 11:52:59
【问题描述】:
我正在尝试从 Java 连接到 MS Dynamics CRM 2011。经过大量搜索后,我在 MS 论坛中发现了一个链接,该链接提供了一个代码 sn-p 以从 Java 调用 MS Dynamics CRM 2011 WS。
Consuming CRM REST Service from Java
但是,除了帐户创建步骤之外,它没有提供太多详细信息。使用此代码 sn-p 我可以创建帐户。但是,我还想使用相同的 REST Web 服务来检索帐户、创建新案例请求、将案例请求添加到帐户等。基于在线可用的 .NET 示例,我正在尝试使用 service.createAccountQuery() 方法来检索帐户。然而,虽然所有 .NET 示例都使用 LINQ 来设置搜索条件,但我不知道如何在 java 中指定子路径字符串以通过名称/城市/国家等检索现有帐户。
感谢任何帮助。
【问题讨论】:
标签:
java
web-services
dynamics-crm-2011
【解决方案1】:
不要使用“Account act...”行和下面的内容,而是使用如下内容:
// Retrieve all accounts that the user has read access to.
string fetch1 = @"<fetch mapping=""logical"">
<entity name=""account"">
<all-attributes/>
</entity>
</fetch>";
// Fetch the results.
ExecuteFetchRequest req = new ExecuteFetchRequest();
req.FetchXml = fetch1;
ExecuteFetchResponse result1 = (ExecuteFetchResponse)service.Execute(req);
我不熟悉此代理,但您想调用 service.X,其中 X 是 Execute 或 RetrieveMultiple(基于代理提供的内容)。
【解决方案2】:
不确定您是否仍在寻找,但其他人正在寻找。我有同样的问题。
它使用的是 odata 查询 url,所以子路径是 entitySet(例如,对于 account,它是 AccountSet)
然后您可以使用 .filter 方法设置过滤器并通过 .select 方法进行选择。
我确实注意到您似乎无法在单独的行上执行这些操作
例如你做不到
Query<microsoft.crm.sdk.data.services.Account> q = service.createAccountQuery("AccountSet");
q.filter("substringof('Test',Name)");
q.select("AccountId,Name");
q.execute();
你必须这样做
Query<microsoft.crm.sdk.data.services.Account> q = service.createAccountQuery("AccountSet").filter("substringof('Test',Name)").select("AccountId,Name");
q.execute();
克里斯