Dynamics365 - 一个高级查找结果页面上的检索查询/ FetchXML

问题描述 投票:0回答:2

是否有检索结果页面上的高级查找查询/ fetchxml的可能性?之前我触发结果按钮,我能够按Fetchxml按钮,但结果页不上了。是否有possibiltiy检索通过JavaScript或C#这个查询/ XML,它必须是一个结果页面上。

dynamics-crm crm
2个回答
0
投票

我不是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"]);
} 

正如你看到的,这是最有可能是控制台的工作。你如何使用实体本身,然后是你的。


0
投票

据我所知,有没有钩来定制高级查找页面,所以没有办法添加JavaScript才能做你想做的。

然而,你可以写上RetrieveMultiple消息时将触发一个插件。

在插件,你可以从QueryExpressionRetrieveMultipleRequest

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实体检索。

© www.soinside.com 2019 - 2024. All rights reserved.