Para quem deseja aplicar um filtro no campo do tipo lookup no Microsoft Dynamics CRM (2013 e 2015), a ferramenta oferece através do SDK dois métodos para isto:
- addPreSearch
- Método que deve ser adicionado no controle de lookup para executar o filtro antes de realizar a busca
- addCustomFilter
- Método onde deve ser aplicado o filtro (fetchxml) que deve ser somente a tag “<filter>…</filter>”
Utilizando esses dois métodos no controle do lookup, a janela de busca e o auto resolução de nomes do controle terá o filtro aplicado fazendo com que ache somente o que você deseja. Estes métodos vieram como melhoria frente ao método addCustomView, que existe a partir da versão 2011 e que para aplicar o filtro era necessário montar toda a exibição, desde o layout até o fetchxml. Neste formato novo, a ferramenta somente incorpora o seu filtro dentro da exibição padrão que já está definida nas configurações da entidade.
Exemplo da implementação
// Adicionar o método para aplicar o filtro antes da procura // o método addPreSearch pede como paramêtro uma função Xrm.Page.getControl("parenaccountid").addPreSearch(LookupFilter); function LookupFilter() { /// <summary> /// Aplica o filtro no campo /// </summary> var filter = "<filter type='and'>"; filter += "<condition attribute='parenaccountid' operator='null'/>"; filter += "</filter>"; //neste momento deverá ser aplicado o filtro para que possa trazer somente os registros desejados Xrm.Page.getControl("parenaccountid").addCustomFilter(filter); }
Espero que tenham gosta desta dica! Até o próximo post.