有什么方法可以创建该查询吗?
我需要来自地址和联系地址的数据,通常我可以将它们组合起来,Combine OR
但在这种情况下不能。
我想我必须用PreExecute()
方法编写新插件,获取我的查询,解析数据,然后手动获取相等的地址,或者还有其他方法吗?
有什么方法可以创建该查询吗?
我需要来自地址和联系地址的数据,通常我可以将它们组合起来,Combine OR
但在这种情况下不能。
我想我必须用PreExecute()
方法编写新插件,获取我的查询,解析数据,然后手动获取相等的地址,或者还有其他方法吗?
我解决了这个问题。
Execute()
使用方法和一些数据解析方法创建用于预验证的插件。GUID
.PS 在重构和客户批准后,我将在一两天内添加源代码。
编辑:
首先 - 您需要创建新的GUID
并添加字符串字段以使用该 guid 进行查看(最好对用户隐藏它)。RetrieveMultiple
创建带有操作和Post
验证的插件(在Pre
操作中您可能会丢失更改)
在 plugin: main 方法
RetrieveMultiple
中,它将获取上下文和服务,您将从那里进行查询,然后您需要获取 fetchXml 并检查是否有您的GUID
.
string fetchXml = string.Empty;
var query = context.InputParameters["Query"] as QueryExpression;
var fetchQuery = context.InputParameters["Query"] as FetchExpression;
if (query == null)
{
if (fetchQuery == null)
{
return;
}
fetchXml = fetchQuery.Query;
}
// Convert query to a fetch expression for processing and apply filter
else
{
fetchXml =
((QueryExpressionToFetchXmlResponse)
service.Execute(new QueryExpressionToFetchXmlRequest {Query = query})).FetchXml;
}
if (fetchXml.Contains(OpportunityFilterGuid))
{
ApplyFilter(context, service, query);
}
}
在您的ApllyFilter
方法中,您需要:
从用户那里获取查询(他可以添加一些新的文件)。
使用 删除您的字段GUID
。
执行查询。
删除可能与您的OR
陈述冲突的文件。
添加link-entity
到查询。
执行查询。
将接收到的实体从第二个查询添加到第一个。
使用 LINQ 选择不重复的实体。
collectionOne.Entities.GroupBy(oppId => oppId.Id).Select(opp => opp.First())
将该数据发送给客户端。
我不知道有什么办法可以做到以上。
而不是写一个插件,但我会做一个报告。
我能想到的最简单的方法是在没有过滤器的情况下执行 fetchXML。
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
<entity name="account">
<attribute name="name" />
<attribute name="primarycontactid" />
<attribute name="telephone1" />
<attribute name="accountid" />
<attribute name="address1_city" />
<order attribute="name" descending="false" />
<link-entity name="contact" from="parentcustomerid" to="accountid" alias="ac">
<attribute name="address1_city" />
</link-entity>
</entity>
</fetch>
然后使用切换报告中行的可见性
=Fields!address1_city.Value="Sydney" Or Fields!ac_address1_city.Value="Sydney"
显然你可以用 Parameter 替换 Sydney
简而言之,没有办法通过高级查找来完成您所要求的事情。
您提出的示例查询只会向您显示关联联系人具有地址匹配的帐户(以及显然具有地址匹配的帐户)。在高级查找中关联另一个实体后,您将只能看到具有关联记录的父级 - 无法执行(有效的)外部连接。
您唯一的选择实际上是在 Silverlight 或 HTML 中构建一些东西并将其添加为 Web 资源 - 一旦进入该代码,您几乎可以显示任何您想要的东西。正如其他人所建议的,这在报告中是可能的。