miércoles, 17 de marzo de 2010

Como extender la búsqueda rápida del CRM

Como todos saben, cuando se realiza una búsqueda rápida en CRM, automáticamente la plataforma añade el "comodín" del asterisco (*) por detrás de la búsqueda.
Seguramente muchos usuarios les hayan preguntado, ¿y por qué no añade dicho asterisco por delante tambien?
Seguramente sea por un tema de rendimiento, o funcionalidad específica, pero hoy les voy a mostrar una forma en la que podemos extender las búsquedas rápidas a esta funcionalidad.
Tengo mis dudas de si esto es soportado o no, y como siempre que tengo dudas acerca de este tema, considero que es no soportado.
La idea es crear un plugin que nos permita buscar con asteriscos por delante y por detrás sin necesidad de añadir el primero de los mismos.
Voy a explicar lo que vamos a hacer.
En el funcionamiento estándar de CRM, una búsqueda sería como la siguiente:


Lo ideal sería que me lo devuelva de la siguiente forma (sin meter el asterisco por delante):


Bien, para hacer esto se me ocurrió utilizar un "plugin" en el "Pre" de la ejecución de dichas consultas, para añadir la condición deseada por delante.
El código del plugin es el siguiente:

public class QueryHandler : IPlugin
{
public void Execute(IPluginExecutionContext context)
{


if (context.MessageName == "Execute" && context.InputParameters.Properties.Contains("FetchXML") &&
context.InputParameters.Properties["FetchXML"].ToString().Contains("operator=\"like\""))
{
string fetchxml = context.InputParameters.Properties["FetchXML"].ToString();
context.InputParameters.Properties["FetchXML"] = fetchxml.Replace("operator=\"like\" value=\"", "operator=\"like\" value=\"%");
}
}
}

El registro del Plugin sería en el "pre" del mensaje "Execute" de la siguiente forma:


Espero les sirva, por ahora lo he probado con varias entidades y no visto ningún problema, pero recuerden que está no soportado.

un saludo!

No hay comentarios:

Publicar un comentario