是否有检索结果页面上的高级查找查询/ fetchxml的可能性?之前我触发结果按钮,我能够按Fetchxml按钮,但结果页不上了。是否有possibiltiy检索通过JavaScript或C#这个查询/ XML,它必须是一个结果页面上。
我不是100%肯定,如果我们是在谈论同样的事情,但也可以使用状态一Fetchxml查询。
看一看this page。在这里,他们用FetchExpression(串)与常规组织服务来查询。你只需要在组织服务和查询它的fetchxml。小例子(从上面的链接!):
// Retrieve all accounts owned by the user with read access rights to the accounts
and
// where the last name of the user is not Cannon.
string fetch2 = @"
<fetch mapping='logical'>
<entity name='account'>
<attribute name='accountid'/>
<attribute name='name'/>
<link-entity name='systemuser' to='owninguser'>
<filter type='and'>
<condition attribute='lastname' operator='ne' value='Cannon' />
</filter>
</link-entity>
</entity>
</fetch> ";
EntityCollection result = _serviceProxy.RetrieveMultiple(new
FetchExpression(fetch2));
foreach (var c in result.Entities)
{
System.Console.WriteLine(c.Attributes["name"]);
}
正如你看到的,这是最有可能是控制台的工作。你如何使用实体本身,然后是你的。
据我所知,有没有钩来定制高级查找页面,所以没有办法添加JavaScript才能做你想做的。
然而,你可以写上RetrieveMultiple
消息时将触发一个插件。
在插件,你可以从QueryExpression
的RetrieveMultipleRequest
var q = (QueryExpression)context.InputParameters["Query"];
然后convert it到FetchXML。
var conversionRequest = new QueryExpressionToFetchXmlRequest
{
Query = q
};
var conversionResponse = (QueryExpressionToFetchXmlResponse)_serviceProxy.Execute(conversionRequest);
var fetchXml = conversionResponse.FetchXml;
请注意,我没有测试上面的代码。而且,由于我没有做这个确切的技术,它可能是你可以直接投的查询到FetchXML并跳过转换调用。
所以,你可能想试试这个:
var q = (FetchExpression)context.InputParameters["Query"];
RetrieveMultiple插件有自己的caveats。但是,how bad is it?
与此相关,如果用户保存高级查找作为个人的观点,其FetchXML可以从UserQuery实体检索。